Messages in this thread | | | Date | Tue, 28 Oct 2014 21:29:16 +0100 | From | Christian Borntraeger <> | Subject | Re: blk-mq vs cpu hotplug performance (due to percpu_ref_put performance) |
| |
Am 28.10.2014 21:22, schrieb Tejun Heo: > On Tue, Oct 28, 2014 at 09:20:55PM +0100, Christian Borntraeger wrote: >> I have not verified this, but I guess what happens is: >> hotplug >> -> notify >> -> blk_mq_queue_reinit_notify >> -> blk_mq_queue_reinit >> -> blk_mq_freeze_queue >> -> percpu_ref_kill >> -> percpu_ref_kill_and_confirm >> -> __percpu_ref_switch_to_atomic >> -> call_rcu_sched > > But call_rcu_sched() wouldn't show up as latency. It's an async call > unlike synchronize_*().
Right, but
blk_mq_freeze_queue
also contains
wait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->mq_usage_counter));
Isnt that wait_event woken up at the end of the call_rcu_sched?
| |