History

Merge tag 'io_uring-6.0-2022-09-02' of git://git.kernel.dk/linux-block

Pull io_uring fixes from Jens Axboe: - A single fix for over-eager retries for networking (Pavel) - Revert the notification slot support for zerocopy sends. It turns out that even after more than a year or development and testing, there's not full agreement on whether just using plain ordered notifications is Good Enough to avoid the complexity of using the notifications slots. Because of that, we decided that it's best left to a future final decision. We can always bring back this feature, but we can't really change it or remove it once we've released 6.0 with it enabled. The reverts leave the usual CQE notifications as the primary interface for knowing when data was sent, and when it was acked. (Pavel) * tag 'io_uring-6.0-2022-09-02' of git://git.kernel.dk/linux-block: selftests/net: return back io_uring zc send tests io_uring/net: simplify zerocopy send user API io_uring/notif: remove notif registration Revert "io_uring: rename IORING_OP_FILES_UPDATE" Revert "io_uring: add zc notification flush requests" selftests/net: temporarily disable io_uring zc test io_uring/net: fix overexcessive retries

Linus Torvalds committed 4 years ago

Commit cec53f42 parents 1551f8f 916d72c11 files · +99 −322Browse files

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

Unified · Split

include/uapi/linux/io_uring.h+6−22
@@ -71,8 +71,8 @@ struct io_uring_sqe { · 70 unmodified lines
71 __s32 splice_fd_in;71 __s32 splice_fd_in;
72 __u32 file_index;72 __u32 file_index;
73 struct {73 struct {
74 __u16 notification_idx;
75 __u16 addr_len;74 __u16 addr_len;
75 __u16 __pad3[1];
76 };76 };
77 };77 };
78 union {78 union {
@@ -178,8 +178,7 @@ enum io_uring_op { · 99 unmodified lines
178 IORING_OP_FALLOCATE,178 IORING_OP_FALLOCATE,
179 IORING_OP_OPENAT,179 IORING_OP_OPENAT,
180 IORING_OP_CLOSE,180 IORING_OP_CLOSE,
181 IORING_OP_RSRC_UPDATE,181 IORING_OP_FILES_UPDATE,
182 IORING_OP_FILES_UPDATE = IORING_OP_RSRC_UPDATE,
183 IORING_OP_STATX,182 IORING_OP_STATX,
184 IORING_OP_READ,183 IORING_OP_READ,
185 IORING_OP_WRITE,184 IORING_OP_WRITE,
@@ -206,7 +205,7 @@ enum io_uring_op { · 20 unmodified lines
206 IORING_OP_GETXATTR,205 IORING_OP_GETXATTR,
207 IORING_OP_SOCKET,206 IORING_OP_SOCKET,
208 IORING_OP_URING_CMD,207 IORING_OP_URING_CMD,
209 IORING_OP_SENDZC_NOTIF,208 IORING_OP_SEND_ZC,
210 209
211 /* this goes last, obviously */210 /* this goes last, obviously */
212 IORING_OP_LAST,211 IORING_OP_LAST,
@@ -228,7 +227,6 @@ enum io_uring_op { · 15 unmodified lines
228#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)227#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
229#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)228#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
230#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)229#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
231
232/*230/*
233 * sqe->splice_flags231 * sqe->splice_flags
234 * extends splice(2) flags232 * extends splice(2) flags
@@ -281,29 +279,16 @@ enum io_uring_op { · 46 unmodified lines
281 *279 *
282 * IORING_RECVSEND_FIXED_BUF Use registered buffers, the index is stored in280 * IORING_RECVSEND_FIXED_BUF Use registered buffers, the index is stored in
283 * the buf_index field.281 * the buf_index field.
284 *
285 * IORING_RECVSEND_NOTIF_FLUSH Flush a notification after a successful
286 * successful. Only for zerocopy sends.
287 */282 */
288#define IORING_RECVSEND_POLL_FIRST (1U << 0)283#define IORING_RECVSEND_POLL_FIRST (1U << 0)
289#define IORING_RECV_MULTISHOT (1U << 1)284#define IORING_RECV_MULTISHOT (1U << 1)
290#define IORING_RECVSEND_FIXED_BUF (1U << 2)285#define IORING_RECVSEND_FIXED_BUF (1U << 2)
291#define IORING_RECVSEND_NOTIF_FLUSH (1U << 3)
292 286
293/*287/*
294 * accept flags stored in sqe->ioprio288 * accept flags stored in sqe->ioprio
295 */289 */
296#define IORING_ACCEPT_MULTISHOT (1U << 0)290#define IORING_ACCEPT_MULTISHOT (1U << 0)
297 291
298
299/*
300 * IORING_OP_RSRC_UPDATE flags
301 */
302enum {
303 IORING_RSRC_UPDATE_FILES,
304 IORING_RSRC_UPDATE_NOTIF,
305};
306
307/*292/*
308 * IORING_OP_MSG_RING command types, stored in sqe->addr293 * IORING_OP_MSG_RING command types, stored in sqe->addr
309 */294 */
@@ -341,10 +326,13 @@ struct io_uring_cqe { · 31 unmodified lines
341 * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID326 * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID
342 * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries327 * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries
343 * IORING_CQE_F_SOCK_NONEMPTY If set, more data to read after socket recv328 * IORING_CQE_F_SOCK_NONEMPTY If set, more data to read after socket recv
329 * IORING_CQE_F_NOTIF Set for notification CQEs. Can be used to distinct
330 * them from sends.
344 */331 */
345#define IORING_CQE_F_BUFFER (1U << 0)332#define IORING_CQE_F_BUFFER (1U << 0)
346#define IORING_CQE_F_MORE (1U << 1)333#define IORING_CQE_F_MORE (1U << 1)
347#define IORING_CQE_F_SOCK_NONEMPTY (1U << 2)334#define IORING_CQE_F_SOCK_NONEMPTY (1U << 2)
335#define IORING_CQE_F_NOTIF (1U << 3)
348 336
349enum {337enum {
350 IORING_CQE_BUFFER_SHIFT = 16,338 IORING_CQE_BUFFER_SHIFT = 16,
@@ -485,10 +473,6 @@ enum { · 134 unmodified lines
485 /* register a range of fixed file slots for automatic slot allocation */473 /* register a range of fixed file slots for automatic slot allocation */
486 IORING_REGISTER_FILE_ALLOC_RANGE = 25,474 IORING_REGISTER_FILE_ALLOC_RANGE = 25,
487 475
488 /* zerocopy notification API */
489 IORING_REGISTER_NOTIFIERS = 26,
490 IORING_UNREGISTER_NOTIFIERS = 27,
491
492 /* this goes last */476 /* this goes last */
493 IORING_REGISTER_LAST477 IORING_REGISTER_LAST
494};478};

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t