History

Merge tag 'for-6.6/io_uring-2023-08-28' of git://git.kernel.dk/linux

Pull io_uring updates from Jens Axboe: "Fairly quiet round in terms of features, mostly just improvements all over the map for existing code. In detail: - Initial support for socket operations through io_uring. Latter half of this will likely land with the 6.7 kernel, then allowing things like get/setsockopt (Breno) - Cleanup of the cancel code, and then adding support for canceling requests with the opcode as the key (me) - Improvements for the io-wq locking (me) - Fix affinity setting for SQPOLL based io-wq (me) - Remove the io_uring userspace code. These were added initially as copies from liburing, but all of them have since bitrotted and are way out of date at this point. Rather than attempt to keep them in sync, just get rid of them. People will have liburing available anyway for these examples. (Pavel) - Series improving the CQ/SQ ring caching (Pavel) - Misc fixes and cleanups (Pavel, Yue, me)" * tag 'for-6.6/io_uring-2023-08-28' of git://git.kernel.dk/linux: (47 commits) io_uring: move iopoll ctx fields around io_uring: move multishot cqe cache in ctx io_uring: separate task_work/waiting cache line io_uring: banish non-hot data to end of io_ring_ctx io_uring: move non aligned field to the end io_uring: add option to remove SQ indirection io_uring: compact SQ/CQ heads/tails io_uring: force inline io_fill_cqe_req io_uring: merge iopoll and normal completion paths io_uring: reorder cqring_flush and wakeups io_uring: optimise extra io_get_cqe null check io_uring: refactor __io_get_cqe() io_uring: simplify big_cqe handling io_uring: cqe init hardening io_uring: improve cqe !tracing hot path io_uring/rsrc: Annotate struct io_mapped_ubuf with __counted_by io_uring/sqpoll: fix io-wq affinity when IORING_SETUP_SQPOLL is used io_uring: simplify io_run_task_work_sig return io_uring/rsrc: keep one global dummy_ubuf io_uring: never overflow io_aux_cqe ...

Linus Torvalds committed 3 years ago

Commit c1b7fcf2 parents adfd671 644c4a731 files · +432 −1767Browse files

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

Unified · Split

include/uapi/linux/io_uring.h+20−1
@@ -185,6 +185,11 @@ enum { · 184 unmodified lines
185 */185 */
186#define IORING_SETUP_REGISTERED_FD_ONLY (1U << 15)186#define IORING_SETUP_REGISTERED_FD_ONLY (1U << 15)
187 187
188/*
189 * Removes indirection through the SQ index array.
190 */
191#define IORING_SETUP_NO_SQARRAY (1U << 16)
192
188enum io_uring_op {193enum io_uring_op {
189 IORING_OP_NOP,194 IORING_OP_NOP,
190 IORING_OP_READV,195 IORING_OP_READV,
@@ -299,11 +304,15 @@ enum io_uring_op { · 108 unmodified lines
299 * request 'user_data'304 * request 'user_data'
300 * IORING_ASYNC_CANCEL_ANY Match any request305 * IORING_ASYNC_CANCEL_ANY Match any request
301 * IORING_ASYNC_CANCEL_FD_FIXED 'fd' passed in is a fixed descriptor306 * IORING_ASYNC_CANCEL_FD_FIXED 'fd' passed in is a fixed descriptor
307 * IORING_ASYNC_CANCEL_USERDATA Match on user_data, default for no other key
308 * IORING_ASYNC_CANCEL_OP Match request based on opcode
302 */309 */
303#define IORING_ASYNC_CANCEL_ALL (1U << 0)310#define IORING_ASYNC_CANCEL_ALL (1U << 0)
304#define IORING_ASYNC_CANCEL_FD (1U << 1)311#define IORING_ASYNC_CANCEL_FD (1U << 1)
305#define IORING_ASYNC_CANCEL_ANY (1U << 2)312#define IORING_ASYNC_CANCEL_ANY (1U << 2)
306#define IORING_ASYNC_CANCEL_FD_FIXED (1U << 3)313#define IORING_ASYNC_CANCEL_FD_FIXED (1U << 3)
314#define IORING_ASYNC_CANCEL_USERDATA (1U << 4)
315#define IORING_ASYNC_CANCEL_OP (1U << 5)
307 316
308/*317/*
309 * send/sendmsg and recv/recvmsg flags (sqe->ioprio)318 * send/sendmsg and recv/recvmsg flags (sqe->ioprio)
@@ -697,7 +706,9 @@ struct io_uring_sync_cancel_reg { · 387 unmodified lines
697 __s32 fd;706 __s32 fd;
698 __u32 flags;707 __u32 flags;
699 struct __kernel_timespec timeout;708 struct __kernel_timespec timeout;
700 __u64 pad[4];709 __u8 opcode;
710 __u8 pad[7];
711 __u64 pad2[3];
701};712};
702 713
703/*714/*
@@ -717,6 +728,14 @@ struct io_uring_recvmsg_out { · 13 unmodified lines
717 __u32 flags;728 __u32 flags;
718};729};
719 730
731/*
732 * Argument for IORING_OP_URING_CMD when file is a socket
733 */
734enum {
735 SOCKET_URING_OP_SIOCINQ = 0,
736 SOCKET_URING_OP_SIOCOUTQ,
737};
738
720#ifdef __cplusplus739#ifdef __cplusplus
721}740}
722#endif741#endif