On Mon, 2017-09-11 at 06:13 -0700, Tejun Heo wrote: > On Fri, Sep 08, 2017 at 04:52:22PM -0700, Bart Van Assche wrote: > > The blk-mq core keeps track of the number of request queue users > > through q->q_usage_count. Make it possible to switch this counter > > to atomic mode from the context of the block layer power management > > code by introducing percpu_ref_switch_to_atomic_nowait(). > > Do you ever have to switch back? If so, how do you know whether the > previous transition finished? Hello Tejun, The way I would like to use this function is to check for completion of the transition by calling percpu_ref_is_zero(). That function namely not only checks the value of the refcount but also whether it is in atomic mode. See also "[PATCH 5/5] blk-mq: Implement power management support" (https://www.spinics.net/lists/linux-block/msg17143.html). Do you think this will work? Thanks, Bart.