----- Original Message -----
于 2012年10月30日 03:05, Dave Anderson 写道:
>
>
> ----- Original Message -----
>
>>>
>>> Now, your patch adds signficant complexity to the runq handling
>>> code
>>> and to its future maintainability. I'm wondering whether your
>>> patch
>>> can be modified such that the task_group info would only be
>>> displayed
>>> via a new flag, let's say "runq -g". It seems that there has
>>> been
>>> considerable churn in the kernel code in this area, and it
>>> worries me
>>> that this patch will potentially and unnecessarily cause the
>>> breakage
>>> of the simple display of the queued tasks.
>>>
>>
>> Currently, rt_rq is displayed hierarchically, while the cfs_rq is
>> displayed
>> like that. So I made the first patch to make tasks in cfs_rq
>> displayed
>> hierarchically so that we could see which task belongs to which
>> cfs_rq
>> easily, just like rt_rq.
>>
>> The second patch is used to display tasks in throttled
>> cfs_rqs/rt_rqs.
>> To display tasks in throttled cfs_rqs/rt_rqs is easy, but to
>> display them
>> sorted in the current runqueue is kind of difficult, so the patch2
>> looks
>> complex. I think I will implement the patch2 by two ways, one is
>> just the fix
>> version of the current patch2, the other is to use the new flag
>> '-g'.
>> You can decide which one to apply.
>>
>> The attachment is the patch1.
>
> The latest patch1 seems to test OK, although your change to dump_task_runq_entry()
> that removes the leading spaces breaks the output format of "runq -d".
But adding
> an INDENT(5) to dump_on_rq_tasks() fixes that.
>
> My suggestion re: a new -g flag would have it applicable to both CFS and RT
> run queues (even though the RT groups are currently being shown). I was
> thinking that it might be safest to have "runq" (with no argument) to
just
> display a simple list of tasks, and only show group information with -g.
> Are you suggesting that -g would only apply to throttled cfs_rqs/rt_rqs?
>
nop, '-g' is ok to show all rqs with group information.
I rewrote the patch by adding option '-g' to runq and not changing any behaviour
of
the runq (with no argument).
TODO:
1. The help info about the -g option.
I still have a suggestion: when we dump cfs_rq, we don't dump it hierarchically,
but for the current rt_rq, we dump it hierarchically with group info.
So could I make another patch to remove the rt_rq hierarchy, just make it
displayed identical with cfs_rq display.(For -g will display group info for both rt_rq
and cfs_rq)
Yes, that's exactly what I was suggesting.
I worry about the large number of kernel structure.member declarations that the
command depends upon, because if just one of them changes, it breaks the command.
So it would be preferable if the "runq" command (with no arguments) would only
use
a minimal set of structure.member offsets.
Thanks,
Dave