Re: [PATCH 0/6] Optimize the cpu hotplug locking -v2

From: Andrew Morton
Date: Thu Oct 10 2013 - 13:49:03 EST


On Thu, 10 Oct 2013 13:13:05 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:

> >
> > > > Why prevent all CPUs from running when we want to remove
> > > > one?
> > >
> > > So get_online_cpus() goes away. Nothing is more scalable than nothing!
> >
> > Very much agreed; now stop_machine() wouldn't actually work for hotplug
> > because it will instantly preempt everybody, including someone who might
> > be in the middle of using per-cpu state of the cpu we're about to
> > remove.
>
> Well, stop machine doesn't instantly preempt everybody. Only those that
> don't have preemption disabled. Using per_cpu without preemption
> disabled can be dangerous.

Yes, I'd have thought that the cases where a CPU is fiddling with
another CPU's percpu data with preemption enabled would be rather rare.

I can't actually think of any off the top. Are there examples we can
look at?

--
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/