Document sparse buffer registrations and IORING_REGISER_BUFFER_UPDATE. Signed-off-by: Bijan Mottahedeh <bijan.mottahedeh@xxxxxxxxxx> --- man/io_uring_register.2 | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/man/io_uring_register.2 b/man/io_uring_register.2 index 225e461..5c7a39e 100644 --- a/man/io_uring_register.2 +++ b/man/io_uring_register.2 @@ -82,11 +82,13 @@ It is perfectly valid to setup a large buffer and then only use part of it for an I/O, as long as the range is within the originally mapped region. -An application can increase or decrease the size or number of -registered buffers by first unregistering the existing buffers, and -then issuing a new call to -.BR io_uring_register () -with the new buffers. +The buffer set may be sparse, meaning that the +.B iovec +address and size fields in the array may be set to +.B 0. +See +.B IORING_REGISTER_BUFFERS_UPDATE +for how to update buffers in place. Note that registering buffers will wait for the ring to idle. If the application currently has requests in-flight, the registration will wait for those to @@ -103,6 +105,20 @@ must be passed as NULL. All previously registered buffers associated with the io_uring instance will be released. Available since 5.1. .TP +.B IORING_REGISTER_BUFFERS_UPDATE +This operation replaces existing iovecs in the registered buffer set with +new ones, either turning a sparse entry (one where iovec base and len +are equal to 0) into a real one, removing an existing entry (new one is +set to 0), or replacing an existing entry with a new existing entry. +.I arg +must contain a pointer to a struct io_uring_rsrc_update, which contains +an offset on which to start the update, and an array of iovecs to +use for the update. +.I nr_args +must contain the number of iovecs in the passed in array. Available +since 5.12. + +.TP .B IORING_REGISTER_FILES Register files for I/O. .I arg @@ -152,6 +168,9 @@ use for the update. must contain the number of descriptors in the passed in array. Available since 5.5. +Note that struct io_uring_files_update is deprecated since 5.12 and that +io_uring_rsrc_update must be used instead. + .TP .B IORING_UNREGISTER_FILES This operation requires no argument, and -- 1.8.3.1