io_uring/msg_ring: tighten requirement for remote posting
authorJens Axboe <axboe@kernel.dk>
Tue, 28 May 2024 14:40:12 +0000 (08:40 -0600)
committerJens Axboe <axboe@kernel.dk>
Mon, 24 Jun 2024 14:39:34 +0000 (08:39 -0600)
Currently this is gated on whether or not the target ring needs a local
completion - and if so, whether or not we're running on the right task.
The use case for same thread cross posting is probably a lot less
relevant than remote posting. And since we're going to improve this
situation anyway, just gate it on local posting and ignore what task
we're currently running on.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/msg_ring.c

index 81c4a9d437296cbf1d3af90e72e2b436cb0ca648..9fdb0cc19bfdd89e3f31ff38ec8be879d2cac607 100644 (file)
@@ -68,9 +68,7 @@ void io_msg_ring_cleanup(struct io_kiocb *req)
 
 static inline bool io_msg_need_remote(struct io_ring_ctx *target_ctx)
 {
-       if (!target_ctx->task_complete)
-               return false;
-       return current != target_ctx->submitter_task;
+       return target_ctx->task_complete;
 }
 
 static int io_msg_exec_remote(struct io_kiocb *req, task_work_func_t func)