diff options
author | Jens Axboe <axboe@kernel.dk> | 2022-12-08 17:36:02 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-12-08 17:36:02 +0100 |
commit | 761c61c15903db41343532882b0443addb8c2faf (patch) | |
tree | 189b974f9feb631a986f6e0f9dec88100ef58ecb /io_uring/msg_ring.c | |
parent | io_uring: skip spinlocking for ->task_complete (diff) | |
download | linux-761c61c15903db41343532882b0443addb8c2faf.tar.xz linux-761c61c15903db41343532882b0443addb8c2faf.zip |
io_uring/msg_ring: flag target ring as having task_work, if needed
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>
Diffstat (limited to 'io_uring/msg_ring.c')
-rw-r--r-- | io_uring/msg_ring.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/io_uring/msg_ring.c b/io_uring/msg_ring.c index a1accf342079..2d3cd945a531 100644 --- a/io_uring/msg_ring.c +++ b/io_uring/msg_ring.c @@ -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; } |