• J
    io_uring: add file set registration · 7bfbdad6
    Jens Axboe 提交于
    commit 6b06314c47e141031be043539900d80d2c7ba10f upstream.
    
    We normally have to fget/fput for each IO we do on a file. Even with
    the batching we do, the cost of the atomic inc/dec of the file usage
    count adds up.
    
    This adds IORING_REGISTER_FILES, and IORING_UNREGISTER_FILES opcodes
    for the io_uring_register(2) system call. The arguments passed in must
    be an array of __s32 holding file descriptors, and nr_args should hold
    the number of file descriptors the application wishes to pin for the
    duration of the io_uring instance (or until IORING_UNREGISTER_FILES is
    called).
    
    When used, the application must set IOSQE_FIXED_FILE in the sqe->flags
    member. Then, instead of setting sqe->fd to the real fd, it sets sqe->fd
    to the index in the array passed in to IORING_REGISTER_FILES.
    
    Files are automatically unregistered when the io_uring instance is torn
    down. An application need only unregister if it wishes to register a new
    set of fds.
    Reviewed-by: NHannes Reinecke <hare@suse.com>
    Signed-off-by: NJens Axboe <axboe@kernel.dk>
    Signed-off-by: NJoseph Qi <joseph.qi@linux.alibaba.com>
    Reviewed-by: NJeffle Xu <jefflexu@linux.alibaba.com>
    Acked-by: NCaspar Zhang <caspar@linux.alibaba.com>
    7bfbdad6
io_uring.h 2.5 KB