[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