On 03/03/2020 21:33, Pavel Begunkov wrote: > The next propagation bits are done similarly as it was before, but > - nxt stealing is now at top-level, but not hidden in handlers > - ensure there is no with REQ_F_DONT_STEAL_NEXT Forgot to update this part, and also add, that there is no refcount_dec_fetch(), so I did io_put_req_async_completion() { refcount_dec() refcount_read() } because checks in refcount*() are useful, and I intend to remove refcount_dec() with the optimisation patches. > > v2: > - fix race cond in io_put_req_submission() > - don't REQ_F_DONT_STEAL_NEXT for sync poll_add > > v3: [patch 3/3] only > - drop DONT_STEAL approach, and just check for refcount==1 > > Pavel Begunkov (3): > io_uring: make submission ref putting consistent > io_uring: remove @nxt from handlers > io_uring: get next work with submission ref drop > > fs/io_uring.c | 307 +++++++++++++++++++++++--------------------------- > 1 file changed, 140 insertions(+), 167 deletions(-) > -- Pavel Begunkov