Messages in this thread | | | Date | Tue, 28 Oct 2014 21:20:55 +0100 | From | Christian Borntraeger <> | Subject | Re: blk-mq vs cpu hotplug performance (due to percpu_ref_put performance) |
| |
Am 28.10.2014 21:00, schrieb Tejun Heo: > Hello, > > On Tue, Oct 28, 2014 at 08:35:39PM +0100, Christian Borntraeger wrote: >> when going from 3.17 to 3.18-rc2 cpu hotplug become horrible slow on some KVM guests on s390 >> >> I was able to bisect this to >> >> commit 9eca80461a45177e456219a9cd944c27675d6512 >> ("Revert "blk-mq, percpu_ref: implement a kludge for SCSI blk-mq stall during probe") > > That removes the earlier kludge to avoid the RCU delay so RCU > latencies are expected to show up right after; however, the following > patches implement proper fix for the problem and the latencies > shouldn't be visible afterwards. > > So, 17497acbdce9 ("blk-mq, percpu_ref: start q->mq_usage_counter in > atomic mode") should remove the latencies again. It doesn't?
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
for every request queue. Christian
| |