On Fri, May 14, 2010 at 6:47 AM, Tony Lindgren <tony@xxxxxxxxxxx> wrote: > * Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> [100513 14:32]: >> On Thu, 13 May 2010, Tony Lindgren wrote: >> >> > The difference between echo mem > /sys/power/state and suspend blocks >> > is that with suspend blocks the system keeps running. >> >> Irrelevant. Paul wasn't talking about the suspend blockers; he was >> talking about opportunistic suspend. So what's the difference between >> opportunistic suspend and "echo mem >/sys/power/state"? Especially >> when suspend blockers aren't being used? > > Opportunistic suspend is really trying to do runtime PM, see below. > >> > And that's why >> > it should be handled by runtime power management instead. >> >> Runtime PM is not capable of freezing userspace and shutting down CPUs. >> More or less by definition -- if it could then it wouldn't be "runtime" >> any more, since the processor wouldn't be running. > > Not true. We are already powering off CPUs and rebooting them for > at least omaps in every idle loop using cpuidle. The memory stays on. I agree with you Tony. I thought shutting down CPUs for power managment purposes could be done without freezing user space. At least that's what we do today with SH-Mobile. I don't dislike the idea of freezing a misbehaing user space app, but I wonder if hardware platforms really need this. I think hardware requirements and software requirements should be kept separated. There seem to be some confusion regarding what Runtime PM can and can not do. For SH-Mobile we use Runtime PM to manage the clocks and power supply to on-chip I/O devices, and from CPU idle context we check the state of the Runtime PM devices and decide what level of CPU deep sleep we can enter. You can call this system CPU deep sleep if you'd like depending on the dependencies are layed out on your hardware platform. For CPU deep sleep we more or less always stop the clock so we need to put the memory in self-refresh to avoid loosing memory contents. In some cases the deep sleep means that the power to the CPU core will be cut, so a more advanced context save/restore path needs to be used. Still not sure how the system wide suspend is different from Runtime PM and CPUidle from the hardware perspective... / magnus -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html