Messages in this thread | | | Date | Wed, 12 Dec 2012 20:36:46 +0100 | From | Oleg Nesterov <> | Subject | Re: [RFC PATCH v4 1/9] CPU hotplug: Provide APIs to prevent CPU offline from atomic context |
| |
On 12/12, Oleg Nesterov wrote: > > On 12/12, Srivatsa S. Bhat wrote: > > > > On 12/12/2012 10:47 PM, Oleg Nesterov wrote: > > > > > > Why it needs to be per-cpu? It can be global and __read_mostly to avoid > > > the false-sharing. OK, perhaps to put reader_percpu_refcnt/writer_signal > > > into a single cacheline... > > > > Even I realized this (that we could use a global) after posting out the > > series.. But do you think that it would be better to retain the per-cpu > > variant itself, due to the cache effects? > > I don't really know, up to you. This was the question ;)
But perhaps there is another reason to make it per-cpu...
It seems we can avoid cpu_hotplug.active_writer == current check in get/put.
take_cpu_down() can clear this_cpu(writer_signal) right after it takes hotplug_rwlock for writing. It runs with irqs and preemption disabled, nobody else will ever look at writer_signal on its CPU.
Oleg.
| |