]> git.baikalelectronics.ru Git - kernel.git/commitdiff
md/raid5: Increase restriction on max segments per request
authorLogan Gunthorpe <logang@deltatee.com>
Thu, 16 Jun 2022 19:19:45 +0000 (13:19 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 2 Aug 2022 23:14:43 +0000 (17:14 -0600)
The block layer defaults the maximum segments to 128, which means
requests tend to get split around the 512KB depending on how many
pages can be merged. There's no such restriction in the raid5 code
so increase the limit to USHRT_MAX so that larger requests can be
sent as one.

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/raid5.c

index 651a84bf1a132e0857699c14064748e322f24850..00cab9e525f19e4e28b8d4a5a16babb3b3a73d5c 100644 (file)
@@ -8008,6 +8008,9 @@ static int raid5_run(struct mddev *mddev)
                 */
                blk_queue_max_hw_sectors(mddev->queue,
                        RAID5_MAX_REQ_STRIPES << RAID5_STRIPE_SHIFT(conf));
+
+               /* No restrictions on the number of segments in the request */
+               blk_queue_max_segments(mddev->queue, USHRT_MAX);
        }
 
        if (log_init(conf, journal_dev, raid5_has_ppl(conf)))