On Thu, 10 Oct 2013 17:26:12 +0200 Oleg Nesterov <o...@redhat.com> wrote:
> On 10/10, Ingo Molnar wrote: > > > > * Peter Zijlstra <pet...@infradead.org> wrote: > > > > > But the thing is; our sense of NR_CPUS has shifted, where it used to be > > > ok to do something like: > > > > > > for_each_cpu() > > > > > > With preemption disabled; it gets to be less and less sane to do so, > > > simply because 'common' hardware has 256+ CPUs these days. If we cannot > > > rely on preempt disable to exclude hotplug, we must use > > > get_online_cpus(), but get_online_cpus() is global state and thus cannot > > > be used at any sort of frequency. > > > > So ... why not make it _really_ cheap, i.e. the read lock costing nothing, > > and tie CPU hotplug to freezing all tasks in the system? > > > > Actual CPU hot unplugging and repluggin is _ridiculously_ rare in a > > system, I don't understand how we tolerate _any_ overhead from this utter > > slowpath. > > Well, iirc Srivatsa (cc'ed) pointed out that some systems do cpu_down/up > quite often to save the power. cpu hotremove already uses stop_machine, so such an approach shouldn't actually worsen things (a lot) for them? It's been ages since I looked at this stuff :( Although it isn't used much, memory hotplug manages to use stop_machine() on the add/remove (ie, "writer") side and nothing at all on the "reader" side. Is there anything which fundamentally prevents cpu hotplug from doing the same? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/