[Crash-utility] problems running crash on recent rawhide live kernels

Dave Anderson anderson at redhat.com
Tue Dec 4 19:53:08 UTC 2007


Hariharan S Reddy wrote:
> Hi Dave,
> 
> Further debugging, I found that tt->max_tasks are set properly, but where
> as tt->running_tasks is set to 2, it is not incremented as expected in
> function refresh_hlist_task_table_v2().
>                                                                             
>  Regards                                                                    
>  Hariharan T.S.                                                             

Yeah, it's only finding/counting your pid 0 swapper tasks.

It appears that the pid_hash array entries are pointing
to the hlist_node embedded in a pid_namespace-related
upid structure.  For example:

   crash> p pid_hash[120]
   $12 = {
     first = 0xffff81001f8f4348
   }

Here's a upid, with its hlist_node at the end:

   crash> upid -o
   struct upid {
      [0] int nr;
      [8] struct pid_namespace *ns;
     [16] struct hlist_node pid_chain;
   }
   SIZE: 32

So the container address of the hlist_node would be:

   crash> eval 0xffff81001f8f4348 - 16
   hexadecimal: ffff81001f8f4338
   ...

which looks right:

   crash> upid ffff81001f8f4338
   struct upid {
     nr = 5,
     ns = 0xffffffff813aa900,
     pid_chain = {
       next = 0x0,
       pprev = 0xffff81000106edc0
     }
   }
   crash> sym 0xffffffff813aa900
   ffffffff813aa900 (D) init_pid_ns
   crash>

Time for refresh_hlist_task_table_v3()...

And, for that matter, a bunch of other stuff has been
broken in crash for 2.6.24, like "kmem -s" and "kmem -f".
And since x86_64 has moved the mem_map page array
to vmalloc() space (a la ia64), a bunch of other
stuff has crapped out as well.

But I'll look into tackling the pid handling first.

Thanks,
   Dave


















More information about the Crash-utility mailing list