From: Jens Axboe Date: Tue, 19 Oct 2021 15:32:59 +0000 (-0600) Subject: block: prefetch request to be initialized X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=92aff191cc5b15a56d10a7a1a0b4bc5f6e17fcf3;p=linux.git block: prefetch request to be initialized Now we have the tags available in __blk_mq_alloc_requests_batch(), we can start fetching the first request cacheline before calling into the request initialization. Signed-off-by: Jens Axboe Link: https://lore.kernel.org/r/20211019153300.623322-4-axboe@kernel.dk Signed-off-by: Jens Axboe --- diff --git a/block/blk-mq.c b/block/blk-mq.c index e881e12a2691e..7cdb10f96aa6c 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -405,6 +405,7 @@ __blk_mq_alloc_requests_batch(struct blk_mq_alloc_data *data, for (i = 0; tag_mask; i++) { if (!(tag_mask & (1UL << i))) continue; + prefetch(tags->static_rqs[tag]); tag = tag_offset + i; tag_mask &= ~(1UL << i); rq = blk_mq_rq_ctx_init(data, tags, tag, alloc_time_ns);