Skip to content

Commit

Permalink
io_uring: always plug for any number of IOs
Browse files Browse the repository at this point in the history
Currently we only plug if we're doing more than two request. We're going
to be relying on always having the plug there to pass down information,
so plug unconditionally.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Jens Axboe committed Jun 22, 2020
1 parent 5a473e8 commit ac8691c
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions fs/io_uring.c
Original file line number Diff line number Diff line change
Expand Up @@ -676,7 +676,6 @@ struct io_kiocb {
};
};

#define IO_PLUG_THRESHOLD 2
#define IO_IOPOLL_BATCH 8

struct io_submit_state {
Expand Down Expand Up @@ -5914,7 +5913,7 @@ static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req,
static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr,
struct file *ring_file, int ring_fd)
{
struct io_submit_state state, *statep = NULL;
struct io_submit_state state;
struct io_kiocb *link = NULL;
int i, submitted = 0;

Expand All @@ -5931,10 +5930,7 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr,
if (!percpu_ref_tryget_many(&ctx->refs, nr))
return -EAGAIN;

if (nr > IO_PLUG_THRESHOLD) {
io_submit_state_start(&state, nr);
statep = &state;
}
io_submit_state_start(&state, nr);

ctx->ring_fd = ring_fd;
ctx->ring_file = ring_file;
Expand All @@ -5949,14 +5945,14 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr,
io_consume_sqe(ctx);
break;
}
req = io_alloc_req(ctx, statep);
req = io_alloc_req(ctx, &state);
if (unlikely(!req)) {
if (!submitted)
submitted = -EAGAIN;
break;
}

err = io_init_req(ctx, req, sqe, statep);
err = io_init_req(ctx, req, sqe, &state);
io_consume_sqe(ctx);
/* will complete beyond this point, count as submitted */
submitted++;
Expand All @@ -5982,8 +5978,7 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr,
}
if (link)
io_queue_link_head(link);
if (statep)
io_submit_state_end(&state);
io_submit_state_end(&state);

/* Commit SQ ring head once we've consumed and submitted all SQEs */
io_commit_sqring(ctx);
Expand Down

0 comments on commit ac8691c

Please sign in to comment.