]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop queue-6.1/block-mq-deadline-fix-the-tag-reservation-code.patch
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Jul 2024 06:07:53 +0000 (08:07 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Jul 2024 06:07:53 +0000 (08:07 +0200)
queue-6.1/block-mq-deadline-fix-the-tag-reservation-code.patch [deleted file]

diff --git a/queue-6.1/block-mq-deadline-fix-the-tag-reservation-code.patch b/queue-6.1/block-mq-deadline-fix-the-tag-reservation-code.patch
deleted file mode 100644 (file)
index 5e71356..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From ca04ffe33d7623a4bb5530ed6fab0fe4099a9636 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 9 May 2024 10:01:49 -0700
-Subject: block/mq-deadline: Fix the tag reservation code
-
-From: Bart Van Assche <bvanassche@acm.org>
-
-[ Upstream commit 39823b47bbd40502632ffba90ebb34fff7c8b5e8 ]
-
-The current tag reservation code is based on a misunderstanding of the
-meaning of data->shallow_depth. Fix the tag reservation code as follows:
-* By default, do not reserve any tags for synchronous requests because
-  for certain use cases reserving tags reduces performance. See also
-  Harshit Mogalapalli, [bug-report] Performance regression with fio
-  sequential-write on a multipath setup, 2024-03-07
-  (https://lore.kernel.org/linux-block/5ce2ae5d-61e2-4ede-ad55-551112602401@oracle.com/)
-* Reduce min_shallow_depth to one because min_shallow_depth must be less
-  than or equal any shallow_depth value.
-* Scale dd->async_depth from the range [1, nr_requests] to [1,
-  bits_per_sbitmap_word].
-
-Cc: Christoph Hellwig <hch@lst.de>
-Cc: Damien Le Moal <dlemoal@kernel.org>
-Cc: Zhiguo Niu <zhiguo.niu@unisoc.com>
-Fixes: 07757588e507 ("block/mq-deadline: Reserve 25% of scheduler tags for synchronous requests")
-Signed-off-by: Bart Van Assche <bvanassche@acm.org>
-Reviewed-by: Christoph Hellwig <hch@lst.de>
-Link: https://lore.kernel.org/r/20240509170149.7639-3-bvanassche@acm.org
-Signed-off-by: Jens Axboe <axboe@kernel.dk>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- block/mq-deadline.c | 20 +++++++++++++++++---
- 1 file changed, 17 insertions(+), 3 deletions(-)
-
-diff --git a/block/mq-deadline.c b/block/mq-deadline.c
-index f10c2a0d18d41..ff029e1acc4d5 100644
---- a/block/mq-deadline.c
-+++ b/block/mq-deadline.c
-@@ -597,6 +597,20 @@ static struct request *dd_dispatch_request(struct blk_mq_hw_ctx *hctx)
-       return rq;
- }
-+/*
-+ * 'depth' is a number in the range 1..INT_MAX representing a number of
-+ * requests. Scale it with a factor (1 << bt->sb.shift) / q->nr_requests since
-+ * 1..(1 << bt->sb.shift) is the range expected by sbitmap_get_shallow().
-+ * Values larger than q->nr_requests have the same effect as q->nr_requests.
-+ */
-+static int dd_to_word_depth(struct blk_mq_hw_ctx *hctx, unsigned int qdepth)
-+{
-+      struct sbitmap_queue *bt = &hctx->sched_tags->bitmap_tags;
-+      const unsigned int nrr = hctx->queue->nr_requests;
-+
-+      return ((qdepth << bt->sb.shift) + nrr - 1) / nrr;
-+}
-+
- /*
-  * Called by __blk_mq_alloc_request(). The shallow_depth value set by this
-  * function is used by __blk_mq_get_tag().
-@@ -613,7 +627,7 @@ static void dd_limit_depth(blk_opf_t opf, struct blk_mq_alloc_data *data)
-        * Throttle asynchronous requests and writes such that these requests
-        * do not block the allocation of synchronous requests.
-        */
--      data->shallow_depth = dd->async_depth;
-+      data->shallow_depth = dd_to_word_depth(data->hctx, dd->async_depth);
- }
- /* Called by blk_mq_update_nr_requests(). */
-@@ -623,9 +637,9 @@ static void dd_depth_updated(struct blk_mq_hw_ctx *hctx)
-       struct deadline_data *dd = q->elevator->elevator_data;
-       struct blk_mq_tags *tags = hctx->sched_tags;
--      dd->async_depth = max(1UL, 3 * q->nr_requests / 4);
-+      dd->async_depth = q->nr_requests;
--      sbitmap_queue_min_shallow_depth(&tags->bitmap_tags, dd->async_depth);
-+      sbitmap_queue_min_shallow_depth(&tags->bitmap_tags, 1);
- }
- /* Called by blk_mq_init_hctx() and blk_mq_init_sched(). */
--- 
-2.43.0
-