On 9/18/21 7:11 AM, Hao Xu wrote: > 在 2021/9/18 上午4:39, Pavel Begunkov 写道: >> On 9/17/21 8:38 PM, Hao Xu wrote: >>> Leverage completion cache to handle completions of poll requests in a >>> batch. >>> Good thing is we save compl_nr - 1 completion_lock and >>> io_cqring_ev_posted. >>> Bad thing is compl_nr extra ifs in flush_completion. >> >> It does something really wrong breaking all abstractions, we can't go >> with this. Can we have one of those below? >> - __io_req_complete(issue_flags), forwarding issue_flags from above >> - or maybe io_req_task_complete(), if we're in tw > Make sense. we may need to remove io_clean_op logic in > io_req_complete_state(), multishot reqs shouldn't do it, and it's ok for > normal reqs since we do it later in __io_submit_flush_completions-> > io_req_free_batch->io_dismantle_req->io_clean_op, correct me if I'm > wrong. req->compl.cflags is in the first 64B, i.e. aliased with req->rw and others. We need to clean everything left in there before using the space, that's what io_clean_op() there is for -- Pavel Begunkov