[Crash-utility] patch for slight modification to runq -g command

Dave Anderson anderson at redhat.com
Fri Nov 8 21:28:47 UTC 2013



----- Original Message -----
> Dave,
> 
> I have removed the nr_running and h_nr_running related code and added
> "[CURRENT]" at the end of the current running task line.
> 
> Thanks,
> Anthony


Anthony,

As I requested before, can you also please remove the "CFS: <address>"
addition from the CURRENT: line?  It makes little sense w/respect to the
swapper tasks, and it is redundant w/respect to the other tasks since
the "[CURRENT]" identifier has been added:

 crash> runq -g
 CPU 0
   CURRENT: PID: 0     CFS: ffff88021e2140b0 TASK: ffffffff81c13440  COMMAND: "swapper/0"
   TASK_GROUP RT_RQ: ffff88021e2141c0
   RT PRIO_ARRAY: ffff88021e2141c0
      [no tasks queued]
   TASK_GROUP CFS_RQ: ffff88021e2140b0
   CFS RB_ROOT: ffff88021e2140d8
      [no tasks queued]
 
 CPU 1
   CURRENT: PID: 11532 CFS: ffff8801f6e00a00 TASK: ffff8800a0e9e9e0  COMMAND: "crash"
   TASK_GROUP RT_RQ: ffff88021e2541c0
   RT PRIO_ARRAY: ffff88021e2541c0
      [no tasks queued]
   TASK_GROUP CFS_RQ: ffff88021e2540b0
   CFS RB_ROOT: ffff88021e2540d8
      GROUP: ffff8800a0e92c00 CFS_RQ: ffff8801f6e00a00 RB_ROOT: ffff8801f6e00a28
         [120] PID: 11532  TASK: ffff8800a0e9e9e0  COMMAND: "crash" [CURRENT]
 ...

Thanks,
  Dave
 


> 
>     > -----Original Message-----
>     > From: crash-utility-bounces at redhat.com [mailto:crash-utility-
>     > bounces at redhat.com] On Behalf Of Dave Anderson
>     > Sent: Friday, November 08, 2013 5:58 AM
>     > To: Discussion list for crash utility usage, maintenance and
>     > development
>     > Subject: Re: [Crash-utility] patch for slight modification to runq -g
>     > command
>     > 
>     > 
>     > 
>     > ----- Original Message -----
>     > >
>     > > The "runq -g" output for that cpu looks like this:
>     > >
>     > >   CPU 1
>     > >     CURRENT: PID: 1212  CFS: ffff880035cc2f00 TASK: ffff880035f60000
>     > >     COMMAND: "bash"
>     > >     TASK_GROUP RT_RQ: ffff88007fa541e8
>     > >     RT PRIO_ARRAY: ffff88007fa541e8
>     > >        [no tasks queued]
>     > >     TASK_GROUP CFS_RQ: ffff88007fa540f0
>     > >     CFS RB_ROOT: ffff88007fa54118
>     > >        GROUP: ffff880078af7800 CFS_RQ: ffff880035cc2f00 RB_ROOT:
>     > ffff880035cc2f28 nr_running: 4294967297 h_nr_running:
>     > 201908650262921217
>     > >           [120] PID: 1212   TASK: ffff880035f60000  COMMAND: "bash"
>     > >
>     > > I don't understand where those values are coming from, because if
>     > > I look at the CFS_RQ, it shows this:
>     > >
>     > >   crash> cfs_rq.nr_running,h_nr_running ffff880035cc2f00
>     > >     nr_running = 1
>     > >     h_nr_running = 1
>     > >   crash>
>     > 
>     > The problem above is due to the fact that both nr_running and
>     > h_nr_running
>     > are of type unsigned int but your patch reads each of them as a ulong:
>     > 
>     >  crash> eval 4294967297
>     >  hexadecimal: 100000001
>     >      decimal: 4294967297
>     >        octal: 40000000001
>     >       binary:
>     > 000000000000000000000000000000010000000000000000000000000000000
>     > 1
>     >  crash> eval 201908650262921217
>     >  hexadecimal: 2cd52d900000001
>     >      decimal: 201908650262921217
>     >        octal: 13152455440000000001
>     >       binary:
>     > 000000101100110101010010110110010000000000000000000000000000000
>     > 1
>     >  crash>
>     > 
>     > +       readmem(cfs_rq + OFFSET(cfs_rq_nr_running), KVADDR,
>     > +               &nr_running, sizeof(ulong), "cfs_rq nr_running",
>     > +               FAULT_ON_ERROR);
>     > +       if (VALID_MEMBER(cfs_rq_h_nr_running)) {
>     > +               readmem(cfs_rq + OFFSET(cfs_rq_h_nr_running), KVADDR,
>     > +                       &h_nr_running, sizeof(ulong), "cfs_rq
>     > h_nr_running",
>     > +                       FAULT_ON_ERROR);
>     > +               fprintf(fp, " nr_running: %lu h_nr_running: %lu ",
>     > nr_running,
>     > h_nr_running);
>     > +       } else {
>     > +               fprintf(fp, " nr_running: %lu ", nr_running);
>     > +       }
>     > 
>     > But again, I don't seen any compelling reason to display them at all --
>     > especially
>     > now that your patch displays the cfs_rq from which they come.  If you
>     > really
>     > need to see their values, just dump the data structure.
>     > 
>     > And as I mentioned earlier, the CFS address in the CURRENT: line is
>     > confusing and
>     > redundant.  Perhaps you could clarify things by appending "[CURRENT]"
>     > after
>     > the task identifier in the queue, i.e., like:
>     > 
>     >     [120] PID: 9048   TASK: ffff8808b07e4200  COMMAND: "actmain"
>     > [CURRENT]
>     > 
>     > Thanks,
>     >   Dave
>     > 
>     > 
>     > 
>     > 
>     > 
>     > 
>     > 
>     > --
>     > Crash-utility mailing list
>     > Crash-utility at redhat.com
>     > https://www.redhat.com/mailman/listinfo/crash-utility
> 
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility




More information about the Crash-utility mailing list