mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 18:53:30 +00:00
io_uring: refill request cache in memory order
The allocator will generally return memory in order, but __io_alloc_req_refill() then adds them to a stack and we'll extract them in the opposite order. This obviously isn't a huge deal, but: 1) it makes debugging easier when they are in order 2) keeping them in-order is the right thing to do 3) reduces the code for adding them to the stack Just add them in reverse to the stack. Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
da22bdf38b
commit
05eb5fe226
@ -1039,7 +1039,7 @@ __cold bool __io_alloc_req_refill(struct io_ring_ctx *ctx)
|
||||
{
|
||||
gfp_t gfp = GFP_KERNEL | __GFP_NOWARN;
|
||||
void *reqs[IO_REQ_ALLOC_BATCH];
|
||||
int ret, i;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
* If we have more than a batch's worth of requests in our IRQ side
|
||||
@ -1066,8 +1066,8 @@ __cold bool __io_alloc_req_refill(struct io_ring_ctx *ctx)
|
||||
}
|
||||
|
||||
percpu_ref_get_many(&ctx->refs, ret);
|
||||
for (i = 0; i < ret; i++) {
|
||||
struct io_kiocb *req = reqs[i];
|
||||
while (ret--) {
|
||||
struct io_kiocb *req = reqs[ret];
|
||||
|
||||
io_preinit_req(req, ctx);
|
||||
io_req_add_to_cache(req, ctx);
|
||||
|
Loading…
Reference in New Issue
Block a user