Messages in this thread | | | Date | Mon, 28 Jan 2013 13:36:22 -0800 | From | Tejun Heo <> | Subject | Re: [PATCH] generic dynamic per cpu refcounting |
| |
On Mon, Jan 28, 2013 at 01:28:14PM -0800, Tejun Heo wrote: > But at that point, the operation is already global, so there gotta be > a lighter way to synchronize stuff than going through full grace > period. ie. You can add a bias value before marking dead so that the > counter never reaches zero before all percpu counters are collected > and then unbias it right before putting the base ref, that way the > only way you can hit zero ref is all refs are actually zero.
Note that I'm saying that there's no need to distinguish between dying and dead. The only thing percpu part should care about it whether percpu is on or off. We need a full grace period to turn off percpu operations of any type but that should be the only case where full grace period is necessary. The rest should be synchronizable via the usual global synchronization. We probably can just test percpu variable against NULL and forget about the encoded state numbers.
Thanks.
-- tejun
| |