Re: [patch v4 1/2] stop_machine: enable __stop_machine() to be called from the cpu online path

Ingo Molnar
2011-06-13T19:56:31Z

* Suresh Siddha <suresh.b.siddha@intel.com> wrote:

> Currently stop machine infrastructure can be called only from a cpu that is
> online. But for !CONFIG_SMP, we do allow calling __stop_machine() before the
> cpu is online.
>
> x86 for example requires stop machine infrastructure in the cpu online path
> and currently implements its own stop machine (using stop_one_cpu_nowait())
> for MTRR initialization in the cpu online path.
>
> Enhance the __stop_machine() so that it can be called before the cpu
> is onlined. This will pave the way for code consolidation and address potential
> deadlocks caused by multiple mechanisms of doing system wide rendezvous.
>
> This will also address the behavioral differences of __stop_machine()
> between SMP and UP builds.
>
> Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
> Cc: stable@kernel.org # v2.6.35+
> ---
> include/linux/stop_machine.h | 11 +++--
> kernel/stop_machine.c | 91 ++++++++++++++++++++++++++++++++++++++++---
> 2 files changed, 93 insertions(+), 9 deletions(-)

Btw., this is *way* too risky for a -stable backport.

Thanks,

Ingo