VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
author: Sebastian Andrzej Siewior <bigeasy@linutronix.de> 2021-01-23 21:10:26 +0100 committer: Jens Axboe <axboe@kernel.dk> 2021-02-12 08:28:02 -0700 commit: 0a2efafbb1c752a7041652445bc1232114409633 parent: 93e4f73a93717993bd239e6606689e9ae01c6926
Commit Summary:
blk-mq: Always complete remote completions requests in softirq
Diffstat:
1 file changed, 1 insertion, 13 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index f285a9123a8b..90348ae51846 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -628,19 +628,7 @@ static void __blk_mq_complete_request_remote(void *data)
 {
 	struct request *rq = data;
 
-	/*
-	 * For most of single queue controllers, there is only one irq vector
-	 * for handling I/O completion, and the only irq's affinity is set
-	 * to all possible CPUs.  On most of ARCHs, this affinity means the irq
-	 * is handled on one specific CPU.
-	 *
-	 * So complete I/O requests in softirq context in case of single queue
-	 * devices to avoid degrading I/O performance due to irqsoff latency.
-	 */
-	if (rq->q->nr_hw_queues == 1)
-		blk_mq_trigger_softirq(rq);
-	else
-		rq->q->mq_ops->complete(rq);
+	blk_mq_trigger_softirq(rq);
 }
 
 static inline bool blk_mq_complete_need_ipi(struct request *rq)