Hello, On Tue, Aug 07, 2018 at 03:51:28PM -0700, Bart Van Assche wrote: > Introduce a function that allows to determine whether a per-cpu refcount > is in use. This function will be used in a later patch to determine > whether or not any block layer requests are being executed. I thought about it a bit and am having a bit of difficulty convincing myself this is necessary. Switching a percpu_ref to atomic mode isn't expensive - it's one spinlock cycle, a rcu wait and one sweep of the percpu counters. The most expensive part - the percpu sweep - needs to be there even with optimization, the wait doesn't really matter as all it'll do is slightly delaying timer based PM operation and can be overlayed with the propagation of set_pm_only() anyway. So, how about just doing the simple thing? Switch it to atomic mode and check the counter and switch back to percpu mode afterwards. If we see any issues with that, we can try to optimize it later but that seems unlikely to me. Thanks. -- tejun