FAILED: patch "[PATCH] io_uring: Fix race condition when sqp thread goes to sleep" failed to apply to 5.12-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 5.12-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 997135017716c33f3405e86cca5da9567b40a08e Mon Sep 17 00:00:00 2001
From: Olivier Langlois <[email protected]>
Date: Wed, 23 Jun 2021 11:50:11 -0700
Subject: [PATCH] io_uring: Fix race condition when sqp thread goes to sleep
If an asynchronous completion happens before the task is preparing itself to wait and set its state to TASK_INTERRUPTIBLE, the completion will not wake up the sqp thread.
Signed-off-by Olivier Langlois <[email protected]>
Reviewed-by Pavel Begunkov <[email protected]>
Link https://lore.kernel.org/r/d1419dc32ec6a97b453bee34dc03fa6a02797142.1624473200.git.olivier@trillion01.com open here
Signed-off-by Jens Axboe <[email protected]>
fs/io_uring.c +1 -1
@@ -6902,7 +6902,7 @@ static int io_sq_thread(void *data) }prepare_to_wait (&sqd->wait, &wait,TASK_INTERRUPTIBLE ); -if (!io_sqd_events_pending (sqd)) { +if (!io_sqd_events_pending (sqd) && !io_run_task_work ()) { needs_sched = true;list_for_each_entry (ctx, &sqd->ctx_list, sqd_list) {io_ring_set_wakeup_flag (ctx);