On 12/7/22 8:31 AM, Jens Axboe wrote: > On 12/6/22 8:53?PM, Pavel Begunkov wrote: >> @@ -43,6 +61,15 @@ static int io_msg_ring_data(struct io_kiocb *req) >> if (msg->src_fd || msg->dst_fd || msg->flags) >> return -EINVAL; >> >> + if (target_ctx->task_complete && current != target_ctx->submitter_task) { >> + init_task_work(&msg->tw, io_msg_tw_complete); >> + if (task_work_add(target_ctx->submitter_task, &msg->tw, >> + TWA_SIGNAL)) >> + return -EOWNERDEAD; >> + >> + return IOU_ISSUE_SKIP_COMPLETE; >> + } >> + > > We should probably be able to get by with TWA_SIGNAL_NO_IPI here, no? Considering we didn't even wake before, I'd say that's a solid yes. -- Jens Axboe