[Crash-utility] [PATCH] Fix for "timer -r -C" option to display all the per-CPU clocks
lijiang
lijiang at redhat.com
Mon Jan 10 03:22:41 UTC 2022
On Fri, Jan 7, 2022 at 10:40 AM HAGIO KAZUHITO(萩尾 一仁)
<k-hagio-ab at nec.com> wrote:
>
> Hi Lianbo,
>
> Good catch.
>
> -----Original Message-----
> > Subject: [PATCH] Fix for "timer -r -C" option to display all the per-CPU clocks
>
> Please remove "-C" here, it has no relation with the issue itself.
>
Thank you for the comment, Kazu.
Applied without "-C".
Thanks.
Lianbo
> With this fix,
> Acked-by: Kazuhito Hagio <k-hagio-ab at nec.com>
>
> Thanks,
> Kazu
> >
> > Currently, the hrtimer_max_clock_bases is hard-coded to 3, which
> > makes that crash only prints three clocks, and the rest of clocks
> > are not displayed.
>
> >
> > Without the patch:
> > crash> timer -r -C 11
> > CPU: 11 HRTIMER_CPU_BASE: ffff9a775f95ee00
> > CLOCK: 0 HRTIMER_CLOCK_BASE: ffff9a775f95ee80 [ktime_get]
> > (empty)
> >
> > CLOCK: 1 HRTIMER_CLOCK_BASE: ffff9a775f95ef00 [ktime_get_real]
> > (empty)
> >
> > CLOCK: 2 HRTIMER_CLOCK_BASE: ffff9a775f95ef80 [ktime_get_boottime]
> > (empty)
> >
> > With the patch:
> > crash> timer -r -C 11
> > CPU: 11 HRTIMER_CPU_BASE: ffff9a775f95ee00
> > CLOCK: 0 HRTIMER_CLOCK_BASE: ffff9a775f95ee80 [ktime_get]
> > (empty)
> >
> > CLOCK: 1 HRTIMER_CLOCK_BASE: ffff9a775f95ef00 [ktime_get_real]
> > (empty)
> >
> > CLOCK: 2 HRTIMER_CLOCK_BASE: ffff9a775f95ef80 [ktime_get_boottime]
> > (empty)
> > ...
> > CLOCK: 7 HRTIMER_CLOCK_BASE: ffff9a775f95f200 [ktime_get_clocktai]
> > (empty)
> >
> > Signed-off-by: Lianbo Jiang <lijiang at redhat.com>
> > ---
> > kernel.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/kernel.c b/kernel.c
> > index 37b7af74ed2e..36c57ed501ad 100644
> > --- a/kernel.c
> > +++ b/kernel.c
> > @@ -7675,7 +7675,8 @@ dump_hrtimer_data(const ulong *cpus)
> > if (VALID_STRUCT(hrtimer_clock_base)) {
> > hrtimer_max_clock_bases = 2;
> > if (symbol_exists("ktime_get_boottime"))
> > - hrtimer_max_clock_bases = 3;
> > + hrtimer_max_clock_bases = MEMBER_SIZE("hrtimer_cpu_base", "clock_base") /
> > + SIZE(hrtimer_clock_base);
> > } else if (VALID_STRUCT(hrtimer_base)) {
> > max_hrtimer_bases = 2;
> > } else
> > --
> > 2.20.1
>
More information about the Crash-utility
mailing list