* Peter Zijlstra <peterz@xxxxxxxxxxxxx> [2010-04-19 21:01:41]: > On Mon, 2010-04-19 at 10:20 -0700, Salman Qazi wrote: > > On Thu, Apr 15, 2010 at 12:51 AM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > On Tue, 2010-04-13 at 17:08 -0700, Salman wrote: > > >> As we discussed earlier this year, Google has an implementation that it > > >> would like to share. I have finally gotten around to porting it to > > >> v2.6.33 and cleaning up the interfaces. It is provided in the following > > >> messages for your review. I realize that when we first discussed this > > >> idea, a lot of ideas were presented for enhancing it. Thanks alot for > > >> your suggestions. I haven't gotten around to implementing any of them. > > > > > > .33 is way too old to submit patches against. > > > > Will bump up the version when I refresh the change. > > > > > > > > That said, I really really dislike this approach, I would much rather > > > see it tie in with power aware scheduling. > > > > I think I can see your point: there is potentially better information > > about the power consumption of the CPU beyond the time it was busy. > > But please clarify: is your complaint the lack of use of this > > information or are you arguing for a deeper integration into the > > scheduler (I.e. implementing it as part of the scheduler rather than > > an independent thread) or both? > > Right, so the IBM folks who were looking at power aware scheduling were > working on an interface to quantify the amount of power to save. 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. > But their approach, was an extension of the regular power aware > load-balancer, which basically groups tasks onto sockets so that whole > sockets can go idle. 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. > However Arjan explained to me that your approach, which idles the whole > machine, has the advantage that also memory banks can go into idle mode > and save power. 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. > Still in the interest to cut back on power-saving interfaces it would be > nice to see if there is anything we can do to merge these things, but I > really haven't thought much about that yet. 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 _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm