1io_uring_register_buffers(3) liburing Manual io_uring_register_buffers(3)
2
3
4
6 io_uring_register_buffers - register buffers for fixed buffer opera‐
7 tions
8
10 #include <liburing.h>
11
12 int io_uring_register_buffers(struct io_uring *ring,
13 const struct iovec *iovecs,
14 unsigned nr_iovecs);
15
16 int io_uring_register_buffers_sparse(struct io_uring *ring,
17 unsigned nr_iovecs);
18
20 The io_uring_register_buffers(3) function registers nr_iovecs number of
21 buffers defined by the array iovecs belonging to the ring.
22
23 The io_uring_register_buffers_sparse(3) function registers nr_iovecs
24 empty buffers belonging to the ring. These buffers must be updated be‐
25 fore use, using eg io_uring_register_buffers_update_tag(3).
26
27 After the caller has registered the buffers, they can be used with one
28 of the fixed buffers functions.
29
30 Registered buffers is an optimization that is useful in conjunction
31 with O_DIRECT reads and writes, where it maps the specified range into
32 the kernel once when the buffer is registered rather than doing a map
33 and unmap for each IO every time IO is performed to that region. Addi‐
34 tionally, it also avoids manipulating the page reference counts for
35 each IO.
36
37
39 On success io_uring_register_buffers(3) and io_uring_register_buf‐
40 fers_sparse(3) return 0. On failure they return -errno.
41
43 io_uring_get_sqe(3), io_uring_unregister_buffers(3), io_uring_regis‐
44 ter_buf_ring(3), io_uring_prep_read_fixed(3), io_ur‐
45 ing_prep_write_fixed(3)
46
47
48
49liburing-2.1 November 15, 2021 io_uring_register_buffers(3)