summaryrefslogtreecommitdiffstats
path: root/io_uring
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2022-12-08 17:36:02 +0100
committerJens Axboe <axboe@kernel.dk>2022-12-08 17:36:02 +0100
commit761c61c15903db41343532882b0443addb8c2faf (patch)
tree189b974f9feb631a986f6e0f9dec88100ef58ecb /io_uring
parentio_uring: skip spinlocking for ->task_complete (diff)
downloadlinux-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')
-rw-r--r--io_uring/msg_ring.c1
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;
}