On 3/17/24 7:34 PM, Jens Axboe wrote: >>> diff --git a/io_uring/io_uring.c b/io_uring/io_uring.c >>> index a2cb8da3cc33..f1d3c5e065e9 100644 >>> --- a/io_uring/io_uring.c >>> +++ b/io_uring/io_uring.c >>> @@ -3242,6 +3242,8 @@ static __cold bool io_uring_try_cancel_requests(struct io_ring_ctx *ctx, >>> ret |= io_kill_timeouts(ctx, task, cancel_all); >>> if (task) >>> ret |= io_run_task_work() > 0; >>> + else if (ret) >>> + flush_delayed_work(&ctx->fallback_work); >>> return ret; >>> } >> >> Still can trigger the warning with above patch: >> >> [ 446.275975] ------------[ cut here ]------------ >> [ 446.276340] WARNING: CPU: 8 PID: 731 at kernel/fork.c:969 __put_task_struct+0x10c/0x180 > > And this is running that test case you referenced? I'll take a look, as > it seems related to the poll kill rather than the other patchset. I can reproduce with that test too, and it triggers with v2 of the patchset on top of io_uring-6.9, with and without that poll patch. Which makes sense, as I doubt you're doing any poll or timeouts in there. Pavel, passing that one to you then :) -- Jens Axboe