On Thu, 2018-07-19 at 06:45 +0800, Ming Lei wrote:
> So once blk_freeze_queue_start() returns, percpu_ref_is_zero() won't
> return true only until the rcu confirmation is done. That means this
> approach may not put device down.

Hello Ming,

I agree with your conclusion that it is not guaranteed that q->q_usage_counter
is in atomic mode when percpu_ref_is_zero() is called. However, I think that's
fine: if blk_pre_runtime_suspend() returns -EBUSY then the runtime core will
try again at a later time to perform runtime suspend.

Bart.

Reply via email to