于 2012年08月29日 04:53, Dave Anderson 写道:
----- Original Message -----
>
> Right, I understand. What I don't understand is the use of the
"child"
> terminology. If CONFIG_RT_GROUP_SCHED is configured, then the sched_rt_entity
> may reference a "group" run queue. To me, it doesn't make sense to
use
> the term "CHILD RT PRIO_ARRAY" in the header. Wouldn't it make more
sense to
> call it a "GROUP RT PRIO_ARRAY"? Like this:
>
> crash> runq
> CPU 0 RUNQUEUE: ffff880028216680
> CURRENT: PID: 5125 TASK: ffff88010799d540 COMMAND: "sh"
> RT PRIO_ARRAY: ffff880028216808
> [ 0] PID: 5136 TASK: ffff8801153cc040 COMMAND: "rtloop99"
> GROUP RT PRIO_ARRAY: ffff88013b050000
> [ 0] PID: 5133 TASK: ffff88010799c080 COMMAND: "rtloop99"
> [ 1] PID: 5131 TASK: ffff880037922aa0 COMMAND: "rtloop98"
> [ 98] PID: 5128 TASK: ffff88011bd87540 COMMAND: "rtloop1"
> PID: 5130 TASK: ffff8801396e7500 COMMAND: "rtloop1"
> PID: 5129 TASK: ffff88011bf5a080 COMMAND: "rtloop1"
> PID: 6 TASK: ffff88013d7c6080 COMMAND: "watchdog/0"
> PID: 3 TASK: ffff88013d7ba040 COMMAND: "migration/0"
> [ 1] PID: 5134 TASK: ffff8801153cd500 COMMAND: "rtloop98"
> PID: 5135 TASK: ffff8801153ccaa0 COMMAND: "rtloop98"
> ...
>
>
> CPU 1 RUNQUEUE: ffff880028296680
> CURRENT: PID: 5086 TASK: ffff88006eecc040 COMMAND: "bash"
> RT PRIO_ARRAY: ffff880028296808
> [ 0] PID: 5137 TASK: ffff880107b35540 COMMAND: "rtloop99"
> PID: 10 TASK: ffff88013cc2cae0 COMMAND: "watchdog/1"
> PID: 2852 TASK: ffff88013bd5aae0 COMMAND:
> "rtkit-daemon"
> [ 54] GROUP RT PRIO_ARRAY: ffff880138978000
> [ 54] PID: 5132 TASK: ffff88006eecd500 COMMAND: "rtloop45"
> CFS RB_ROOT: ffff880028296718
> ...
>
Another question re: your patch -- is it possible to have a "depth" greater
than 1?
Yes, "depth" could be greater than 1, see the example below:
CPU 0 RUNQUEUE: ffff880028216680
CURRENT: PID: 17085 TASK: ffff880137c63540 COMMAND: "bash"
RT PRIO_ARRAY: ffff880028216808 <-- depth = 0
[ 0] PID: 17129 TASK: ffff880037aeaaa0 COMMAND: "rtloop99"
PID: 2832 TASK: ffff88013b09cae0 COMMAND: "rtkit-daemon"
PID: 6 TASK: ffff88013d7c6080 COMMAND: "watchdog/0"
[ 1] GROUP RT PRIO_ARRAY: ffff88002ca65000 <-- depth = 1
[ 1] GROUP RT PRIO_ARRAY: ffff880015821000 <-- depth = 2
[ 1] PID: 17126 TASK: ffff880135d2a040 COMMAND:
"rtloop98"
[ 98] PID: 17119 TASK: ffff88010190d500 COMMAND: "rtloop1"
PID: 17121 TASK: ffff88013bd27500 COMMAND: "rtloop1"
PID: 17120 TASK: ffff88010190caa0 COMMAND: "rtloop1"
CFS RB_ROOT: ffff880028216718
[120] PID: 17114 TASK: ffff88001328d500 COMMAND: "sh"
[120] PID: 17112 TASK: ffff880037b84080 COMMAND: "sh"
CPU 1 RUNQUEUE: ffff880028296680
CURRENT: PID: 17106 TASK: ffff88001852a080 COMMAND: "sh"
RT PRIO_ARRAY: ffff880028296808 <-- depth = 0
[ 0] GROUP RT PRIO_ARRAY: ffff880103ded800 <-- depth = 1
[ 0] GROUP RT PRIO_ARRAY: ffff88011ae70800 <-- depth = 2
[ 0] PID: 17127 TASK: ffff8800378f6040 COMMAND:
"rtloop99"
PID: 17124 TASK: ffff8800a9592ae0 COMMAND: "rtloop99"
[ 1] PID: 17122 TASK: ffff88011aec3500 COMMAND: "rtloop98"
[ 54] PID: 17123 TASK: ffff88013b414ae0 COMMAND: "rtloop45"
PID: 10 TASK: ffff88013cc2cae0 COMMAND: "watchdog/1"
PID: 7 TASK: ffff88013d7ef500 COMMAND: "migration/1"
[ 1] PID: 17128 TASK: ffff880139761540 COMMAND: "rtloop98"
CFS RB_ROOT: ffff880028296718
[120] PID: 17104 TASK: ffff88010fc0aaa0 COMMAND: "sh"
[120] PID: 17102 TASK: ffff880137f83540 COMMAND: "sh"
[120] PID: 17098 TASK: ffff880013294080 COMMAND: "sh"
[120] PID: 17100 TASK: ffff88011aec2040 COMMAND: "sh"
[120] PID: 17116 TASK: ffff880138d4f540 COMMAND: "sh"
[120] PID: 17110 TASK: ffff880137c06080 COMMAND: "sh"
[120] PID: 17108 TASK: ffff880037aeb500 COMMAND: "sh"
Hmm, I think the depth could not be that big. So how do you think this
kind of output.
The attached patch just changed "CHILD" to "GROUP".
Thanks
Zhang Yanfei