[Crash-utility] Problem in runq command
Dave Anderson
anderson at redhat.com
Thu Jul 12 13:17:08 UTC 2012
----- Original Message -----
>
> Hi Dave
>
> I found a problem with the runq command in the function
> dump_CFS_runqueues in task.c. The problem is in:
>
> if (!(rq_sp = per_cpu_symbol_search("per_cpu__runqueues")))
>
> error(FATAL, "per-cpu runqueues does not exist\n");
>
> as that code does not support single core systems. However the rest
> of the function seems to handle single core correctly, so by just
> adding one line:
>
> if (!(rq_sp = per_cpu_symbol_search("per_cpu__runqueues")))
> if (!(rq_sp = symbol_search("runqueues")))
> error(FATAL, "per-cpu runqueues does not exist\n");
>
> the runq command works as it should. Of course the text in the error
> message should also be updated to something more proper.
>
Interesting -- as it turns out, I've only got one sample x86_64 UP
kernel vmcore, and even though it's non-smp, a "per_cpu__runqueues"
symbol exists that points to the single runqueue. But it's a 2.6.31
UP kernel, and per-cpu handling has changed since then.
Anyway I see see the problem with the sample UP 2.6.38 ARM vmcore you
guys sent me, and note that it also breaks the "runq -t" option as well.
But that is also fixable by applying the same patch.
Good catch -- fixes are queued for crash-6.0.9.
Thanks,
Dave
More information about the Crash-utility
mailing list