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
7171 __s32 splice_fd_in;
7272 __u32 file_index;
7373 struct {
74− __u16 notification_idx;
7574 __u16 addr_len;
75+ __u16 __pad3[1];
7676 };
7777 };
7878 union {
@@ -178,8 +178,7 @@ enum io_uring_op { · 99 unmodified lines
178178 IORING_OP_FALLOCATE,
179179 IORING_OP_OPENAT,
180180 IORING_OP_CLOSE,
181− IORING_OP_RSRC_UPDATE,
182− IORING_OP_FILES_UPDATE = IORING_OP_RSRC_UPDATE,
181+ IORING_OP_FILES_UPDATE,
183182 IORING_OP_STATX,
184183 IORING_OP_READ,
185184 IORING_OP_WRITE,
@@ -206,7 +205,7 @@ enum io_uring_op { · 20 unmodified lines
206205 IORING_OP_GETXATTR,
207206 IORING_OP_SOCKET,
208207 IORING_OP_URING_CMD,
209− IORING_OP_SENDZC_NOTIF,
208+ IORING_OP_SEND_ZC,
210209
211210 /* this goes last, obviously */
212211 IORING_OP_LAST,
@@ -228,7 +227,6 @@ enum io_uring_op { · 15 unmodified lines
228227 #define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
229228 #define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
230229 #define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
231−
232230 /*
233231 * sqe->splice_flags
234232 * extends splice(2) flags
@@ -281,29 +279,16 @@ enum io_uring_op { · 46 unmodified lines
281279 *
282280 * IORING_RECVSEND_FIXED_BUF Use registered buffers, the index is stored in
283281 * the buf_index field.
284− *
285− * IORING_RECVSEND_NOTIF_FLUSH Flush a notification after a successful
286− * successful. Only for zerocopy sends.
287282 */
288283 #define IORING_RECVSEND_POLL_FIRST (1U << 0)
289284 #define IORING_RECV_MULTISHOT (1U << 1)
290285 #define IORING_RECVSEND_FIXED_BUF (1U << 2)
291−#define IORING_RECVSEND_NOTIF_FLUSH (1U << 3)
292286
293287 /*
294288 * accept flags stored in sqe->ioprio
295289 */
296290 #define IORING_ACCEPT_MULTISHOT (1U << 0)
297291
298−
299−/*
300− * IORING_OP_RSRC_UPDATE flags
301− */
302−enum {
303− IORING_RSRC_UPDATE_FILES,
304− IORING_RSRC_UPDATE_NOTIF,
305−};
306−
307292 /*
308293 * IORING_OP_MSG_RING command types, stored in sqe->addr
309294 */
@@ -341,10 +326,13 @@ struct io_uring_cqe { · 31 unmodified lines
341326 * IORING_CQE_F_BUFFER If set, the upper 16 bits are the buffer ID
342327 * IORING_CQE_F_MORE If set, parent SQE will generate more CQE entries
343328 * 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.
344331 */
345332 #define IORING_CQE_F_BUFFER (1U << 0)
346333 #define IORING_CQE_F_MORE (1U << 1)
347334 #define IORING_CQE_F_SOCK_NONEMPTY (1U << 2)
335+#define IORING_CQE_F_NOTIF (1U << 3)
348336
349337 enum {
350338 IORING_CQE_BUFFER_SHIFT = 16,
@@ -485,10 +473,6 @@ enum { · 134 unmodified lines
485473 /* register a range of fixed file slots for automatic slot allocation */
486474 IORING_REGISTER_FILE_ALLOC_RANGE = 25,
487475
488− /* zerocopy notification API */
489− IORING_REGISTER_NOTIFIERS = 26,
490− IORING_UNREGISTER_NOTIFIERS = 27,
491−
492476 /* this goes last */
493477 IORING_REGISTER_LAST
494478 };

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