summaryrefslogtreecommitdiffstats
path: root/block/scsi_ioctl.c
diff options
context:
space:
mode:
authorTejun Heo2014-11-04 19:52:27 +0100
committerJens Axboe2014-11-04 22:49:31 +0100
commitf3af020b9a8d298022b811a19719df0cf461efa5 (patch)
tree7468b9e6077738b941c89433d491662c7b8da8b4 /block/scsi_ioctl.c
parentblock: Fix computation of merged request priority (diff)
downloadkernel-qcow2-linux-f3af020b9a8d298022b811a19719df0cf461efa5.tar.gz
kernel-qcow2-linux-f3af020b9a8d298022b811a19719df0cf461efa5.tar.xz
kernel-qcow2-linux-f3af020b9a8d298022b811a19719df0cf461efa5.zip
blk-mq: make mq_queue_reinit_notify() freeze queues in parallel
q->mq_usage_counter is a percpu_ref which is killed and drained when the queue is frozen. On a CPU hotplug event, blk_mq_queue_reinit() which involves freezing the queue is invoked on all existing queues. Because percpu_ref killing and draining involve a RCU grace period, doing the above on one queue after another may take a long time if there are many queues on the system. This patch splits out initiation of freezing and waiting for its completion, and updates blk_mq_queue_reinit_notify() so that the queues are frozen in parallel instead of one after another. Note that freezing and unfreezing are moved from blk_mq_queue_reinit() to blk_mq_queue_reinit_notify(). Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/scsi_ioctl.c')
0 files changed, 0 insertions, 0 deletions