summaryrefslogtreecommitdiffstats
path: root/block
diff options
context:
space:
mode:
authorMing Lei <ming.lei@redhat.com>2018-04-08 11:48:12 +0200
committerJens Axboe <axboe@kernel.dk>2018-04-10 16:38:46 +0200
commitefea8450c3d2d3918029b36f59ef612be57d91ae (patch)
tree93916cc4cb8e68cf09b5f22d223b2a2ff7272bcc /block
parentblk-mq: remove blk_mq_delay_queue() (diff)
downloadlinux-efea8450c3d2d3918029b36f59ef612be57d91ae.tar.xz
linux-efea8450c3d2d3918029b36f59ef612be57d91ae.zip
blk-mq: don't check queue mapped in __blk_mq_delay_run_hw_queue()
There are several reasons for removing the check: 1) blk_mq_hw_queue_mapped() returns true always now since each hctx may be mapped by one CPU at least 2) when there isn't any online CPU mapped to this hctx, there won't be any IO queued to this CPU, blk_mq_run_hw_queue() only runs queue if there is IO queued to this hctx 3) If __blk_mq_delay_run_hw_queue() is called by blk_mq_delay_run_hw_queue(), which is run from blk_mq_dispatch_rq_list() or scsi_mq_get_budget(), and the hctx to be handled has to be mapped. Cc: Stefan Haberland <sth@linux.vnet.ibm.com> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r--block/blk-mq.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index c2c6d276da3a..0ee9d8e964b3 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1393,9 +1393,6 @@ select_cpu:
static void __blk_mq_delay_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async,
unsigned long msecs)
{
- if (WARN_ON_ONCE(!blk_mq_hw_queue_mapped(hctx)))
- return;
-
if (unlikely(blk_mq_hctx_stopped(hctx)))
return;