History

Merge tag 'for-6.8/io_uring-2024-01-08' of git://git.kernel.dk/linux

Pull io_uring updates from Jens Axboe: "Mostly just come fixes and cleanups, but one feature as well. In detail: - Harden the check for handling IOPOLL based on return (Pavel) - Various minor optimizations (Pavel) - Drop remnants of SCM_RIGHTS fd passing support, now that it's no longer supported since 6.7 (me) - Fix for a case where bytes_done wasn't initialized properly on a failure condition for read/write requests (me) - Move the register related code to a separate file (me) - Add support for returning the provided ring buffer head (me) - Add support for adding a direct descriptor to the normal file table (me, Christian Brauner) - Fix for ensuring pending task_work for a ring with DEFER_TASKRUN is run even if we timeout waiting (me)" * tag 'for-6.8/io_uring-2024-01-08' of git://git.kernel.dk/linux: io_uring: ensure local task_work is run on wait timeout io_uring/kbuf: add method for returning provided buffer ring head io_uring/rw: ensure io->bytes_done is always initialized io_uring: drop any code related to SCM_RIGHTS io_uring/unix: drop usage of io_uring socket io_uring/register: move io_uring_register(2) related code to register.c io_uring/openclose: add support for IORING_OP_FIXED_FD_INSTALL io_uring/cmd: inline io_uring_cmd_get_task io_uring/cmd: inline io_uring_cmd_do_in_task_lazy io_uring: split out cmd api into a separate header io_uring: optimise ltimeout for inline execution io_uring: don't check iopoll if request completes

Linus Torvalds committed 2 years ago

Commit 4c72e2b2 parents 01d550f 6ff140726 files · +890 −947Browse files

Showing the changes to include/uapi (1 of 26 files). Show all

Unified · Split

include/uapi/linux/io_uring.h+19−0
@@ -71,6 +71,7 @@ struct io_uring_sqe { · 70 unmodified lines
71 __u32 uring_cmd_flags;71 __u32 uring_cmd_flags;
72 __u32 waitid_flags;72 __u32 waitid_flags;
73 __u32 futex_flags;73 __u32 futex_flags;
74 __u32 install_fd_flags;
74 };75 };
75 __u64 user_data; /* data to be passed back at completion time */76 __u64 user_data; /* data to be passed back at completion time */
76 /* pack this to avoid bogus arm OABI complaints */77 /* pack this to avoid bogus arm OABI complaints */
@@ -253,6 +254,7 @@ enum io_uring_op { · 176 unmodified lines
253 IORING_OP_FUTEX_WAIT,254 IORING_OP_FUTEX_WAIT,
254 IORING_OP_FUTEX_WAKE,255 IORING_OP_FUTEX_WAKE,
255 IORING_OP_FUTEX_WAITV,256 IORING_OP_FUTEX_WAITV,
257 IORING_OP_FIXED_FD_INSTALL,
256 258
257 /* this goes last, obviously */259 /* this goes last, obviously */
258 IORING_OP_LAST,260 IORING_OP_LAST,
@@ -386,6 +388,13 @@ enum { · 127 unmodified lines
386/* Pass through the flags from sqe->file_index to cqe->flags */388/* Pass through the flags from sqe->file_index to cqe->flags */
387#define IORING_MSG_RING_FLAGS_PASS (1U << 1)389#define IORING_MSG_RING_FLAGS_PASS (1U << 1)
388 390
391/*
392 * IORING_OP_FIXED_FD_INSTALL flags (sqe->install_fd_flags)
393 *
394 * IORING_FIXED_FD_NO_CLOEXEC Don't mark the fd as O_CLOEXEC
395 */
396#define IORING_FIXED_FD_NO_CLOEXEC (1U << 0)
397
389/*398/*
390 * IO completion data structure (Completion Queue Entry)399 * IO completion data structure (Completion Queue Entry)
391 */400 */
@@ -558,6 +567,9 @@ enum { · 166 unmodified lines
558 /* register a range of fixed file slots for automatic slot allocation */567 /* register a range of fixed file slots for automatic slot allocation */
559 IORING_REGISTER_FILE_ALLOC_RANGE = 25,568 IORING_REGISTER_FILE_ALLOC_RANGE = 25,
560 569
570 /* return status information for a buffer group */
571 IORING_REGISTER_PBUF_STATUS = 26,
572
561 /* this goes last */573 /* this goes last */
562 IORING_REGISTER_LAST,574 IORING_REGISTER_LAST,
563 575
@@ -684,6 +696,13 @@ struct io_uring_buf_reg { · 120 unmodified lines
684 __u64 resv[3];696 __u64 resv[3];
685};697};
686 698
699/* argument for IORING_REGISTER_PBUF_STATUS */
700struct io_uring_buf_status {
701 __u32 buf_group; /* input */
702 __u32 head; /* output */
703 __u32 resv[8];
704};
705
687/*706/*
688 * io_uring_restriction->opcode values707 * io_uring_restriction->opcode values
689 */708 */