Messages in this thread | | | Date | Wed, 2 Oct 2013 17:17:34 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] hotplug: Optimize {get,put}_online_cpus() |
| |
On Wed, Oct 02, 2013 at 04:00:20PM +0200, Oleg Nesterov wrote: > And again, even > > for (;;) { > percpu_down_write(); > percpu_up_write(); > } > > should not completely block the readers.
Sure there's a tiny window, but don't forget that a reader will have to wait for the gp_state cacheline to transfer to shared state and the per-cpu refcount cachelines to be brought back into exclusive mode and the above can be aggressive enough that by that time we'll observe state == blocked again.
So I don't think that in practise a reader will get in.
Also, since the write side is exposed to userspace; you've got an effective DoS.
So I'll stick to waitcount -- as you can see in the patches I've just posted.
| |