diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c index a200750b536ccffede15ecdcde55d129897cde3e..315031bb38e287682d4e7c53b0985e44ad53ad9b 100644 --- a/io_uring/io_uring.c +++ b/io_uring/io_uring.c @@ -7190,6 +7190,10 @@ static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr) submitted++; if (io_submit_sqe(ctx, req, sqe)) break; + + /* to avoid doing too much in one submit round */ + if (submitted > IORING_MAX_ENTRIES / 2) + cond_resched(); } if (unlikely(submitted != nr)) {