• P
    io_uring: clean up tctx_task_work() · 6294f368
    Pavel Begunkov 提交于
    After recent fixes, tctx_task_work() always does proper spinlocking
    before looking into ->task_list, so now we don't need atomics for
    ->task_state, replace it with non-atomic task_running using the critical
    section.
    
    Tide it up, combine two separate block with spinlocking, and always try
    to splice in there, so we do less locking when new requests are arriving
    during the function execution.
    Signed-off-by: NPavel Begunkov <asml.silence@gmail.com>
    [axboe: fix missing ->task_running reset on task_work_add() failure]
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    6294f368
io_uring.c 252.7 KB