History

Merge tag 'for-5.18/io_uring-2022-03-18' of git://git.kernel.dk/linux-block

Pull io_uring updates from Jens Axboe: - Fixes for current file position. Still doesn't have the f_pos_lock sorted, but it's a step in the right direction (Dylan) - Tracing updates (Dylan, Stefan) - Improvements to io-wq locking (Hao) - Improvements for provided buffers (me, Pavel) - Support for registered file descriptors (me, Xiaoguang) - Support for ring messages (me) - Poll improvements (me) - Fix for fixed buffers and non-iterator reads/writes (me) - Support for NAPI on sockets (Olivier) - Ring quiesce improvements (Usama) - Misc fixes (Olivier, Pavel) * tag 'for-5.18/io_uring-2022-03-18' of git://git.kernel.dk/linux-block: (42 commits) io_uring: terminate manual loop iterator loop correctly for non-vecs io_uring: don't check unrelated req->open.how in accept request io_uring: manage provided buffers strictly ordered io_uring: fold evfd signalling under a slower path io_uring: thin down io_commit_cqring() io_uring: shuffle io_eventfd_signal() bits around io_uring: remove extra barrier for non-sqpoll iopoll io_uring: fix provided buffer return on failure for kiocb_done() io_uring: extend provided buf return to fails io_uring: refactor timeout cancellation cqe posting io_uring: normilise naming for fill_cqe* io_uring: cache poll/double-poll state with a request flag io_uring: cache req->apoll->events in req->cflags io_uring: move req->poll_refs into previous struct hole io_uring: make tracing format consistent io_uring: recycle apoll_poll entries io_uring: remove duplicated member check for io_msg_ring_prep() io_uring: allow submissions to continue on error io_uring: recycle provided buffers if request goes async io_uring: ensure reads re-import for selected buffers ...

Linus Torvalds committed 4 years ago

Commit af472a92 parents 93e220a 5e929365 files · +1200 −520Browse files

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

Unified · Split

include/uapi/linux/io_uring.h+13−4
@@ -101,6 +101,7 @@ enum { · 100 unmodified lines
101#define IORING_SETUP_CLAMP (1U << 4) /* clamp SQ/CQ ring sizes */101#define IORING_SETUP_CLAMP (1U << 4) /* clamp SQ/CQ ring sizes */
102#define IORING_SETUP_ATTACH_WQ (1U << 5) /* attach to existing wq */102#define IORING_SETUP_ATTACH_WQ (1U << 5) /* attach to existing wq */
103#define IORING_SETUP_R_DISABLED (1U << 6) /* start with ring disabled */103#define IORING_SETUP_R_DISABLED (1U << 6) /* start with ring disabled */
104#define IORING_SETUP_SUBMIT_ALL (1U << 7) /* continue submit on error */
104 105
105enum {106enum {
106 IORING_OP_NOP,107 IORING_OP_NOP,
@@ -143,6 +144,7 @@ enum { · 36 unmodified lines
143 IORING_OP_MKDIRAT,144 IORING_OP_MKDIRAT,
144 IORING_OP_SYMLINKAT,145 IORING_OP_SYMLINKAT,
145 IORING_OP_LINKAT,146 IORING_OP_LINKAT,
147 IORING_OP_MSG_RING,
146 148
147 /* this goes last, obviously */149 /* this goes last, obviously */
148 IORING_OP_LAST,150 IORING_OP_LAST,
@@ -199,9 +201,11 @@ struct io_uring_cqe { · 50 unmodified lines
199 *201 *
200 * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID202 * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID
201 * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries203 * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries
204 * IORING_CQE_F_MSG If set, CQE was generated with IORING_OP_MSG_RING
202 */205 */
203#define IORING_CQE_F_BUFFER (1U << 0)206#define IORING_CQE_F_BUFFER (1U << 0)
204#define IORING_CQE_F_MORE (1U << 1)207#define IORING_CQE_F_MORE (1U << 1)
208#define IORING_CQE_F_MSG (1U << 2)
205 209
206enum {210enum {
207 IORING_CQE_BUFFER_SHIFT = 16,211 IORING_CQE_BUFFER_SHIFT = 16,
@@ -257,10 +261,11 @@ struct io_cqring_offsets { · 49 unmodified lines
257/*261/*
258 * io_uring_enter(2) flags262 * io_uring_enter(2) flags
259 */263 */
260#define IORING_ENTER_GETEVENTS (1U << 0)264#define IORING_ENTER_GETEVENTS (1U << 0)
261#define IORING_ENTER_SQ_WAKEUP (1U << 1)265#define IORING_ENTER_SQ_WAKEUP (1U << 1)
262#define IORING_ENTER_SQ_WAIT (1U << 2)266#define IORING_ENTER_SQ_WAIT (1U << 2)
263#define IORING_ENTER_EXT_ARG (1U << 3)267#define IORING_ENTER_EXT_ARG (1U << 3)
268#define IORING_ENTER_REGISTERED_RING (1U << 4)
264 269
265/*270/*
266 * Passed in for io_uring_setup(2). Copied back with updated info on success271 * Passed in for io_uring_setup(2). Copied back with updated info on success
@@ -325,6 +330,10 @@ enum { · 58 unmodified lines
325 /* set/get max number of io-wq workers */330 /* set/get max number of io-wq workers */
326 IORING_REGISTER_IOWQ_MAX_WORKERS = 19,331 IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
327 332
333 /* register/unregister io_uring fd with the ring */
334 IORING_REGISTER_RING_FDS = 20,
335 IORING_UNREGISTER_RING_FDS = 21,
336
328 /* this goes last */337 /* this goes last */
329 IORING_REGISTER_LAST338 IORING_REGISTER_LAST
330};339};