Re: [PATCH] generic dynamic per cpu refcounting

From: Tejun Heo
Date: Mon Jan 28 2013 - 16:36:12 EST


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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/