Hi, Thanks for your response. But I applied this patch to LTS kernel 5.10.180, it can still trigger this bug. --- io_uring/io_uring.c.back 2023-05-20 17:11:25.870550438 +0800 +++ io_uring/io_uring.c 2023-05-20 16:35:24.265846283 +0800 @@ -1970,7 +1970,7 @@ static struct io_kiocb *io_alloc_req(struct io_ring_ctx *ctx) __must_hold(&ctx->uring_lock) { struct io_submit_state *state = &ctx->submit_state; - gfp_t gfp = GFP_KERNEL | __GFP_NOWARN; + gfp_t gfp = GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY; int ret, i; BUILD_BUG_ON(ARRAY_SIZE(state->reqs) < IO_REQ_ALLOC_BATCH); The io_uring.c.back is the original file. Do I apply this patch wrong? Regards, Yang Pavel Begunkov <asml.silence@xxxxxxxxx> 于2023年5月19日周五 22:06写道: > > It's ok for io_uring request allocation to fail, however there are > reports that it starts killing tasks instead of just returning back > to the userspace. Add __GFP_NORETRY, so it doesn't trigger OOM killer. > > Cc: stable@xxxxxxxxxxxxxxx > Fixes: 2b188cc1bb857 ("Add io_uring IO interface") > Reported-by: yang lan <lanyang0908@xxxxxxxxx> > Signed-off-by: Pavel Begunkov <asml.silence@xxxxxxxxx> > --- > io_uring/io_uring.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c > index dab09f568294..ad34a4320dab 100644 > --- a/io_uring/io_uring.c > +++ b/io_uring/io_uring.c > @@ -1073,7 +1073,7 @@ static void io_flush_cached_locked_reqs(struct io_ring_ctx *ctx, > __cold bool __io_alloc_req_refill(struct io_ring_ctx *ctx) > __must_hold(&ctx->uring_lock) > { > - gfp_t gfp = GFP_KERNEL | __GFP_NOWARN; > + gfp_t gfp = GFP_KERNEL | __GFP_NOWARN | __GFP_NORETRY; > void *reqs[IO_REQ_ALLOC_BATCH]; > int ret, i; > > -- > 2.40.0 >