Messages in this thread | | | Date | Tue, 11 Nov 2008 22:47:51 +0530 | From | Vaidyanathan Srinivasan <> | Subject | Re: [RFC PATCH v3 3/5] sched: nominate preferred wakeup cpu |
| |
* Gregory Haskins <gregory.haskins@gmail.com> [2008-11-11 09:07:58]:
> Peter Zijlstra wrote: > > On Tue, 2008-11-11 at 00:03 +0530, Vaidyanathan Srinivasan wrote: > > > >> When the system utilisation is low and more cpus are idle, > >> then the process waking up from sleep should prefer to > >> wakeup an idle cpu from semi-idle cpu package (multi core > >> package) rather than a completely idle cpu package which > >> would waste power. > >> > >> Use the sched_mc balance logic in find_busiest_group() to > >> nominate a preferred wakeup cpu. > >> > >> This info can be sored in appropriate sched_domain, but > >> updating this info in all copies of sched_domain is not > >> practical. For now lets try with a per-cpu variable > >> pointing to a common storage in partition sched domain > >> attribute. Global variable may not work in partitioned > >> sched domain case. > >> > > > > Would it make sense to place the preferred_wakeup_cpu stuff in the > > root_domain structure we already have? > > > > From the description, this is exactly what the root-domains were created > to solve. > > Vaidyanathan, just declare your object in "struct root_domain" and > initialize it in init_rootdomain() in kernel/sched.c, and then access it > via rq->rd to take advantage of this infrastructure. It will > automatically follow any partitioning that happens to be configured.
Yep, I agree. I will use root_domain for this purpose in the next revision.
Thanks, Vaidy
| |