Messages in this thread | | | Date | Mon, 29 Jan 2007 20:12:41 +0100 | From | Ingo Molnar <> | Subject | Re: Fw: Re: [mm PATCH 4/6] RCU: (now) CPU hotplug |
| |
* Andrew Morton <akpm@osdl.org> wrote:
> > The idea being to essentially suspend the system to RAM, remove the > > CPU and then unsuspend it? Seems like quite high overhead -- or am > > I misunderstanding the proposal? > > The process freezer basically wakes up all threads in the machine and > makes them go to sleep in a specific place, so they're all in a known > state. kernel threads are also captured, via their open-coded polling > call to try_to_freeze(). > > The machine suspend code uses the process freezer, as does kprobes. > The freezer isn't tied to suspend or to power management. > > The freezer does have potential to be expensive if used frequently and > if there are many threads. But I don't think anyone has looked at > optimising it. [...]
i've measured it and it takes a few milliseconds typically - certainly not noticeable even for hypothetical highly scripted CPU-hotplug environments. (i doubt they really exist in practice)
in fact (new) kprobes uses the freezer, and it's far more performance sensitive than the handling of CPU hotplug events.
And there was almost no effort put into making the freezer fast, i'm sure if it ever becomes a problem we could improve it quite drastically. And that effort would improve suspend performance and kprobes performance as well - while the cpu-hotplug locking hell is just an unneeded distraction nobody really can deal with properly. So i say lets ditch CPU hotplug locking completely and lets go for the dead-simple freezer based design ...
Ingo - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |