* Peter Zijlstra <peterz@infradead.org> [2010-04-19 21:01:41]:
Indicating required system capacity to the loadbalance and using that
information to evacuate cores or socket was the basic idea.
Ref: http://lkml.org/lkml/2009/5/13/173
The challenges with that approach is the predictable evacuation or
forced idleness is not guaranteed.
Integrating with the load balancer will make the design cleaner and
avoid forcefully running an idle thread. The scheduler should
schedule 'nothing' so that idleness can happen and cpuidle governor
can take care of idle states.
Well, this is an ideal goal. Injecting some amount of idle time
across all cores/threads preferably with overlapping time window will
save quite a lot of power on x86. But atleast overlapping idle times
among sibling threads are required to get any power savings.
This proposed approach does not yet have the ability to do overlapping
idle times, though they may randomly occur.
Atleast integrating this with ACPI cpu aggregation driver can be a good
first step. Both the drivers and code are for the same power capping
purpose using idle time injection and running an high priority idle
thread for short duration.
ACPI Processor Aggregator Driver for 2.6.32-rc1
Ref: http://lkml.org/lkml/2009/10/3/13
--Vaidy
--