From b15a952c52a6825376d3e7f6c1bf5c886c6d8b74 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 12:06:00 +0200 Subject: Adding debian version 5.10.209-2. Signed-off-by: Daniel Baumann --- ...ys-complete-remote-completions-requests-i.patch | 49 ++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch (limited to 'debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch') diff --git a/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch b/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch new file mode 100644 index 000000000..92574e87b --- /dev/null +++ b/debian/patches-rt/0064-blk-mq-Always-complete-remote-completions-requests-i.patch @@ -0,0 +1,49 @@ +From 4397e4a75ac6456a0dd8cf0a99c8250845b022d6 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Sat, 23 Jan 2021 21:10:26 +0100 +Subject: [PATCH 064/323] blk-mq: Always complete remote completions requests + in softirq +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.10/older/patches-5.10.204-rt100.tar.xz + +Controllers with multiple queues have their IRQ-handelers pinned to a +CPU. The core shouldn't need to complete the request on a remote CPU. + +Remove this case and always raise the softirq to complete the request. + +Reviewed-by: Christoph Hellwig +Reviewed-by: Daniel Wagner +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Jens Axboe +Signed-off-by: Sebastian Andrzej Siewior +--- + block/blk-mq.c | 14 +------------- + 1 file changed, 1 insertion(+), 13 deletions(-) + +diff --git a/block/blk-mq.c b/block/blk-mq.c +index cc41373cf346..87b8377a74fc 100644 +--- a/block/blk-mq.c ++++ b/block/blk-mq.c +@@ -630,19 +630,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) +-- +2.43.0 + -- cgit v1.2.3