summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2021-10-06 21:01:07 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-11-17 13:03:51 +0300
commit8a6e8aa372073ea644ac7ffc9e5a428d6717c57e (patch)
tree3a137327ecef3aa360bc30bb5289f142bfa7c9f7 /block
parentf5ec8022cf54cb029e408bdcdd4693df8c9d02ce (diff)
downloadlinux-8a6e8aa372073ea644ac7ffc9e5a428d6717c57e.tar.xz
block: bump max plugged deferred size from 16 to 32
[ Upstream commit ba0ffdd8ce48ad7f7e85191cd29f9674caca3745 ] Particularly for NVMe with efficient deferred submission for many requests, there are nice benefits to be seen by bumping the default max plug count from 16 to 32. This is especially true for virtualized setups, where the submit part is more expensive. But can be noticed even on native hardware. Reduce the multiple queue factor from 4 to 2, since we're changing the default size. While changing it, move the defines into the block layer private header. These aren't values that anyone outside of the block layer uses, or should use. Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'block')
-rw-r--r--block/blk-mq.c4
-rw-r--r--block/blk.h6
2 files changed, 8 insertions, 2 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index dc49483334c7..9c658883020f 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2141,14 +2141,14 @@ static void blk_add_rq_to_plug(struct blk_plug *plug, struct request *rq)
}
/*
- * Allow 4x BLK_MAX_REQUEST_COUNT requests on plug queue for multiple
+ * Allow 2x BLK_MAX_REQUEST_COUNT requests on plug queue for multiple
* queues. This is important for md arrays to benefit from merging
* requests.
*/
static inline unsigned short blk_plug_max_rq_count(struct blk_plug *plug)
{
if (plug->multiple_queues)
- return BLK_MAX_REQUEST_COUNT * 4;
+ return BLK_MAX_REQUEST_COUNT * 2;
return BLK_MAX_REQUEST_COUNT;
}
diff --git a/block/blk.h b/block/blk.h
index f10cc9b2c27f..1af7c13ccc70 100644
--- a/block/blk.h
+++ b/block/blk.h
@@ -182,6 +182,12 @@ void blk_account_io_start(struct request *req);
void blk_account_io_done(struct request *req, u64 now);
/*
+ * Plug flush limits
+ */
+#define BLK_MAX_REQUEST_COUNT 32
+#define BLK_PLUG_FLUSH_SIZE (128 * 1024)
+
+/*
* Internal elevator interface
*/
#define ELV_ON_HASH(rq) ((rq)->rq_flags & RQF_HASHED)