diff options
author | Jens Axboe <axboe@kernel.dk> | 2024-08-09 10:39:38 -0600 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2024-08-25 08:27:01 -0600 |
commit | a69307a55454060b5795e68d249157f2961049c2 (patch) | |
tree | f8e10437c983c13d22d4f33c5efe3c89deeb50f3 /io_uring/kbuf.h | |
parent | 566a424212d79b90e3a8fe6b5c7bd8f69174105c (diff) | |
download | lwn-a69307a55454060b5795e68d249157f2961049c2.tar.gz lwn-a69307a55454060b5795e68d249157f2961049c2.zip |
io_uring/kbuf: turn io_buffer_list booleans into flags
We could just move these two and save some space, but in preparation
for adding another flag, turn them into flags first.
This saves 8 bytes in struct io_buffer_list, making it exactly half
a cacheline on 64-bit archs now rather than 40 bytes.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring/kbuf.h')
-rw-r--r-- | io_uring/kbuf.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/io_uring/kbuf.h b/io_uring/kbuf.h index b90aca3a57fa..2ed141d7662e 100644 --- a/io_uring/kbuf.h +++ b/io_uring/kbuf.h @@ -4,6 +4,13 @@ #include <uapi/linux/io_uring.h> +enum { + /* ring mapped provided buffers */ + IOBL_BUF_RING = 1, + /* ring mapped provided buffers, but mmap'ed by application */ + IOBL_MMAP = 2, +}; + struct io_buffer_list { /* * If ->buf_nr_pages is set, then buf_pages/buf_ring are used. If not, @@ -25,12 +32,9 @@ struct io_buffer_list { __u16 head; __u16 mask; - atomic_t refs; + __u16 flags; - /* ring mapped provided buffers */ - __u8 is_buf_ring; - /* ring mapped provided buffers, but mmap'ed by application */ - __u8 is_mmap; + atomic_t refs; }; struct io_buffer { |