• J
    io_uring: optimize submit_and_wait API · 691657a2
    Jens Axboe 提交于
    commit c576666863b788c2d7e8ab4ef4edd0e9059cb47b upstream.
    
    For some applications that end up using a submit-and-wait type of
    approach for certain batches of IO, we can make that a bit more
    efficient by allowing the application to block for the last IO
    submission. This prevents an async when we don't need it, as the
    application will be blocking for the completion event(s) anyway.
    
    Typical use cases are using the liburing
    io_uring_submit_and_wait() API, or just using io_uring_enter()
    doing both submissions and completions. As a specific example,
    RocksDB doing MultiGet() is sped up quite a bit with this
    change.
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    Signed-off-by: NJoseph Qi <joseph.qi@linux.alibaba.com>
    Reviewed-by: NXiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
    691657a2
io_uring.c 87.1 KB