Messages in this thread | | | Date | Wed, 12 Dec 2012 23:41:21 +0530 | From | "Srivatsa S. Bhat" <> | Subject | Re: [RFC PATCH v4 1/9] CPU hotplug: Provide APIs to prevent CPU offline from atomic context |
| |
On 12/12/2012 10:54 PM, Oleg Nesterov wrote: > On 12/12, Oleg Nesterov wrote: >> >> On 12/11, Srivatsa S. Bhat wrote: >>> >>> IOW, the hotplug readers just increment/decrement their per-cpu refcounts >>> when no writer is active. >> >> plus cli/sti ;) and increment/decrement are atomic. > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > OOPS, sorry I was going to say "adds mb()". >
Ok, got it :)
> And when I look at get_online_cpus_atomic() again it uses rmb(). This > doesn't look correct, we need the full barrier between this_cpu_inc() > and writer_active(). >
Hmm..
> At the same time reader_nested_percpu() can be checked before mb(). >
I thought that since the increment and the check (reader_nested_percpu) act on the same memory location, they will naturally be run in the given order, without any need for barriers. Am I wrong?
(I referred Documentation/memory-barriers.txt again to verify this, and the second point under the "Guarantees" section looked like it said the same thing : "Overlapping loads and stores within a particular CPU will appear to be ordered within that CPU").
Regards, Srivatsa S. Bhat
| |