On 8/25/21 4:38 PM, Hao Xu wrote: > 在 2021/8/25 下午9:28, Pavel Begunkov 写道: >> On 8/25/21 12:40 PM, Hao Xu wrote: >>> It's not neccessary to free the request back to slab when we fail to >>> get sqe, just update state->free_reqs pointer. >> >> It's a bit hackish because depends on the request being drawn >> from the array in a particular way. How about returning it > It seems a req is always allocated from state->reqs, so it should be > ok? I actually didn't understand 'hackish' here, do you mean > io_submit_sqes() shouldn't move state->free_reqs which is req caches' > internal implementation? I mean it uses implicit knowledge of how io_alloc_req() works, which may and actually will change. It's just always too easy to forget about that little one-off thing while changing another chunk. To give an example, if one decides to remake it and first serve requests from state->free_list and only when it's empty look into state->reqs, it's too easy to forget opening a pretty severe vulnerability. If there is not much profit from it comparing to the risks, I'd personally prefer to go with a safer way. >> into state->free_list. That thing is as cold as it can get, >> only buggy apps can hit it. >> -- Pavel Begunkov