Re: Fw: Re: [mm PATCH 4/6] RCU: (now) CPU hotplug
From: Ingo Molnar
Date: Mon Jan 29 2007 - 14:15:09 EST
* Andrew Morton <akpm@xxxxxxxx> 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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/