Messages in this thread | | | From | "Pallipadi, Venkatesh" <> | Date | Mon, 22 Jun 2009 10:25:43 -0700 | Subject | RE: [patch 1/2] x86: Add pm_play_dead funcptr to power-efficiently offline CPUs |
| |
>From: Pallipadi, Venkatesh >>From: Peter Zijlstra [mailto:a.p.zijlstra@chello.nl] >>On Fri, 2009-05-22 at 16:19 -0700, >venkatesh.pallipadi@intel.com wrote: >>> plain text document attachment >>> (0001-x86-Add-pm_play_dead-funcptr-to-power-efficiently-o.patch) >>> Add a funcptr pm_play_dead (similar to pm_idle) that can take >>> the offline CPUs to the most power efficient idle state. >>> >>> This patch just adds the func pointer. The pointer will get >>initialized >>> by patch that follows. >> >>Since the pm_idle function pointer has given us so much grief, I don't >>think its wise to repeat that particular disaster. >> >>I'd much rather see a framework where idle functions can be >registered, >>and selected from based on criteria such as wakeup latency as provided >>by the pm_qos stuff, and power saving. >> >>This framework should be shared between hotplug-idle and the regular >>idle routines. Hotplug would of course not care about things >>like wakeup >>latency and might therefore pick another idle routine. >> > >Yes. Thought about that approach. There are issues with that >approach however. >- It would be ugly as we have to add logic in various low >level idle handlers we have today mwait_idle, default_idle, >acpi_mwait_idle, acpi_ioport_idle to make them aware of >offline idle case and disable interrupt and not enable >interrupt while going idle and not to wake up on interrupt. >- There are limitations on what we can and cannot do when >offline. We have had issues with calling acpi methods and/or >IO port accesses, during suspend before, so CPU going on >suspend only uses C1. Specifically, with the above approach we >will have: >1) CPU 1 going offline and starts using regular ACPI IO port C-states. >2) CPU 0 starts suspend and after some points it is unsafe to >access ACPI io port accesses, which can potentially result in >crash/hangs. > >So, I would like to keep ACPI out of play_dead. And keeping >idle and play_dead separate seemed to be cleaner way to do it. >
Peter,
Any more comments on this approach? As I mentioned above, from my POV, it is simpler and cleaner to keep ACPI out of the CPU offline path. Do you agree?
Thanks, Venki
| |