History

Merge tag 'for-5.11/io_uring-2020-12-14' of git://git.kernel.dk/linux-block

Pull io_uring updates from Jens Axboe: "Fairly light set of changes this time around, and mostly some bits that were pushed out to 5.11 instead of 5.10, fixes/cleanups, and a few features. In particular: - Cleanups around iovec import (David Laight, Pavel) - Add timeout support for io_uring_enter(2), which enables us to clean up liburing and avoid a timeout sqe submission in the completion path. The big win here is that it allows setups that split SQ and CQ handling into separate threads to avoid locking, as the CQ side will no longer submit when timeouts are needed when waiting for events (Hao Xu) - Add support for socket shutdown, and renameat/unlinkat. - SQPOLL cleanups and improvements (Xiaoguang Wang) - Allow SQPOLL setups for CAP_SYS_NICE, and enable regular (non-fixed) files to be used. - Cancelation improvements (Pavel) - Fixed file reference improvements (Pavel) - IOPOLL related race fixes (Pavel) - Lots of other little fixes and cleanups (mostly Pavel)" * tag 'for-5.11/io_uring-2020-12-14' of git://git.kernel.dk/linux-block: (43 commits) io_uring: fix io_cqring_events()'s noflush io_uring: fix racy IOPOLL flush overflow io_uring: fix racy IOPOLL completions io_uring: always let io_iopoll_complete() complete polled io io_uring: add timeout update io_uring: restructure io_timeout_cancel() io_uring: fix files cancellation io_uring: use bottom half safe lock for fixed file data io_uring: fix miscounting ios_left io_uring: change submit file state invariant io_uring: check kthread stopped flag when sq thread is unparked io_uring: share fixed_file_refs b/w multiple rsrcs io_uring: replace inflight_wait with tctx->wait io_uring: don't take fs for recvmsg/sendmsg io_uring: only wake up sq thread while current task is in io worker context io_uring: don't acquire uring_lock twice io_uring: initialize 'timeout' properly in io_sq_thread() io_uring: refactor io_sq_thread() handling io_uring: always batch cancel in *cancel_files() io_uring: pass files into kill timeouts/poll ...

Linus Torvalds committed 5 years ago

Commit 48aba792 parents 005b2a9 59850d29 files · +827 −593Browse files

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

Unified · Split

include/uapi/linux/io_uring.h+16−0
@@ -42,6 +42,8 @@ struct io_uring_sqe { · 41 unmodified lines
4242 __u32 statx_flags;
4343 __u32 fadvise_advice;
4444 __u32 splice_flags;
45+ __u32 rename_flags;
46+ __u32 unlink_flags;
4547 };
4648 __u64 user_data; /* data to be passed back at completion time */
4749 union {
@@ -132,6 +134,9 @@ enum { · 84 unmodified lines
132134 IORING_OP_PROVIDE_BUFFERS,
133135 IORING_OP_REMOVE_BUFFERS,
134136 IORING_OP_TEE,
137+ IORING_OP_SHUTDOWN,
138+ IORING_OP_RENAMEAT,
139+ IORING_OP_UNLINKAT,
135140
136141 /* this goes last, obviously */
137142 IORING_OP_LAST,
@@ -146,6 +151,7 @@ enum { · 8 unmodified lines
146151 * sqe->timeout_flags
147152 */
148153 #define IORING_TIMEOUT_ABS (1U << 0)
154+#define IORING_TIMEOUT_UPDATE (1U << 1)
149155
150156 /*
151157 * sqe->splice_flags
@@ -226,6 +232,7 @@ struct io_cqring_offsets { · 74 unmodified lines
226232 #define IORING_ENTER_GETEVENTS (1U << 0)
227233 #define IORING_ENTER_SQ_WAKEUP (1U << 1)
228234 #define IORING_ENTER_SQ_WAIT (1U << 2)
235+#define IORING_ENTER_EXT_ARG (1U << 3)
229236
230237 /*
231238 * Passed in for io_uring_setup(2). Copied back with updated info on success
@@ -253,6 +260,8 @@ struct io_uring_params { · 21 unmodified lines
253260 #define IORING_FEAT_CUR_PERSONALITY (1U << 4)
254261 #define IORING_FEAT_FAST_POLL (1U << 5)
255262 #define IORING_FEAT_POLL_32BITS (1U << 6)
263+#define IORING_FEAT_SQPOLL_NONFIXED (1U << 7)
264+#define IORING_FEAT_EXT_ARG (1U << 8)
256265
257266 /*
258267 * io_uring_register(2) opcodes and arguments
@@ -329,4 +338,11 @@ enum { · 70 unmodified lines
329338 IORING_RESTRICTION_LAST
330339 };
331340
341+struct io_uring_getevents_arg {
342+ __u64 sigmask;
343+ __u32 sigmask_sz;
344+ __u32 pad;
345+ __u64 ts;
346+};
347+
332348 #endif