On Mon, 2022-12-05 at 04:53 -0700, Jens Axboe wrote: > On 12/4/22 7:44?PM, Pavel Begunkov wrote: > > We want to limit post_aux_cqe() to the task context when - > > >task_complete > > is set, and so we can't just deliver a IORING_OP_MSG_RING CQE to > > another > > thread. Instead of trying to invent a new delayed CQE posting > > mechanism > > push them into the overflow list. > > This is really the only one out of the series that I'm not a big fan > of. > If we always rely on overflow for msg_ring, then that basically > removes > it from being usable in a higher performance setting. > > The natural way to do this would be to post the cqe via task_work for > the target, ring, but we also don't any storage available for that. > Might still be better to alloc something ala > > struct tw_cqe_post { > struct task_work work; > s32 res; > u32 flags; > u64 user_data; > } > > and post it with that? > It might work to post the whole request to the target, post the cqe, and then return the request back to the originating ring via tw for the msg_ring CQE and cleanup.