io_uring/msg_ring: flag target ring as having task_work, if needed
authorJens Axboe <axboe@kernel.dk>
Thu, 8 Dec 2022 16:36:02 +0000 (09:36 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 8 Dec 2022 16:36:02 +0000 (09:36 -0700)
Before the recent change, we didn't even wake the targeted task when
posting the cqe remotely. Now we do wake it, but we do want to ensure
that the recipient knows there's potential work there that needs to
get processed to get the CQE posted.

OR in IORING_SQ_TASKRUN for that purpose.

Link: https://lore.kernel.org/io-uring/2843c6b4-ba9a-b67d-e0f4-957f42098489@kernel.dk/
Fixes: 6d043ee1164c ("io_uring: do msg_ring in target task via tw")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/msg_ring.c

index a1accf3..2d3cd94 100644 (file)
@@ -67,6 +67,7 @@ static int io_msg_ring_data(struct io_kiocb *req)
                                  TWA_SIGNAL_NO_IPI))
                        return -EOWNERDEAD;
 
+               atomic_or(IORING_SQ_TASKRUN, &target_ctx->rings->sq_flags);
                return IOU_ISSUE_SKIP_COMPLETE;
        }