From 1c9585e94cb7c2768493cc8577cc192066576f3f Mon Sep 17 00:00:00 2001 From: Joseph Qi Date: Tue, 20 Jun 2023 15:24:30 +0800 Subject: [PATCH 1/2] update to liburing-2.3 to support io_uring_passthrough Signed-off-by: Joseph Qi --- ...1001-Add-percpu-io-sq-thread-support.patch | 28 +- ...liburing-header-files-again-compatib.patch | 127 -------- ...-us-granularity-of-io_sq_thread_idle.patch | 33 +- ...-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch | 115 ++++--- ...de-liburing-barrier.h-Restore-clang-.patch | 40 --- ...st-for-sqpoll-sq_thread_idle_us-mode.patch | 38 +-- ...de-liburing-barrier.h-Use-C11-atomic.patch | 75 ----- ...ter-revert-change-to-only-enter-if-s.patch | 55 ---- ...ssthrough-skip-if-kernel-doesn-t-sup.patch | 57 ++++ ...ring.h-update-with-5.11-pending-copy.patch | 51 --- ...io_uring_passthrough-fix-iopoll-test.patch | 65 ++++ ...-Include-features-in-struct-io_uring.patch | 58 ---- ...ssthrough-cleanup-invalid-submission.patch | 33 ++ ...ing-anolis-Add-__sys_io_uring_enter2.patch | 53 --- ...ssthrough-skip-test-if-bit-sqe-cqe-s.patch | 51 +++ ...s-Add-wrapper-for-__io_uring_get_cqe.patch | 117 ------- ...ENTER_GETEVENTS_TIMEOUT-if-available.patch | 64 ---- ...e-SIG_IS_DATA-to-modified-kernel-API.patch | 78 ----- ...ng-anolis-Rename-SIG_IS_DATA-EXT_ARG.patch | 81 ----- ...timeout-new-test-for-timeout-feature.patch | 307 ------------------ ...to-define-test-files-devices-we-need.patch | 68 ---- ...-overflow-don-t-run-on-newer-kernels.patch | 70 ---- ...-IORING_ENTER_SQ_SUBMIT_ON_IDLE-to-s.patch | 33 -- 1020-io_uring.h-add-IORING_SETUP_SQE128.patch | 82 ----- 1021-setup-add-basic-support-for-SQE128.patch | 108 ------ ...-add-basic-IORING_SETUP_SQE128-tests.patch | 143 -------- ...ss-verbose-and-don-t-fail-on-older-k.patch | 30 -- ..._uring.h-support-IORING_OP_URING_CMD.patch | 25 -- ...up.2-document-IORING_SETUP_SQE128-fl.patch | 32 -- ...issing-fields-for-uring_cmd-in-struc.patch | 47 --- ...ORING_OP_URING_CMD-incompatible-issu.patch | 41 --- liburing-1.0.7.tar.bz2 | Bin 86339 -> 0 bytes liburing-2.3.tar.bz2 | Bin 0 -> 197929 bytes liburing-always-build-with-fPIC.patch | 16 - liburing.spec | 47 +-- 35 files changed, 322 insertions(+), 1946 deletions(-) rename 1001-liburing-anolis-Add-percpu-io-sq-thread-support.patch => 1001-Add-percpu-io-sq-thread-support.patch (73%) delete mode 100644 1002-liburing-anolis-Revert-Make-the-liburing-header-files-again-compatib.patch rename 1016-liburing-anolis-support-us-granularity-of-io_sq_thread_idle.patch => 1002-support-us-granularity-of-io_sq_thread_idle.patch (61%) rename 1017-liburing-anolis-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch => 1003-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch (46%) delete mode 100644 1003-liburing-anolis-Revert-src-include-liburing-barrier.h-Restore-clang-.patch rename 1019-liburing-anolis-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch => 1004-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch (69%) delete mode 100644 1004-liburing-anolis-Revert-src-include-liburing-barrier.h-Use-C11-atomic.patch delete mode 100644 1005-liburing-anolis-sq_ring_needs_enter-revert-change-to-only-enter-if-s.patch create mode 100644 1005-test-io_uring_passthrough-skip-if-kernel-doesn-t-sup.patch delete mode 100644 1006-liburing-anolis-io_uring.h-update-with-5.11-pending-copy.patch create mode 100644 1006-test-io_uring_passthrough-fix-iopoll-test.patch delete mode 100644 1007-liburing-anolis-Include-features-in-struct-io_uring.patch create mode 100644 1007-test-io_uring_passthrough-cleanup-invalid-submission.patch delete mode 100644 1008-liburing-anolis-Add-__sys_io_uring_enter2.patch create mode 100644 1008-test-io_uring_passthrough-skip-test-if-bit-sqe-cqe-s.patch delete mode 100644 1009-liburing-anolis-Add-wrapper-for-__io_uring_get_cqe.patch delete mode 100644 1010-liburing-anolis-Use-IORING_ENTER_GETEVENTS_TIMEOUT-if-available.patch delete mode 100644 1011-liburing-anolis-Update-SIG_IS_DATA-to-modified-kernel-API.patch delete mode 100644 1012-liburing-anolis-Rename-SIG_IS_DATA-EXT_ARG.patch delete mode 100644 1013-liburing-anolis-test-timeout-new-test-for-timeout-feature.patch delete mode 100644 1014-liburing-anolis-test-use-a-map-to-define-test-files-devices-we-need.patch delete mode 100644 1015-liburing-anolis-test-timeout-overflow-don-t-run-on-newer-kernels.patch delete mode 100644 1018-liburing-anolis-adjust-value-for-IORING_ENTER_SQ_SUBMIT_ON_IDLE-to-s.patch delete mode 100644 1020-io_uring.h-add-IORING_SETUP_SQE128.patch delete mode 100644 1021-setup-add-basic-support-for-SQE128.patch delete mode 100644 1022-test-nop-add-basic-IORING_SETUP_SQE128-tests.patch delete mode 100644 1023-test-nop-make-less-verbose-and-don-t-fail-on-older-k.patch delete mode 100644 1024-io_uring.h-support-IORING_OP_URING_CMD.patch delete mode 100644 1025-man-io_uring_setup.2-document-IORING_SETUP_SQE128-fl.patch delete mode 100644 1026-io_uring.h-Add-missing-fields-for-uring_cmd-in-struc.patch delete mode 100644 1027-io_uring.h-fix-IORING_OP_URING_CMD-incompatible-issu.patch delete mode 100644 liburing-1.0.7.tar.bz2 create mode 100644 liburing-2.3.tar.bz2 delete mode 100644 liburing-always-build-with-fPIC.patch diff --git a/1001-liburing-anolis-Add-percpu-io-sq-thread-support.patch b/1001-Add-percpu-io-sq-thread-support.patch similarity index 73% rename from 1001-liburing-anolis-Add-percpu-io-sq-thread-support.patch rename to 1001-Add-percpu-io-sq-thread-support.patch index 1ca7830..149c071 100644 --- a/1001-liburing-anolis-Add-percpu-io-sq-thread-support.patch +++ b/1001-Add-percpu-io-sq-thread-support.patch @@ -1,7 +1,7 @@ -From c629576a5f266eedf2efbf74211581c68217d67c Mon Sep 17 00:00:00 2001 +From cd0ee5df307beda0cc8a14af09ffdaafcd5e0e6a Mon Sep 17 00:00:00 2001 From: Xiaoguang Wang Date: Thu, 6 Aug 2020 14:23:01 +0800 -Subject: [PATCH] Add percpu io sq thread support +Subject: [PATCH 1/4] Add percpu io sq thread support Add a new IORING_SETUP_SQPOLL_PERCPU flag, this flag is only meaningful when IORING_SETUP_SQPOLL and IORING_SETUP_SQ_AFF are both specified, that @@ -17,12 +17,12 @@ Acked-by: Joseph Qi 2 files changed, 11 insertions(+) diff --git a/man/io_uring_setup.2 b/man/io_uring_setup.2 -index d48bb32..3788084 100644 +index cd69994..30a2306 100644 --- a/man/io_uring_setup.2 +++ b/man/io_uring_setup.2 -@@ -131,6 +131,15 @@ This flag is only meaningful when - .B IORING_SETUP_SQPOLL - is specified. +@@ -147,6 +147,15 @@ is specified. When cgroup setting + changes (typically in container environment), the bounded cpu set may be + changed as well. .TP +.B IORING_SETUP_SQPOLL_PERCPU +This flag is only meaningful when @@ -37,18 +37,18 @@ index d48bb32..3788084 100644 Create the completion queue with .IR "struct io_uring_params.cq_entries" diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 7843742..dbc3e4d 100644 +index a3e0920..d4a0d83 100644 --- a/src/include/liburing/io_uring.h +++ b/src/include/liburing/io_uring.h -@@ -94,6 +94,8 @@ enum { - #define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */ - #define IORING_SETUP_CLAMP (1U << 4) /* clamp SQ/CQ ring sizes */ - #define IORING_SETUP_ATTACH_WQ (1U << 5) /* attach to existing wq */ +@@ -166,6 +166,8 @@ enum { + * Only one task is allowed to submit requests + */ + #define IORING_SETUP_SINGLE_ISSUER (1U << 12) +/* use percpu SQ poll thread */ +#define IORING_SETUP_SQPOLL_PERCPU (1U << 31) - enum { - IORING_OP_NOP, + /* + * Defer running task work to get events. -- -2.17.2 +2.31.1 diff --git a/1002-liburing-anolis-Revert-Make-the-liburing-header-files-again-compatib.patch b/1002-liburing-anolis-Revert-Make-the-liburing-header-files-again-compatib.patch deleted file mode 100644 index a997e85..0000000 --- a/1002-liburing-anolis-Revert-Make-the-liburing-header-files-again-compatib.patch +++ /dev/null @@ -1,127 +0,0 @@ -From d88bcf0e719c380d645d014984ec7e363163faa0 Mon Sep 17 00:00:00 2001 -From: Hao Xu -Date: Thu, 12 Nov 2020 19:22:12 +0800 -Subject: [PATCH 1/3] Revert "Make the liburing header files again compatible - with C++" - -This reverts commit 3d74c677c45eccf36b92f7ad4b3317adc1ed06bb. ---- - src/include/liburing.h | 8 ++++---- - src/include/liburing/barrier.h | 37 ++----------------------------------- - src/include/liburing/io_uring.h | 8 -------- - 3 files changed, 6 insertions(+), 47 deletions(-) - -diff --git a/src/include/liburing.h b/src/include/liburing.h -index 0505a4f50367..92e5018951d4 100644 ---- a/src/include/liburing.h -+++ b/src/include/liburing.h -@@ -2,6 +2,10 @@ - #ifndef LIB_URING_H - #define LIB_URING_H - -+#ifdef __cplusplus -+extern "C" { -+#endif -+ - #include - #include - #include -@@ -15,10 +19,6 @@ - #include "liburing/io_uring.h" - #include "liburing/barrier.h" - --#ifdef __cplusplus --extern "C" { --#endif -- - /* - * Library interface to io_uring - */ -diff --git a/src/include/liburing/barrier.h b/src/include/liburing/barrier.h -index a4a59fb499d6..57324348466b 100644 ---- a/src/include/liburing/barrier.h -+++ b/src/include/liburing/barrier.h -@@ -2,6 +2,8 @@ - #ifndef LIBURING_BARRIER_H - #define LIBURING_BARRIER_H - -+#include -+ - /* - From the kernel documentation file refcount-vs-atomic.rst: - -@@ -21,40 +23,6 @@ after the acquire operation executes. This is implemented using - :c:func:`smp_acquire__after_ctrl_dep`. - */ - --#ifdef __cplusplus --#include -- --template --static inline void IO_URING_WRITE_ONCE(T &var, T val) --{ -- std::atomic_store_explicit(reinterpret_cast *>(&var), -- val, std::memory_order_relaxed); --} --template --static inline T IO_URING_READ_ONCE(const T &var) --{ -- return std::atomic_load_explicit( -- reinterpret_cast *>(&var), -- std::memory_order_relaxed); --} -- --template --static inline void io_uring_smp_store_release(T *p, T v) --{ -- std::atomic_store_explicit(reinterpret_cast *>(p), v, -- std::memory_order_release); --} -- --template --static inline T io_uring_smp_load_acquire(const T *p) --{ -- return std::atomic_load_explicit( -- reinterpret_cast *>(p), -- std::memory_order_acquire); --} --#else --#include -- - #define IO_URING_WRITE_ONCE(var, val) \ - atomic_store_explicit((_Atomic typeof(var) *)&(var), \ - (val), memory_order_relaxed) -@@ -68,6 +36,5 @@ static inline T io_uring_smp_load_acquire(const T *p) - #define io_uring_smp_load_acquire(p) \ - atomic_load_explicit((_Atomic typeof(*(p)) *)(p), \ - memory_order_acquire) --#endif - - #endif /* defined(LIBURING_BARRIER_H) */ -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index d39b45fddb22..d65fde732518 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -11,10 +11,6 @@ - #include - #include - --#ifdef __cplusplus --extern "C" { --#endif -- - /* - * IO submission data structure (Submission Queue Entry) - */ -@@ -294,8 +290,4 @@ struct io_uring_probe { - struct io_uring_probe_op ops[0]; - }; - --#ifdef __cplusplus --} --#endif -- - #endif --- -1.8.3.1 - diff --git a/1016-liburing-anolis-support-us-granularity-of-io_sq_thread_idle.patch b/1002-support-us-granularity-of-io_sq_thread_idle.patch similarity index 61% rename from 1016-liburing-anolis-support-us-granularity-of-io_sq_thread_idle.patch rename to 1002-support-us-granularity-of-io_sq_thread_idle.patch index b55d0cc..6f6f85c 100644 --- a/1016-liburing-anolis-support-us-granularity-of-io_sq_thread_idle.patch +++ b/1002-support-us-granularity-of-io_sq_thread_idle.patch @@ -1,22 +1,22 @@ -From 65ac402fb0feb4ee74d71317f04c1b4422d78665 Mon Sep 17 00:00:00 2001 +From 5c31734118432639f7758d4671f1f05348914d63 Mon Sep 17 00:00:00 2001 From: Hao Xu Date: Mon, 10 May 2021 11:34:29 +0800 -Subject: [PATCH] support us granularity of io_sq_thread_idle +Subject: [PATCH 2/4] support us granularity of io_sq_thread_idle add flag IORING_SETUP_IDLE_US to support microsecond granularity io_sq_thread_idle. Signed-off-by: Hao Xu --- - man/io_uring_setup.2 | 9 ++++++++- + man/io_uring_setup.2 | 8 +++++++- src/include/liburing/io_uring.h | 1 + - 2 files changed, 9 insertions(+), 1 deletion(-) + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/man/io_uring_setup.2 b/man/io_uring_setup.2 -index 8c71e200d8b7..a2a9072423de 100644 +index 30a2306..082507c 100644 --- a/man/io_uring_setup.2 +++ b/man/io_uring_setup.2 -@@ -80,7 +80,9 @@ doing a single system call. +@@ -83,7 +83,9 @@ doing a single system call. If the kernel thread is idle for more than .I sq_thread_idle @@ -27,11 +27,10 @@ index 8c71e200d8b7..a2a9072423de 100644 .B IORING_SQ_NEED_WAKEUP bit in the .I flags -@@ -146,6 +148,11 @@ Create the completion queue with - entries. The value must be greater than - .IR entries , - and may be rounded up to the next power-of-two. -+.TP +@@ -287,6 +289,10 @@ Note that if this flag is set then it is the application's responsibility to per + trigger work (for example via any of the CQE waiting functions) or else completions may + not be delivered. + Available since 6.1. +.B IORING_SETUP_IDLE_US +If this flag is set, the unit of +.I sq_thread_idle @@ -40,17 +39,17 @@ index 8c71e200d8b7..a2a9072423de 100644 If no flags are specified, the io_uring instance is setup for interrupt driven I/O. I/O may be submitted using diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 05d58cebcfcc..8b412fb21567 100644 +index d4a0d83..8291de7 100644 --- a/src/include/liburing/io_uring.h +++ b/src/include/liburing/io_uring.h -@@ -95,6 +95,7 @@ enum { - #define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */ - #define IORING_SETUP_CLAMP (1U << 4) /* clamp SQ/CQ ring sizes */ - #define IORING_SETUP_ATTACH_WQ (1U << 5) /* attach to existing wq */ +@@ -166,6 +166,7 @@ enum { + * Only one task is allowed to submit requests + */ + #define IORING_SETUP_SINGLE_ISSUER (1U << 12) +#define IORING_SETUP_IDLE_US (1U << 30) /* unit of thread_idle is microsecond */ /* use percpu SQ poll thread */ #define IORING_SETUP_SQPOLL_PERCPU (1U << 31) -- -1.8.3.1 +2.31.1 diff --git a/1017-liburing-anolis-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch b/1003-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch similarity index 46% rename from 1017-liburing-anolis-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch rename to 1003-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch index d0853d5..3056111 100644 --- a/1017-liburing-anolis-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch +++ b/1003-add-IORING_ENTER_SQ_SUBMIT_ON_IDLE-flag.patch @@ -1,106 +1,97 @@ -From edc1b76b8d8a81b26e9a8399f91f73b066b112bf Mon Sep 17 00:00:00 2001 -From: Hao Xu -Date: Mon, 10 May 2021 14:39:02 +0800 -Subject: [PATCH] add IORING_ENTER_SQ_SUBMIT_ON_IDLE flag +From c6488e58ba2ba3b8a49e728143dac428b55f591a Mon Sep 17 00:00:00 2001 +From: Ziyang Zhang +Date: Thu, 1 Dec 2022 10:43:39 +0800 +Subject: [PATCH 3/4] add IORING_ENTER_SQ_SUBMIT_ON_IDLE flag add this flag to allow the original task to submit some sqes to reduce sqthread wakeup latency. Signed-off-by: Hao Xu +[Ziyang Zhang: adjust value of IORING_ENTER_SQ_SUBMIT_ON_IDLE] +Signed-off-by: Ziyang Zhang --- - debian/liburing1.symbols | 6 ++++++ src/include/liburing.h | 2 ++ src/include/liburing/io_uring.h | 1 + - src/liburing.map | 3 +++ - src/queue.c | 29 ++++++++++++++++++++++------- - 5 files changed, 34 insertions(+), 7 deletions(-) + src/liburing.map | 2 ++ + src/queue.c | 30 ++++++++++++++++++++++-------- + 4 files changed, 27 insertions(+), 8 deletions(-) -diff --git a/debian/liburing1.symbols b/debian/liburing1.symbols -index cc4d504895d3..dccce71d0e11 100644 ---- a/debian/liburing1.symbols -+++ b/debian/liburing1.symbols -@@ -26,3 +26,9 @@ liburing.so.1 liburing1 #MINVER# - io_uring_register_probe@LIBURING_0.4 0.4-1 - io_uring_ring_dontfork@LIBURING_0.4 0.4-1 - io_uring_unregister_personality@LIBURING_0.4 0.4-1 -+ (symver)LIBURING_0.5 0.5-1 -+ (symver)LIBURING_0.6 0.6-1 -+ (symver)LIBURING_0.7 0.7-8 -+ io_uring_submit_on_idle@LIBURING_0.7 0.7-8 -+ io_uring_submit_on_idle_and_wait@LIBURING_0.7 0.7-8 -+ diff --git a/src/include/liburing.h b/src/include/liburing.h -index 9fa5bc92986d..8a1dc7c6591f 100644 +index 12a703f..531bf2e 100644 --- a/src/include/liburing.h +++ b/src/include/liburing.h -@@ -97,7 +97,9 @@ extern int io_uring_wait_cqes(struct io_uring *ring, - extern int io_uring_wait_cqe_timeout(struct io_uring *ring, - struct io_uring_cqe **cqe_ptr, struct __kernel_timespec *ts); - extern int io_uring_submit(struct io_uring *ring); -+extern int io_uring_submit_on_idle(struct io_uring *ring); - extern int io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr); -+extern int io_uring_submit_on_idle_and_wait(struct io_uring *ring, unsigned wait_nr); - extern struct io_uring_sqe *io_uring_get_sqe(struct io_uring *ring); +@@ -176,12 +176,14 @@ int io_uring_wait_cqe_timeout(struct io_uring *ring, + struct io_uring_cqe **cqe_ptr, + struct __kernel_timespec *ts); + int io_uring_submit(struct io_uring *ring); ++int io_uring_submit_on_idle(struct io_uring *ring); + int io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr); + int io_uring_submit_and_wait_timeout(struct io_uring *ring, + struct io_uring_cqe **cqe_ptr, + unsigned wait_nr, + struct __kernel_timespec *ts, + sigset_t *sigmask); ++int io_uring_submit_on_idle_and_wait(struct io_uring *ring, unsigned wait_nr); - extern int io_uring_register_buffers(struct io_uring *ring, + int io_uring_register_buffers(struct io_uring *ring, const struct iovec *iovecs, + unsigned nr_iovecs); diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 8b412fb21567..cd1c68a753b9 100644 +index 8291de7..4b474e3 100644 --- a/src/include/liburing/io_uring.h +++ b/src/include/liburing/io_uring.h -@@ -229,6 +229,7 @@ struct io_cqring_offsets { - #define IORING_ENTER_GETEVENTS (1U << 0) - #define IORING_ENTER_SQ_WAKEUP (1U << 1) - #define IORING_ENTER_EXT_ARG (1U << 3) -+#define IORING_ENTER_SQ_SUBMIT_ON_IDLE (1U << 4) +@@ -423,6 +423,7 @@ struct io_cqring_offsets { + #define IORING_ENTER_SQ_WAIT (1U << 2) + #define IORING_ENTER_EXT_ARG (1U << 3) + #define IORING_ENTER_REGISTERED_RING (1U << 4) ++#define IORING_ENTER_SQ_SUBMIT_ON_IDLE (1U << 31) /* * Passed in for io_uring_setup(2). Copied back with updated info on success diff --git a/src/liburing.map b/src/liburing.map -index 38bd558a5a50..8c2ccfaca8c2 100644 +index 06c64f8..e8124a2 100644 --- a/src/liburing.map +++ b/src/liburing.map -@@ -56,4 +56,7 @@ LIBURING_0.6 { - } LIBURING_0.5; - - LIBURING_0.7 { -+ global: +@@ -66,4 +66,6 @@ LIBURING_2.3 { + io_uring_register; + io_uring_get_events; + io_uring_submit_and_get_events; + io_uring_submit_on_idle; + io_uring_submit_on_idle_and_wait; - } LIBURING_0.6; + } LIBURING_2.2; diff --git a/src/queue.c b/src/queue.c -index 2662e671fb34..d8ee64f25601 100644 +index c06bcc3..563c7c3 100644 --- a/src/queue.c +++ b/src/queue.c -@@ -304,12 +304,12 @@ int io_uring_wait_cqe_timeout(struct io_uring *ring, +@@ -366,13 +366,13 @@ int io_uring_wait_cqe_timeout(struct io_uring *ring, * Returns number of sqes submitted */ static int __io_uring_submit(struct io_uring *ring, unsigned submitted, -- unsigned wait_nr) -+ unsigned wait_nr, unsigned enter_flags) +- unsigned wait_nr, bool getevents) ++ unsigned wait_nr, bool getevents, unsigned enter_flags) { + bool cq_needs_enter = getevents || wait_nr || cq_ring_needs_enter(ring); - unsigned flags; + unsigned flags = 0; int ret; - flags = 0; + flags |= enter_flags; - if (sq_ring_needs_enter(ring, &flags) || wait_nr) { - if (wait_nr || (ring->flags & IORING_SETUP_IOPOLL)) + if (sq_ring_needs_enter(ring, submitted, &flags) || cq_needs_enter) { + if (cq_needs_enter) flags |= IORING_ENTER_GETEVENTS; -@@ -324,9 +324,10 @@ static int __io_uring_submit(struct io_uring *ring, unsigned submitted, +@@ -387,9 +387,9 @@ static int __io_uring_submit(struct io_uring *ring, unsigned submitted, return ret; } -static int __io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr) +static int __io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr, unsigned enter_flags) { -- return __io_uring_submit(ring, __io_uring_flush_sq(ring), wait_nr); -+ return __io_uring_submit(ring, __io_uring_flush_sq(ring), wait_nr, -+ enter_flags); +- return __io_uring_submit(ring, __io_uring_flush_sq(ring), wait_nr, false); ++ return __io_uring_submit(ring, __io_uring_flush_sq(ring), wait_nr, false, enter_flags); } /* -@@ -336,7 +337,16 @@ static int __io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr) +@@ -399,7 +399,16 @@ static int __io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr) */ int io_uring_submit(struct io_uring *ring) { @@ -118,7 +109,7 @@ index 2662e671fb34..d8ee64f25601 100644 } /* -@@ -346,7 +356,12 @@ int io_uring_submit(struct io_uring *ring) +@@ -409,12 +418,17 @@ int io_uring_submit(struct io_uring *ring) */ int io_uring_submit_and_wait(struct io_uring *ring, unsigned wait_nr) { @@ -131,7 +122,13 @@ index 2662e671fb34..d8ee64f25601 100644 + return __io_uring_submit_and_wait(ring, wait_nr, IORING_ENTER_SQ_SUBMIT_ON_IDLE); } - static inline struct io_uring_sqe * + int io_uring_submit_and_get_events(struct io_uring *ring) + { +- return __io_uring_submit(ring, __io_uring_flush_sq(ring), 0, true); ++ return __io_uring_submit(ring, __io_uring_flush_sq(ring), 0, true, 0); + } + + #ifdef LIBURING_INTERNAL -- -1.8.3.1 +2.31.1 diff --git a/1003-liburing-anolis-Revert-src-include-liburing-barrier.h-Restore-clang-.patch b/1003-liburing-anolis-Revert-src-include-liburing-barrier.h-Restore-clang-.patch deleted file mode 100644 index 52053ac..0000000 --- a/1003-liburing-anolis-Revert-src-include-liburing-barrier.h-Restore-clang-.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0b51d4b2046f6c16179fbaff6c56c90c4985a0cb Mon Sep 17 00:00:00 2001 -From: Hao Xu -Date: Thu, 12 Nov 2020 19:25:50 +0800 -Subject: [PATCH 2/3] Revert "src/include/liburing/barrier.h: Restore clang - compatibility" - -This reverts commit 56ff6c964c5078d76cb3c2da1a62ad671749fd42. ---- - src/include/liburing/barrier.h | 12 ++++-------- - 1 file changed, 4 insertions(+), 8 deletions(-) - -diff --git a/src/include/liburing/barrier.h b/src/include/liburing/barrier.h -index 57324348466b..c8aa4210371c 100644 ---- a/src/include/liburing/barrier.h -+++ b/src/include/liburing/barrier.h -@@ -24,17 +24,13 @@ after the acquire operation executes. This is implemented using - */ - - #define IO_URING_WRITE_ONCE(var, val) \ -- atomic_store_explicit((_Atomic typeof(var) *)&(var), \ -- (val), memory_order_relaxed) -+ atomic_store_explicit(&(var), (val), memory_order_relaxed) - #define IO_URING_READ_ONCE(var) \ -- atomic_load_explicit((_Atomic typeof(var) *)&(var), \ -- memory_order_relaxed) -+ atomic_load_explicit(&(var), memory_order_relaxed) - - #define io_uring_smp_store_release(p, v) \ -- atomic_store_explicit((_Atomic typeof(*(p)) *)(p), (v), \ -- memory_order_release) -+ atomic_store_explicit((p), (v), memory_order_release) - #define io_uring_smp_load_acquire(p) \ -- atomic_load_explicit((_Atomic typeof(*(p)) *)(p), \ -- memory_order_acquire) -+ atomic_load_explicit((p), memory_order_acquire) - - #endif /* defined(LIBURING_BARRIER_H) */ --- -1.8.3.1 - diff --git a/1019-liburing-anolis-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch b/1004-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch similarity index 69% rename from 1019-liburing-anolis-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch rename to 1004-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch index 48ac945..0add38e 100644 --- a/1019-liburing-anolis-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch +++ b/1004-Add-a-test-for-sqpoll-sq_thread_idle_us-mode.patch @@ -1,38 +1,28 @@ -From de26d9e8009058afef94d46b6a7c1751fadae894 Mon Sep 17 00:00:00 2001 +From fd1a90edb0c193db13f42cadeb588bc3d73ab18c Mon Sep 17 00:00:00 2001 From: Hao Xu -Date: Thu, 18 Nov 2021 15:51:54 +0800 -Subject: [PATCH 2/2] Add a test for sqpoll sq_thread_idle_us mode +Date: Tue, 6 Dec 2022 15:47:57 +0800 +Subject: [PATCH 4/4] Add a test for sqpoll sq_thread_idle_us mode Reviewed-by: Xiaoguang Wang Signed-off-by: Hao Xu --- - test/Makefile | 4 +- + test/Makefile | 1 + test/sqpoll-idle-us.c | 98 +++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 100 insertions(+), 2 deletions(-) + 2 files changed, 99 insertions(+) create mode 100644 test/sqpoll-idle-us.c diff --git a/test/Makefile b/test/Makefile -index 0720dcd..b58858b 100644 +index e14eb51..6efac71 100644 --- a/test/Makefile +++ b/test/Makefile -@@ -26,7 +26,7 @@ all_targets += poll poll-cancel ring-leak fsync io_uring_setup io_uring_register - send_recv eventfd-ring across-fork sq-poll-kthread splice \ - lfs-openat lfs-openat-write iopoll d4ae271dfaae-test \ - eventfd-disable close-opath ce593a6c480a-test cq-overflow-peek \ -- timeout-new -+ timeout-new sqpoll-idle-us - - include ../Makefile.quiet - -@@ -67,7 +67,7 @@ test_srcs := poll.c poll-cancel.c ring-leak.c fsync.c io_uring_setup.c \ - personality.c eventfd.c eventfd-ring.c across-fork.c sq-poll-kthread.c \ - splice.c lfs-openat.c lfs-openat-write.c iopoll.c d4ae271dfaae-test.c \ - eventfd-disable.c close-opath.c ce593a6c480a-test.c cq-overflow-peek.c \ -- timeout-new.c -+ timeout-new.c sqpoll-idle-us.c - - ifdef CONFIG_HAVE_STATX - test_srcs += statx.c +@@ -158,6 +158,7 @@ test_srcs := \ + sqpoll-disable-exit.c \ + sq-poll-dup.c \ + sqpoll-exit-hang.c \ ++ sqpoll-idle-us.c \ + sq-poll-kthread.c \ + sq-poll-share.c \ + sqpoll-sleep.c \ diff --git a/test/sqpoll-idle-us.c b/test/sqpoll-idle-us.c new file mode 100644 index 0000000..957ea7c diff --git a/1004-liburing-anolis-Revert-src-include-liburing-barrier.h-Use-C11-atomic.patch b/1004-liburing-anolis-Revert-src-include-liburing-barrier.h-Use-C11-atomic.patch deleted file mode 100644 index cb41bed..0000000 --- a/1004-liburing-anolis-Revert-src-include-liburing-barrier.h-Use-C11-atomic.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 1fc7bb3aecf344847d13d0c3c25e1b98d1687219 Mon Sep 17 00:00:00 2001 -From: Hao Xu -Date: Thu, 12 Nov 2020 19:26:04 +0800 -Subject: [PATCH 3/3] Revert "src/include/liburing/barrier.h: Use C11 atomics" - -This reverts commit b9c0bf79aa879727f55f4fe7333dd41bebd0acd4. ---- - src/include/liburing/barrier.h | 44 ++++++++++++++++++++++++++++++++---------- - 1 file changed, 34 insertions(+), 10 deletions(-) - -diff --git a/src/include/liburing/barrier.h b/src/include/liburing/barrier.h -index c8aa4210371c..ad69506bb248 100644 ---- a/src/include/liburing/barrier.h -+++ b/src/include/liburing/barrier.h -@@ -2,8 +2,6 @@ - #ifndef LIBURING_BARRIER_H - #define LIBURING_BARRIER_H - --#include -- - /* - From the kernel documentation file refcount-vs-atomic.rst: - -@@ -23,14 +21,40 @@ after the acquire operation executes. This is implemented using - :c:func:`smp_acquire__after_ctrl_dep`. - */ - --#define IO_URING_WRITE_ONCE(var, val) \ -- atomic_store_explicit(&(var), (val), memory_order_relaxed) --#define IO_URING_READ_ONCE(var) \ -- atomic_load_explicit(&(var), memory_order_relaxed) -+/* From tools/include/linux/compiler.h */ -+/* Optimization barrier */ -+/* The "volatile" is due to gcc bugs */ -+#define io_uring_barrier() __asm__ __volatile__("": : :"memory") -+ -+/* From tools/virtio/linux/compiler.h */ -+#define IO_URING_WRITE_ONCE(var, val) \ -+ (*((volatile __typeof(val) *)(&(var))) = (val)) -+#define IO_URING_READ_ONCE(var) (*((volatile __typeof(var) *)(&(var)))) -+ - --#define io_uring_smp_store_release(p, v) \ -- atomic_store_explicit((p), (v), memory_order_release) --#define io_uring_smp_load_acquire(p) \ -- atomic_load_explicit((p), memory_order_acquire) -+#if defined(__x86_64__) || defined(__i386__) -+/* Adapted from arch/x86/include/asm/barrier.h */ -+#define io_uring_smp_store_release(p, v) \ -+do { \ -+ io_uring_barrier(); \ -+ IO_URING_WRITE_ONCE(*(p), (v)); \ -+} while (0) -+ -+#define io_uring_smp_load_acquire(p) \ -+({ \ -+ __typeof(*p) ___p1 = IO_URING_READ_ONCE(*(p)); \ -+ io_uring_barrier(); \ -+ ___p1; \ -+}) -+ -+#else /* defined(__x86_64__) || defined(__i386__) */ -+/* -+ * Add arch appropriate definitions. Use built-in atomic operations for -+ * archs we don't have support for. -+ */ -+#define io_uring_smp_store_release(p, v) \ -+ __atomic_store_n(p, v, __ATOMIC_RELEASE) -+#define io_uring_smp_load_acquire(p) __atomic_load_n(p, __ATOMIC_ACQUIRE) -+#endif /* defined(__x86_64__) || defined(__i386__) */ - - #endif /* defined(LIBURING_BARRIER_H) */ --- -1.8.3.1 - diff --git a/1005-liburing-anolis-sq_ring_needs_enter-revert-change-to-only-enter-if-s.patch b/1005-liburing-anolis-sq_ring_needs_enter-revert-change-to-only-enter-if-s.patch deleted file mode 100644 index e0d64f3..0000000 --- a/1005-liburing-anolis-sq_ring_needs_enter-revert-change-to-only-enter-if-s.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 07b476fc25e29dda33b83e540d054bd95b82bb1e Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Thu, 20 Aug 2020 21:40:16 -0600 -Subject: [PATCH 1/8] sq_ring_needs_enter: revert change to only enter if - submit != 0 - -This reverts commit f0c5c54945ae92a00cdbb43bdf3abaeab6bd3a23. - -Glauber reports a regressions for his polled setup with this change. -As it's purely speculative, just revert it. - -Reported-by: Glauber Costa -Signed-off-by: Jens Axboe ---- - src/queue.c | 9 ++++----- - 1 file changed, 4 insertions(+), 5 deletions(-) - -diff --git a/src/queue.c b/src/queue.c -index be80d7a2c760..bdb473c1ba19 100644 ---- a/src/queue.c -+++ b/src/queue.c -@@ -19,10 +19,9 @@ - * or if IORING_SQ_NEED_WAKEUP is set, so submit thread must be explicitly - * awakened. For the latter case, we set the thread wakeup flag. - */ --static inline bool sq_ring_needs_enter(struct io_uring *ring, -- unsigned submitted, unsigned *flags) -+static inline bool sq_ring_needs_enter(struct io_uring *ring, unsigned *flags) - { -- if (!(ring->flags & IORING_SETUP_SQPOLL) && submitted) -+ if (!(ring->flags & IORING_SETUP_SQPOLL)) - return true; - if (IO_URING_READ_ONCE(*ring->sq.kflags) & IORING_SQ_NEED_WAKEUP) { - *flags |= IORING_ENTER_SQ_WAKEUP; -@@ -90,7 +89,7 @@ int __io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - if (wait_nr || cq_overflow_flush) - flags = IORING_ENTER_GETEVENTS; - if (submit) -- sq_ring_needs_enter(ring, submit, &flags); -+ sq_ring_needs_enter(ring, &flags); - if (wait_nr || submit || cq_overflow_flush) - ret = __sys_io_uring_enter(ring->ring_fd, submit, - wait_nr, flags, sigmask); -@@ -256,7 +255,7 @@ static int __io_uring_submit(struct io_uring *ring, unsigned submitted, - int ret; - - flags = 0; -- if (sq_ring_needs_enter(ring, submitted, &flags) || wait_nr) { -+ if (sq_ring_needs_enter(ring, &flags) || wait_nr) { - if (wait_nr || (ring->flags & IORING_SETUP_IOPOLL)) - flags |= IORING_ENTER_GETEVENTS; - --- -1.8.3.1 - diff --git a/1005-test-io_uring_passthrough-skip-if-kernel-doesn-t-sup.patch b/1005-test-io_uring_passthrough-skip-if-kernel-doesn-t-sup.patch new file mode 100644 index 0000000..f77be96 --- /dev/null +++ b/1005-test-io_uring_passthrough-skip-if-kernel-doesn-t-sup.patch @@ -0,0 +1,57 @@ +From 626d52adaffc193597ff0294be50611540a6233c Mon Sep 17 00:00:00 2001 +From: Jens Axboe +Date: Wed, 30 Nov 2022 20:37:12 -0700 +Subject: [PATCH 1/4] test/io_uring_passthrough: skip if kernel doesn't support + passthrough + +If we get -EOPNOTSUPP, just skip the test at our earliest convenience. + +Signed-off-by: Jens Axboe +Signed-off-by: Joseph Qi +--- + test/io_uring_passthrough.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/test/io_uring_passthrough.c b/test/io_uring_passthrough.c +index ee9ab87..2f24364 100644 +--- a/test/io_uring_passthrough.c ++++ b/test/io_uring_passthrough.c +@@ -18,6 +18,7 @@ + #define BUFFERS (FILE_SIZE / BS) + + static struct iovec *vecs; ++static int no_pt; + + /* + * Each offset in the file has the ((test_case / 2) * FILE_SIZE) +@@ -205,6 +206,10 @@ static int __test_io(const char *file, struct io_uring *ring, int tc, int read, + goto err; + } + if (cqe->res != 0) { ++ if (!no_pt) { ++ no_pt = 1; ++ goto skip; ++ } + fprintf(stderr, "cqe res %d, wanted 0\n", cqe->res); + goto err; + } +@@ -234,6 +239,7 @@ static int __test_io(const char *file, struct io_uring *ring, int tc, int read, + } + } + ++skip: + close(fd); + return 0; + err: +@@ -431,6 +437,8 @@ int main(int argc, char *argv[]) + read, sqthread, fixed, nonvec); + goto err; + } ++ if (no_pt) ++ return T_EXIT_SKIP; + } + + ret = test_io_uring_submit_enters(fname); +-- +2.24.4 + diff --git a/1006-liburing-anolis-io_uring.h-update-with-5.11-pending-copy.patch b/1006-liburing-anolis-io_uring.h-update-with-5.11-pending-copy.patch deleted file mode 100644 index 418f342..0000000 --- a/1006-liburing-anolis-io_uring.h-update-with-5.11-pending-copy.patch +++ /dev/null @@ -1,51 +0,0 @@ -From a3680c5479fb84ebc224f4626c361ec1293c1f31 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 4 Nov 2020 11:25:55 -0700 -Subject: [PATCH 2/8] io_uring.h: update with 5.11-pending copy - -Backport Notes - -manully backport struct io_uring_getevents_arg since the patch -0002-Revert-Make-the-liburing-header-files-again-compatib.patch -stoped the auto backporting - -Signed-off-by: Jens Axboe ---- - src/include/liburing/io_uring.h | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index c55878e0a200..7f7701c86eb4 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -226,6 +226,7 @@ struct io_cqring_offsets { - */ - #define IORING_ENTER_GETEVENTS (1U << 0) - #define IORING_ENTER_SQ_WAKEUP (1U << 1) -+#define IORING_ENTER_GETEVENTS_TIMEOUT (1U << 3) - - /* - * Passed in for io_uring_setup(2). Copied back with updated info on success -@@ -253,6 +254,7 @@ struct io_uring_params { - #define IORING_FEAT_CUR_PERSONALITY (1U << 4) - #define IORING_FEAT_FAST_POLL (1U << 5) - #define IORING_FEAT_POLL_32BITS (1U << 6) -+#define IORING_FEAT_GETEVENTS_TIMEOUT (1U << 8) - - /* - * io_uring_register(2) opcodes and arguments -@@ -292,4 +294,11 @@ struct io_uring_probe { - struct io_uring_probe_op ops[0]; - }; - -+struct io_uring_getevents_arg { -+ __u64 sigmask; -+ __u32 sigmask_sz; -+ __u32 pad; -+ __u64 ts; -+}; -+ - #endif --- -1.8.3.1 - diff --git a/1006-test-io_uring_passthrough-fix-iopoll-test.patch b/1006-test-io_uring_passthrough-fix-iopoll-test.patch new file mode 100644 index 0000000..18944ce --- /dev/null +++ b/1006-test-io_uring_passthrough-fix-iopoll-test.patch @@ -0,0 +1,65 @@ +From 49425e0b44cf7b46f022ddabee73a0630cb1f9bc Mon Sep 17 00:00:00 2001 +From: Kanchan Joshi +Date: Tue, 6 Dec 2022 17:48:30 +0530 +Subject: [PATCH 2/4] test/io_uring_passthrough: fix iopoll test + +iopoll test is broken as it does not initialize the command/sqe properly +before submission. +Add the necessary initialization to set this right. + +Signed-off-by: Kanchan Joshi +Link: https://lore.kernel.org/r/20221206121831.5528-2-joshi.k@samsung.com +Signed-off-by: Jens Axboe +Signed-off-by: Joseph Qi +--- + test/io_uring_passthrough.c | 24 +++++++++++++++++++++--- + 1 file changed, 21 insertions(+), 3 deletions(-) + +diff --git a/test/io_uring_passthrough.c b/test/io_uring_passthrough.c +index 2f24364..933c137 100644 +--- a/test/io_uring_passthrough.c ++++ b/test/io_uring_passthrough.c +@@ -352,6 +352,8 @@ static int test_io_uring_submit_enters(const char *file) + int fd, i, ret, ring_flags, open_flags; + unsigned head; + struct io_uring_cqe *cqe; ++ struct nvme_uring_cmd *cmd; ++ struct io_uring_sqe *sqe; + + ring_flags = IORING_SETUP_IOPOLL; + ring_flags |= IORING_SETUP_SQE128; +@@ -371,12 +373,28 @@ static int test_io_uring_submit_enters(const char *file) + } + + for (i = 0; i < BUFFERS; i++) { +- struct io_uring_sqe *sqe; + off_t offset = BS * (rand() % BUFFERS); ++ __u64 slba; ++ __u32 nlb; + + sqe = io_uring_get_sqe(&ring); +- io_uring_prep_writev(sqe, fd, &vecs[i], 1, offset); +- sqe->user_data = 1; ++ io_uring_prep_readv(sqe, fd, &vecs[i], 1, offset); ++ sqe->user_data = i; ++ sqe->opcode = IORING_OP_URING_CMD; ++ sqe->cmd_op = NVME_URING_CMD_IO; ++ cmd = (struct nvme_uring_cmd *)sqe->cmd; ++ memset(cmd, 0, sizeof(struct nvme_uring_cmd)); ++ ++ slba = offset >> lba_shift; ++ nlb = (BS >> lba_shift) - 1; ++ ++ cmd->opcode = nvme_cmd_read; ++ cmd->cdw10 = slba & 0xffffffff; ++ cmd->cdw11 = slba >> 32; ++ cmd->cdw12 = nlb; ++ cmd->addr = (__u64)(uintptr_t)&vecs[i]; ++ cmd->data_len = 1; ++ cmd->nsid = nsid; + } + + /* submit manually to avoid adding IORING_ENTER_GETEVENTS */ +-- +2.24.4 + diff --git a/1007-liburing-anolis-Include-features-in-struct-io_uring.patch b/1007-liburing-anolis-Include-features-in-struct-io_uring.patch deleted file mode 100644 index b59f078..0000000 --- a/1007-liburing-anolis-Include-features-in-struct-io_uring.patch +++ /dev/null @@ -1,58 +0,0 @@ -From fc063be2896b15e8083d25f932758c34ef7b9540 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 4 Nov 2020 11:35:41 -0700 -Subject: [PATCH 3/8] Include 'features' in struct io_uring - -Then we'll have it for later, should we need to know what features the -ring has. This grabs one of the reserved unsigneds from the struct. - -Backport Notes - -pad[4] in struct io_uring {} is introduced in -25bbcbef3e0a ("Bump major version to 2"), backporting it causes a chain -reaction of backporting __io_uring_sqring_wait(). So here we manully -add pad[3] - -Signed-off-by: Jens Axboe ---- - src/include/liburing.h | 3 +++ - src/setup.c | 7 +++++-- - 2 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/src/include/liburing.h b/src/include/liburing.h -index 92e5018951d4..ac2d4a1cbeba 100644 ---- a/src/include/liburing.h -+++ b/src/include/liburing.h -@@ -57,6 +57,9 @@ struct io_uring { - struct io_uring_cq cq; - unsigned flags; - int ring_fd; -+ -+ unsigned features; -+ unsigned pad[3]; - }; - - /* -diff --git a/src/setup.c b/src/setup.c -index 2b17b949cda6..260dd2be8e85 100644 ---- a/src/setup.c -+++ b/src/setup.c -@@ -142,10 +142,13 @@ int io_uring_queue_init_params(unsigned entries, struct io_uring *ring, - return -errno; - - ret = io_uring_queue_mmap(fd, p, ring); -- if (ret) -+ if (ret) { - close(fd); -+ return ret; -+ } - -- return ret; -+ ring->features = p->features; -+ return 0; - } - - /* --- -1.8.3.1 - diff --git a/1007-test-io_uring_passthrough-cleanup-invalid-submission.patch b/1007-test-io_uring_passthrough-cleanup-invalid-submission.patch new file mode 100644 index 0000000..676472b --- /dev/null +++ b/1007-test-io_uring_passthrough-cleanup-invalid-submission.patch @@ -0,0 +1,33 @@ +From 1985fba0acdac7addc3d8abb5db350a2a7648f16 Mon Sep 17 00:00:00 2001 +From: Kanchan Joshi +Date: Tue, 6 Dec 2022 17:48:31 +0530 +Subject: [PATCH 3/4] test/io_uring_passthrough: cleanup invalid submission + test + +Just do away with setting IOPOLL as this is not necessary for the test. + +Signed-off-by: Kanchan Joshi +Link: https://lore.kernel.org/r/20221206121831.5528-3-joshi.k@samsung.com +Signed-off-by: Jens Axboe +Signed-off-by: Joseph Qi +--- + test/io_uring_passthrough.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/test/io_uring_passthrough.c b/test/io_uring_passthrough.c +index 933c137..292e98d 100644 +--- a/test/io_uring_passthrough.c ++++ b/test/io_uring_passthrough.c +@@ -288,8 +288,7 @@ static int test_invalid_passthru_submit(const char *file) + struct io_uring_sqe *sqe; + struct nvme_uring_cmd *cmd; + +- ring_flags = IORING_SETUP_IOPOLL | IORING_SETUP_SQE128; +- ring_flags |= IORING_SETUP_CQE32; ++ ring_flags = IORING_SETUP_CQE32 | IORING_SETUP_SQE128; + + ret = t_create_ring(1, &ring, ring_flags); + if (ret != T_SETUP_OK) { +-- +2.24.4 + diff --git a/1008-liburing-anolis-Add-__sys_io_uring_enter2.patch b/1008-liburing-anolis-Add-__sys_io_uring_enter2.patch deleted file mode 100644 index 15bfae2..0000000 --- a/1008-liburing-anolis-Add-__sys_io_uring_enter2.patch +++ /dev/null @@ -1,53 +0,0 @@ -From b1e4e2dfaa657de06a401d418e370b2b42e6ba3f Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 4 Nov 2020 11:55:25 -0700 -Subject: [PATCH 4/8] Add __sys_io_uring_enter2() - -Just like __sys_io_uring_enter(), except it allows passing in the size -of the last argument. - -Signed-off-by: Jens Axboe ---- - src/syscall.c | 11 +++++++++-- - src/syscall.h | 2 ++ - 2 files changed, 11 insertions(+), 2 deletions(-) - -diff --git a/src/syscall.c b/src/syscall.c -index c41e0998d0dd..9b455a911df8 100644 ---- a/src/syscall.c -+++ b/src/syscall.c -@@ -47,9 +47,16 @@ int __sys_io_uring_setup(unsigned entries, struct io_uring_params *p) - return syscall(__NR_io_uring_setup, entries, p); - } - -+int __sys_io_uring_enter2(int fd, unsigned to_submit, unsigned min_complete, -+ unsigned flags, sigset_t *sig, int sz) -+{ -+ return syscall(__NR_io_uring_enter, fd, to_submit, min_complete, -+ flags, sig, sz); -+} -+ - int __sys_io_uring_enter(int fd, unsigned to_submit, unsigned min_complete, - unsigned flags, sigset_t *sig) - { -- return syscall(__NR_io_uring_enter, fd, to_submit, min_complete, -- flags, sig, _NSIG / 8); -+ return __sys_io_uring_enter2(fd, to_submit, min_complete, flags, sig, -+ _NSIG / 8); - } -diff --git a/src/syscall.h b/src/syscall.h -index 7e299d419e3e..a4c8e9bbb3f7 100644 ---- a/src/syscall.h -+++ b/src/syscall.h -@@ -8,6 +8,8 @@ - extern int __sys_io_uring_setup(unsigned entries, struct io_uring_params *p); - extern int __sys_io_uring_enter(int fd, unsigned to_submit, - unsigned min_complete, unsigned flags, sigset_t *sig); -+extern int __sys_io_uring_enter2(int fd, unsigned to_submit, -+ unsigned min_complete, unsigned flags, sigset_t *sig, int sz); - extern int __sys_io_uring_register(int fd, unsigned int opcode, const void *arg, - unsigned int nr_args); - --- -1.8.3.1 - diff --git a/1008-test-io_uring_passthrough-skip-test-if-bit-sqe-cqe-s.patch b/1008-test-io_uring_passthrough-skip-test-if-bit-sqe-cqe-s.patch new file mode 100644 index 0000000..0a9f5cc --- /dev/null +++ b/1008-test-io_uring_passthrough-skip-test-if-bit-sqe-cqe-s.patch @@ -0,0 +1,51 @@ +From a0226c19959dda7e1008d0ff77f57264d7f7fdef Mon Sep 17 00:00:00 2001 +From: Jens Axboe +Date: Fri, 23 Dec 2022 08:55:41 -0700 +Subject: [PATCH 4/4] test/io_uring_passthrough: skip test if bit sqe/cqe + support not there + +Signed-off-by: Jens Axboe +Signed-off-by: Joseph Qi +--- + test/io_uring_passthrough.c | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/test/io_uring_passthrough.c b/test/io_uring_passthrough.c +index 292e98d..8fbafdb 100644 +--- a/test/io_uring_passthrough.c ++++ b/test/io_uring_passthrough.c +@@ -264,6 +264,10 @@ static int test_io(const char *file, int tc, int read, int sqthread, + if (ret == T_SETUP_SKIP) + return 0; + if (ret != T_SETUP_OK) { ++ if (ret == -EINVAL) { ++ no_pt = 1; ++ return T_SETUP_SKIP; ++ } + fprintf(stderr, "ring create failed: %d\n", ret); + return 1; + } +@@ -449,15 +453,18 @@ int main(int argc, char *argv[]) + int nonvec = (i & 8) != 0; + + ret = test_io(fname, i, read, sqthread, fixed, nonvec); ++ if (no_pt) ++ break; + if (ret) { + fprintf(stderr, "test_io failed %d/%d/%d/%d\n", + read, sqthread, fixed, nonvec); + goto err; + } +- if (no_pt) +- return T_EXIT_SKIP; + } + ++ if (no_pt) ++ return T_EXIT_SKIP; ++ + ret = test_io_uring_submit_enters(fname); + if (ret) { + fprintf(stderr, "test_io_uring_submit_enters failed\n"); +-- +2.24.4 + diff --git a/1009-liburing-anolis-Add-wrapper-for-__io_uring_get_cqe.patch b/1009-liburing-anolis-Add-wrapper-for-__io_uring_get_cqe.patch deleted file mode 100644 index a0b6ab4..0000000 --- a/1009-liburing-anolis-Add-wrapper-for-__io_uring_get_cqe.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 12d141534e1747525656087b357440cc68a43fda Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 4 Nov 2020 11:44:48 -0700 -Subject: [PATCH 5/8] Add wrapper for __io_uring_get_cqe() - -In preparation for allowing passing in a timeout. - -Signed-off-by: Jens Axboe ---- - src/queue.c | 58 ++++++++++++++++++++++++++++++++++++++++++---------------- - 1 file changed, 42 insertions(+), 16 deletions(-) - -diff --git a/src/queue.c b/src/queue.c -index bdb473c1ba19..3f3099be8a6d 100644 ---- a/src/queue.c -+++ b/src/queue.c -@@ -63,11 +63,19 @@ static int __io_uring_peek_cqe(struct io_uring *ring, - return err; - } - --int __io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, -- unsigned submit, unsigned wait_nr, sigset_t *sigmask) -+struct get_data { -+ unsigned submit; -+ unsigned wait_nr; -+ unsigned get_flags; -+ int sz; -+ void *arg; -+}; -+ -+static int _io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, -+ struct get_data *data) - { - struct io_uring_cqe *cqe = NULL; -- const int to_wait = wait_nr; -+ const int to_wait = data->wait_nr; - int ret = 0, err; - - do { -@@ -77,26 +85,30 @@ int __io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - err = __io_uring_peek_cqe(ring, &cqe); - if (err) - break; -- if (!cqe && !to_wait && !submit) { -+ -+ if (!cqe && !to_wait && !data->submit) { - if (!cq_ring_needs_flush(ring)) { - err = -EAGAIN; - break; - } - cq_overflow_flush = true; - } -- if (wait_nr && cqe) -- wait_nr--; -- if (wait_nr || cq_overflow_flush) -- flags = IORING_ENTER_GETEVENTS; -- if (submit) -+ -+ if (data->wait_nr && cqe) -+ data->wait_nr--; -+ if (data->wait_nr || cq_overflow_flush) -+ flags = IORING_ENTER_GETEVENTS | data->get_flags; -+ if (data->submit) - sq_ring_needs_enter(ring, &flags); -- if (wait_nr || submit || cq_overflow_flush) -- ret = __sys_io_uring_enter(ring->ring_fd, submit, -- wait_nr, flags, sigmask); -+ if (data->wait_nr || data->submit || cq_overflow_flush) -+ ret = __sys_io_uring_enter2(ring->ring_fd, data->submit, -+ data->wait_nr, flags, data->arg, -+ data->sz); -+ - if (ret < 0) { - err = -errno; -- } else if (ret == (int)submit) { -- submit = 0; -+ } else if (ret == (int)data->submit) { -+ data->submit = 0; - /* - * When SETUP_IOPOLL is set, __sys_io_uring enter() - * must be called to reap new completions but the call -@@ -104,9 +116,9 @@ int __io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - * so preserve wait_nr. - */ - if (!(ring->flags & IORING_SETUP_IOPOLL)) -- wait_nr = 0; -+ data->wait_nr = 0; - } else { -- submit -= ret; -+ data->submit -= ret; - } - if (cqe) - break; -@@ -116,6 +128,20 @@ int __io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - return err; - } - -+int __io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, -+ unsigned submit, unsigned wait_nr, sigset_t *sigmask) -+{ -+ struct get_data data = { -+ .submit = submit, -+ .wait_nr = wait_nr, -+ .extra_flags = 0, -+ .sz = _NSIG / 8, -+ .arg = sigmask, -+ }; -+ -+ return _io_uring_get_cqe(ring, cqe_ptr, &data); -+} -+ - /* - * Fill in an array of IO completions up to count, if any are available. - * Returns the amount of IO completions filled. --- -1.8.3.1 - diff --git a/1010-liburing-anolis-Use-IORING_ENTER_GETEVENTS_TIMEOUT-if-available.patch b/1010-liburing-anolis-Use-IORING_ENTER_GETEVENTS_TIMEOUT-if-available.patch deleted file mode 100644 index c650c9b..0000000 --- a/1010-liburing-anolis-Use-IORING_ENTER_GETEVENTS_TIMEOUT-if-available.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 91a6a81fc75c8f02b8c5b6b2b069dd3d1e96f6b9 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 4 Nov 2020 12:02:28 -0700 -Subject: [PATCH 6/8] Use IORING_ENTER_GETEVENTS_TIMEOUT if available - -If the kernel has flagged support for IORING_FEAT_GETEVENTS_TIMEOUT, -then we can pass in a timespec instead of queueing an internal timeout -request. That's more efficient (and trivial), so use it if it's -available. - -Signed-off-by: Jens Axboe ---- - src/queue.c | 28 ++++++++++++++++++++++++++++ - 1 file changed, 28 insertions(+) - -diff --git a/src/queue.c b/src/queue.c -index 3f3099be8a6d..cd800fc5b6e8 100644 ---- a/src/queue.c -+++ b/src/queue.c -@@ -218,6 +218,31 @@ out: - } - - /* -+ * If we have kernel suppor for IORING_ENTER_GETEVENTS_TIMEOUT, then we can -+ * use that more efficiently than queueing an internal timeout command. -+ */ -+static int io_uring_wait_cqes_new(struct io_uring *ring, -+ struct io_uring_cqe **cqe_ptr, -+ unsigned wait_nr, struct __kernel_timespec *ts, -+ sigset_t *sigmask) -+{ -+ struct io_uring_getevents_arg arg = { -+ .sigmask = (unsigned long) sigmask, -+ .sigmask_sz = _NSIG / 8, -+ .ts = (unsigned long) ts -+ }; -+ struct get_data data = { -+ .submit = __io_uring_flush_sq(ring), -+ .wait_nr = wait_nr, -+ .extra_flags = ts ? IORING_ENTER_GETEVENTS_TIMEOUT : 0, -+ .sz = sizeof(arg), -+ .arg = &arg -+ }; -+ -+ return _io_uring_get_cqe(ring, cqe_ptr, &data); -+} -+ -+/* - * Like io_uring_wait_cqe(), except it accepts a timeout value as well. Note - * that an sqe is used internally to handle the timeout. Applications using - * this function must never set sqe->user_data to LIBURING_UDATA_TIMEOUT! -@@ -234,6 +259,9 @@ int io_uring_wait_cqes(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - { - unsigned to_submit = 0; - -+ if (ring->features & IORING_FEAT_GETEVENTS_TIMEOUT) -+ return io_uring_wait_cqes_new(ring, cqe_ptr, wait_nr, ts, sigmask); -+ - if (ts) { - struct io_uring_sqe *sqe; - int ret; --- -1.8.3.1 - diff --git a/1011-liburing-anolis-Update-SIG_IS_DATA-to-modified-kernel-API.patch b/1011-liburing-anolis-Update-SIG_IS_DATA-to-modified-kernel-API.patch deleted file mode 100644 index 67ecab4..0000000 --- a/1011-liburing-anolis-Update-SIG_IS_DATA-to-modified-kernel-API.patch +++ /dev/null @@ -1,78 +0,0 @@ -From dd75ea9d5ef1eceba7b1e49b437a08c8a2753364 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 4 Nov 2020 13:57:17 -0700 -Subject: [PATCH 7/8] Update SIG_IS_DATA to modified kernel API - -Still ironing out the kinks... - -Signed-off-by: Jens Axboe ---- - src/include/liburing/io_uring.h | 4 ++-- - src/queue.c | 8 ++++---- - 2 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 7f7701c86eb4..b892dbe77d86 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -226,7 +226,7 @@ struct io_cqring_offsets { - */ - #define IORING_ENTER_GETEVENTS (1U << 0) - #define IORING_ENTER_SQ_WAKEUP (1U << 1) --#define IORING_ENTER_GETEVENTS_TIMEOUT (1U << 3) -+#define IORING_ENTER_SIG_IS_DATA (1U << 3) - - /* - * Passed in for io_uring_setup(2). Copied back with updated info on success -@@ -254,7 +254,7 @@ struct io_uring_params { - #define IORING_FEAT_CUR_PERSONALITY (1U << 4) - #define IORING_FEAT_FAST_POLL (1U << 5) - #define IORING_FEAT_POLL_32BITS (1U << 6) --#define IORING_FEAT_GETEVENTS_TIMEOUT (1U << 8) -+#define IORING_FEAT_SIG_IS_DATA (1U << 8) - - /* - * io_uring_register(2) opcodes and arguments -diff --git a/src/queue.c b/src/queue.c -index cd800fc5b6e8..6df391c33c6f 100644 ---- a/src/queue.c -+++ b/src/queue.c -@@ -134,7 +134,7 @@ int __io_uring_get_cqe(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - struct get_data data = { - .submit = submit, - .wait_nr = wait_nr, -- .extra_flags = 0, -+ .get_flags = 0, - .sz = _NSIG / 8, - .arg = sigmask, - }; -@@ -218,7 +218,7 @@ out: - } - - /* -- * If we have kernel suppor for IORING_ENTER_GETEVENTS_TIMEOUT, then we can -+ * If we have kernel support for IORING_ENTERSIG_IS_DATA, then we can - * use that more efficiently than queueing an internal timeout command. - */ - static int io_uring_wait_cqes_new(struct io_uring *ring, -@@ -234,7 +234,7 @@ static int io_uring_wait_cqes_new(struct io_uring *ring, - struct get_data data = { - .submit = __io_uring_flush_sq(ring), - .wait_nr = wait_nr, -- .extra_flags = ts ? IORING_ENTER_GETEVENTS_TIMEOUT : 0, -+ .get_flags = ts ? IORING_ENTER_SIG_IS_DATA : 0, - .sz = sizeof(arg), - .arg = &arg - }; -@@ -259,7 +259,7 @@ int io_uring_wait_cqes(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - { - unsigned to_submit = 0; - -- if (ring->features & IORING_FEAT_GETEVENTS_TIMEOUT) -+ if (ring->features & IORING_FEAT_SIG_IS_DATA) - return io_uring_wait_cqes_new(ring, cqe_ptr, wait_nr, ts, sigmask); - - if (ts) { --- -1.8.3.1 - diff --git a/1012-liburing-anolis-Rename-SIG_IS_DATA-EXT_ARG.patch b/1012-liburing-anolis-Rename-SIG_IS_DATA-EXT_ARG.patch deleted file mode 100644 index 8f39924..0000000 --- a/1012-liburing-anolis-Rename-SIG_IS_DATA-EXT_ARG.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 8424cff4705e62784b8042d71e12e22554a038ac Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Wed, 4 Nov 2020 14:34:03 -0700 -Subject: [PATCH 8/8] Rename SIG_IS_DATA -> EXT_ARG - -This is the final name. While doing this change, also change it so that -we only call the new variant if 'ts' is indeed set. - -Signed-off-by: Jens Axboe ---- - src/include/liburing/io_uring.h | 4 ++-- - src/queue.c | 13 +++++++------ - 2 files changed, 9 insertions(+), 8 deletions(-) - -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index b892dbe77d86..e8393b87e7bd 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -226,7 +226,7 @@ struct io_cqring_offsets { - */ - #define IORING_ENTER_GETEVENTS (1U << 0) - #define IORING_ENTER_SQ_WAKEUP (1U << 1) --#define IORING_ENTER_SIG_IS_DATA (1U << 3) -+#define IORING_ENTER_EXT_ARG (1U << 3) - - /* - * Passed in for io_uring_setup(2). Copied back with updated info on success -@@ -254,7 +254,7 @@ struct io_uring_params { - #define IORING_FEAT_CUR_PERSONALITY (1U << 4) - #define IORING_FEAT_FAST_POLL (1U << 5) - #define IORING_FEAT_POLL_32BITS (1U << 6) --#define IORING_FEAT_SIG_IS_DATA (1U << 8) -+#define IORING_FEAT_EXT_ARG (1U << 8) - - /* - * io_uring_register(2) opcodes and arguments -diff --git a/src/queue.c b/src/queue.c -index 6df391c33c6f..2662e671fb34 100644 ---- a/src/queue.c -+++ b/src/queue.c -@@ -218,8 +218,8 @@ out: - } - - /* -- * If we have kernel support for IORING_ENTERSIG_IS_DATA, then we can -- * use that more efficiently than queueing an internal timeout command. -+ * If we have kernel support for IORING_ENTER_EXT_ARG, then we can use that -+ * more efficiently than queueing an internal timeout command. - */ - static int io_uring_wait_cqes_new(struct io_uring *ring, - struct io_uring_cqe **cqe_ptr, -@@ -234,7 +234,7 @@ static int io_uring_wait_cqes_new(struct io_uring *ring, - struct get_data data = { - .submit = __io_uring_flush_sq(ring), - .wait_nr = wait_nr, -- .get_flags = ts ? IORING_ENTER_SIG_IS_DATA : 0, -+ .get_flags = IORING_ENTER_EXT_ARG, - .sz = sizeof(arg), - .arg = &arg - }; -@@ -259,13 +259,14 @@ int io_uring_wait_cqes(struct io_uring *ring, struct io_uring_cqe **cqe_ptr, - { - unsigned to_submit = 0; - -- if (ring->features & IORING_FEAT_SIG_IS_DATA) -- return io_uring_wait_cqes_new(ring, cqe_ptr, wait_nr, ts, sigmask); -- - if (ts) { - struct io_uring_sqe *sqe; - int ret; - -+ if (ring->features & IORING_FEAT_EXT_ARG) -+ return io_uring_wait_cqes_new(ring, cqe_ptr, wait_nr, -+ ts, sigmask); -+ - /* - * If the SQ ring is full, we may need to submit IO first - */ --- -1.8.3.1 - diff --git a/1013-liburing-anolis-test-timeout-new-test-for-timeout-feature.patch b/1013-liburing-anolis-test-timeout-new-test-for-timeout-feature.patch deleted file mode 100644 index 0037a51..0000000 --- a/1013-liburing-anolis-test-timeout-new-test-for-timeout-feature.patch +++ /dev/null @@ -1,307 +0,0 @@ -From ce520b2655e8d14d3a94cc9f596f128eb4c36140 Mon Sep 17 00:00:00 2001 -From: Hao Xu -Date: Sat, 12 Dec 2020 12:49:39 +0800 -Subject: [PATCH] test/timeout-new: test for timeout feature - -Tests for the new timeout feature. It covers: - - wake up when timeout, sleeping time calculated as well - - wake up by a cqe before timeout - - the above two in sqpoll thread mode - - multi child-threads wake up by a cqe issuing in main thread before - timeout - -Signed-off-by: Hao Xu -Signed-off-by: Jens Axboe ---- - test/Makefile | 7 +- - test/timeout-new.c | 246 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 251 insertions(+), 2 deletions(-) - create mode 100644 test/timeout-new.c - -diff --git a/test/Makefile b/test/Makefile -index cbbd400391dd..0720dcd39950 100644 ---- a/test/Makefile -+++ b/test/Makefile -@@ -25,7 +25,8 @@ all_targets += poll poll-cancel ring-leak fsync io_uring_setup io_uring_register - short-read openat2 probe shared-wq personality eventfd \ - send_recv eventfd-ring across-fork sq-poll-kthread splice \ - lfs-openat lfs-openat-write iopoll d4ae271dfaae-test \ -- eventfd-disable close-opath ce593a6c480a-test cq-overflow-peek -+ eventfd-disable close-opath ce593a6c480a-test cq-overflow-peek \ -+ timeout-new - - include ../Makefile.quiet - -@@ -65,7 +66,8 @@ test_srcs := poll.c poll-cancel.c ring-leak.c fsync.c io_uring_setup.c \ - madvise.c short-read.c openat2.c probe.c shared-wq.c \ - personality.c eventfd.c eventfd-ring.c across-fork.c sq-poll-kthread.c \ - splice.c lfs-openat.c lfs-openat-write.c iopoll.c d4ae271dfaae-test.c \ -- eventfd-disable.c close-opath.c ce593a6c480a-test.c cq-overflow-peek.c -+ eventfd-disable.c close-opath.c ce593a6c480a-test.c cq-overflow-peek.c \ -+ timeout-new.c - - ifdef CONFIG_HAVE_STATX - test_srcs += statx.c -@@ -87,6 +89,7 @@ submit-reuse: XCFLAGS = -lpthread - poll-v-poll: XCFLAGS = -lpthread - across-fork: XCFLAGS = -lpthread - ce593a6c480a-test: XCFLAGS = -lpthread -+timeout-new: XCFLAGS = -lpthread - - install: $(all_targets) runtests.sh runtests-loop.sh - $(INSTALL) -D -d -m 755 $(datadir)/liburing-test/ -diff --git a/test/timeout-new.c b/test/timeout-new.c -new file mode 100644 -index 000000000000..45b9a149ae11 ---- /dev/null -+++ b/test/timeout-new.c -@@ -0,0 +1,246 @@ -+/* SPDX-License-Identifier: MIT */ -+/* -+ * Description: tests for getevents timeout -+ * -+ */ -+#include -+#include -+#include -+#include -+#include "liburing.h" -+ -+#define TIMEOUT_MSEC 200 -+#define TIMEOUT_SEC 10 -+ -+int thread_ret0, thread_ret1; -+int cnt = 0; -+pthread_mutex_t mutex; -+ -+static void msec_to_ts(struct __kernel_timespec *ts, unsigned int msec) -+{ -+ ts->tv_sec = msec / 1000; -+ ts->tv_nsec = (msec % 1000) * 1000000; -+} -+ -+static unsigned long long mtime_since(const struct timeval *s, -+ const struct timeval *e) -+{ -+ long long sec, usec; -+ -+ sec = e->tv_sec - s->tv_sec; -+ usec = (e->tv_usec - s->tv_usec); -+ if (sec > 0 && usec < 0) { -+ sec--; -+ usec += 1000000; -+ } -+ -+ sec *= 1000; -+ usec /= 1000; -+ return sec + usec; -+} -+ -+static unsigned long long mtime_since_now(struct timeval *tv) -+{ -+ struct timeval end; -+ -+ gettimeofday(&end, NULL); -+ return mtime_since(tv, &end); -+} -+ -+ -+static int test_return_before_timeout(struct io_uring *ring) -+{ -+ struct io_uring_cqe *cqe; -+ struct io_uring_sqe *sqe; -+ int ret; -+ struct __kernel_timespec ts; -+ -+ sqe = io_uring_get_sqe(ring); -+ if (!sqe) { -+ fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__); -+ return 1; -+ } -+ -+ io_uring_prep_nop(sqe); -+ -+ ret = io_uring_submit(ring); -+ if (ret <= 0) { -+ fprintf(stderr, "%s: sqe submit failed: %d\n", __FUNCTION__, ret); -+ return 1; -+ } -+ -+ msec_to_ts(&ts, TIMEOUT_MSEC); -+ ret = io_uring_wait_cqe_timeout(ring, &cqe, &ts); -+ if (ret < 0) { -+ fprintf(stderr, "%s: timeout error: %d\n", __FUNCTION__, ret); -+ return 1; -+ } -+ -+ io_uring_cqe_seen(ring, cqe); -+ return 0; -+} -+ -+static int test_return_after_timeout(struct io_uring *ring) -+{ -+ struct io_uring_cqe *cqe; -+ int ret; -+ struct __kernel_timespec ts; -+ struct timeval tv; -+ unsigned long long exp; -+ -+ msec_to_ts(&ts, TIMEOUT_MSEC); -+ gettimeofday(&tv, NULL); -+ ret = io_uring_wait_cqe_timeout(ring, &cqe, &ts); -+ exp = mtime_since_now(&tv); -+ if (ret != -ETIME) { -+ fprintf(stderr, "%s: timeout error: %d\n", __FUNCTION__, ret); -+ return 1; -+ } -+ -+ if (exp < TIMEOUT_MSEC / 2 || exp > (TIMEOUT_MSEC * 3) / 2) { -+ fprintf(stderr, "%s: Timeout seems wonky (got %llu)\n", __FUNCTION__, exp); -+ return 1; -+ } -+ -+ return 0; -+} -+ -+int __reap_thread_fn(void *data) { -+ struct io_uring *ring = (struct io_uring *)data; -+ struct io_uring_cqe *cqe; -+ struct __kernel_timespec ts; -+ -+ msec_to_ts(&ts, TIMEOUT_SEC); -+ pthread_mutex_lock(&mutex); -+ cnt++; -+ pthread_mutex_unlock(&mutex); -+ return io_uring_wait_cqe_timeout(ring, &cqe, &ts); -+} -+ -+void *reap_thread_fn0(void *data) { -+ thread_ret0 = __reap_thread_fn(data); -+ return NULL; -+} -+ -+void *reap_thread_fn1(void *data) { -+ thread_ret1 = __reap_thread_fn(data); -+ return NULL; -+} -+ -+/* -+ * This is to test issuing a sqe in main thread and reaping it in two child-thread -+ * at the same time. To see if timeout feature works or not. -+ */ -+int test_multi_threads_timeout() { -+ struct io_uring ring; -+ int ret; -+ bool both_wait = false; -+ pthread_t reap_thread0, reap_thread1; -+ struct io_uring_sqe *sqe; -+ -+ ret = io_uring_queue_init(8, &ring, 0); -+ if (ret) { -+ fprintf(stderr, "%s: ring setup failed: %d\n", __FUNCTION__, ret); -+ return 1; -+ } -+ -+ pthread_create(&reap_thread0, NULL, reap_thread_fn0, &ring); -+ pthread_create(&reap_thread1, NULL, reap_thread_fn1, &ring); -+ -+ /* -+ * make two threads both enter io_uring_wait_cqe_timeout() before issuing the sqe -+ * as possible as we can. So that there are two threads in the ctx->wait queue. -+ * In this way, we can test if a cqe wakes up two threads at the same time. -+ */ -+ while(!both_wait) { -+ pthread_mutex_lock(&mutex); -+ if (cnt == 2) -+ both_wait = true; -+ pthread_mutex_unlock(&mutex); -+ sleep(1); -+ } -+ -+ sqe = io_uring_get_sqe(&ring); -+ if (!sqe) { -+ fprintf(stderr, "%s: get sqe failed\n", __FUNCTION__); -+ goto err; -+ } -+ -+ io_uring_prep_nop(sqe); -+ -+ ret = io_uring_submit(&ring); -+ if (ret <= 0) { -+ fprintf(stderr, "%s: sqe submit failed: %d\n", __FUNCTION__, ret); -+ goto err; -+ } -+ -+ pthread_join(reap_thread0, NULL); -+ pthread_join(reap_thread1, NULL); -+ -+ if ((thread_ret0 && thread_ret0 != -ETIME) || (thread_ret1 && thread_ret1 != -ETIME)) { -+ fprintf(stderr, "%s: thread wait cqe timeout failed: %d %d\n", -+ __FUNCTION__, thread_ret0, thread_ret1); -+ goto err; -+ } -+ -+ return 0; -+err: -+ return 1; -+} -+ -+int main(int argc, char *argv[]) -+{ -+ struct io_uring ring_normal, ring_sq; -+ int ret; -+ -+ if (argc > 1) -+ return 0; -+ -+ ret = io_uring_queue_init(8, &ring_normal, 0); -+ if (ret) { -+ fprintf(stderr, "ring_normal setup failed: %d\n", ret); -+ return 1; -+ } -+ if (!(ring_normal.features & IORING_FEAT_EXT_ARG)) { -+ fprintf(stderr, "feature IORING_FEAT_EXT_ARG not supported.\n"); -+ return 1; -+ } -+ -+ ret = test_return_before_timeout(&ring_normal); -+ if (ret) { -+ fprintf(stderr, "ring_normal: test_return_before_timeout failed\n"); -+ return ret; -+ } -+ -+ ret = test_return_after_timeout(&ring_normal); -+ if (ret) { -+ fprintf(stderr, "ring_normal: test_return_after_timeout failed\n"); -+ return ret; -+ } -+ -+ ret = io_uring_queue_init(8, &ring_sq, IORING_SETUP_SQPOLL); -+ if (ret) { -+ fprintf(stderr, "ring_sq setup failed: %d\n", ret); -+ return 1; -+ } -+ -+ ret = test_return_before_timeout(&ring_sq); -+ if (ret) { -+ fprintf(stderr, "ring_sq: test_return_before_timeout failed\n"); -+ return ret; -+ } -+ -+ ret = test_return_after_timeout(&ring_sq); -+ if (ret) { -+ fprintf(stderr, "ring_sq: test_return_after_timeout failed\n"); -+ return ret; -+ } -+ -+ ret = test_multi_threads_timeout(); -+ if (ret) { -+ fprintf(stderr, "test_multi_threads_timeout failed\n"); -+ return ret; -+ } -+ -+ return 0; -+} --- -1.8.3.1 - diff --git a/1014-liburing-anolis-test-use-a-map-to-define-test-files-devices-we-need.patch b/1014-liburing-anolis-test-use-a-map-to-define-test-files-devices-we-need.patch deleted file mode 100644 index 7bb1e7f..0000000 --- a/1014-liburing-anolis-test-use-a-map-to-define-test-files-devices-we-need.patch +++ /dev/null @@ -1,68 +0,0 @@ -From c2f5708119a8249feda4e5e283c1e17dc90d4773 Mon Sep 17 00:00:00 2001 -From: Hao Xu -Date: Thu, 25 Feb 2021 16:39:02 +0800 -Subject: [PATCH] test: use a map to define test files / devices we need - -Different tests need different files / devices, use a map to indicate -what each test need. - -Signed-off-by: Hao Xu -Signed-off-by: Jens Axboe ---- - test/config | 2 +- - test/runtests.sh | 13 ++++++------- - 2 files changed, 7 insertions(+), 8 deletions(-) - -diff --git a/test/config b/test/config -index 80a5f467c0c4..d1ea7858ee7a 100644 ---- a/test/config -+++ b/test/config -@@ -1,4 +1,4 @@ - # Define raw test devices (or files) for test cases, if any - # Copy this to config.local, and uncomment + define test files - # --# TEST_FILES="/dev/nvme0n1p2 /data/file" -+declare -A TEST_FILES=() -diff --git a/test/runtests.sh b/test/runtests.sh -index a891f4b91acd..171470bbd5a7 100755 ---- a/test/runtests.sh -+++ b/test/runtests.sh -@@ -6,6 +6,7 @@ RET=0 - TIMEOUT=60 - FAILED="" - MAYBE_FAILED="" -+declare -A TEST_FILES - - do_kmsg="1" - if ! [ $(id -u) = 0 ]; then -@@ -13,10 +14,9 @@ if ! [ $(id -u) = 0 ]; then - fi - - TEST_DIR=$(dirname $0) --TEST_FILES="" - if [ -f "$TEST_DIR/config.local" ]; then - . $TEST_DIR/config.local -- for dev in $TEST_FILES; do -+ for dev in ${TEST_FILES[@]}; do - if [ ! -e "$dev" ]; then - echo "Test file $dev not valid" - exit 1 -@@ -102,11 +102,10 @@ run_test() - } - - for t in $TESTS; do -- run_test $t -- if [ ! -z "$TEST_FILES" ]; then -- for dev in $TEST_FILES; do -- run_test $t $dev -- done -+ if [ ! -n "${TEST_FILES[$t]}" ]; then -+ run_test $t -+ else -+ run_test $t ${TEST_FILES[$t]} - fi - done - --- -1.8.3.1 - diff --git a/1015-liburing-anolis-test-timeout-overflow-don-t-run-on-newer-kernels.patch b/1015-liburing-anolis-test-timeout-overflow-don-t-run-on-newer-kernels.patch deleted file mode 100644 index fea8178..0000000 --- a/1015-liburing-anolis-test-timeout-overflow-don-t-run-on-newer-kernels.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 4fe73ec45c51096459971727089a0f0b1f86f926 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Thu, 13 Aug 2020 18:00:06 -0600 -Subject: [PATCH] test/timeout-overflow: don't run on newer kernels - -It's known to fail with the batched completions, just disable it -on newer kernels. - -Signed-off-by: Jens Axboe -Signed-off-by: Joseph Qi ---- - test/timeout-overflow.c | 17 ++++++++++++++--- - 1 file changed, 14 insertions(+), 3 deletions(-) - -diff --git a/test/timeout-overflow.c b/test/timeout-overflow.c -index 1074e2b..f952f80 100644 ---- a/test/timeout-overflow.c -+++ b/test/timeout-overflow.c -@@ -6,6 +6,7 @@ - #include - #include - #include -+#include - #include - - #include "liburing.h" -@@ -19,19 +20,29 @@ static void msec_to_ts(struct __kernel_timespec *ts, unsigned int msec) - ts->tv_nsec = (msec % 1000) * 1000000; - } - --static int check_timeout_support() -+static int check_timeout_support(void) - { - struct io_uring_sqe *sqe; - struct io_uring_cqe *cqe; - struct __kernel_timespec ts; -+ struct io_uring_params p; - struct io_uring ring; - int ret; - -- ret = io_uring_queue_init(8, &ring, 0); -+ memset(&p, 0, sizeof(p)); -+ ret = io_uring_queue_init_params(1, &ring, &p); - if (ret) { - fprintf(stderr, "ring setup failed: %d\n", ret); - return 1; - } -+ -+ /* not really a match, but same kernel added batched completions */ -+ if (p.features & IORING_FEAT_POLL_32BITS) { -+ fprintf(stdout, "Skipping\n"); -+ not_supported = 1; -+ return 0; -+ } -+ - sqe = io_uring_get_sqe(&ring); - msec_to_ts(&ts, TIMEOUT_MSEC); - io_uring_prep_timeout(sqe, &ts, 1, 0); -@@ -74,7 +85,7 @@ err: - * successful after the patch. And req1/req2 will completed successful with - * req3/req4 return -ETIME without this patch! - */ --static int test_timeout_overflow() -+static int test_timeout_overflow(void) - { - struct io_uring_sqe *sqe; - struct io_uring_cqe *cqe; --- -1.8.3.1 - diff --git a/1018-liburing-anolis-adjust-value-for-IORING_ENTER_SQ_SUBMIT_ON_IDLE-to-s.patch b/1018-liburing-anolis-adjust-value-for-IORING_ENTER_SQ_SUBMIT_ON_IDLE-to-s.patch deleted file mode 100644 index b7aab1e..0000000 --- a/1018-liburing-anolis-adjust-value-for-IORING_ENTER_SQ_SUBMIT_ON_IDLE-to-s.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 24fa4be977ba0232d6b1abcb8c95a9f65de3a686 Mon Sep 17 00:00:00 2001 -From: Ziyang Zhang -Date: Wed, 30 Nov 2022 15:13:15 +0800 -Subject: [PATCH 1/2] adjust value for IORING_ENTER_SQ_SUBMIT_ON_IDLE to sync - with kernel uapi - -Current value of IORING_ENTER_SQ_SUBMIT_ON_IDLE is too small and it is -in conflict with the upstream IORING_ENTER_REGISTERED_RING. - -Let's adjust value of IORING_ENTER_SQ_SUBMIT_ON_IDLE and prepare for -new io_uring features. - -Signed-off-by: Ziyang Zhang ---- - src/include/liburing/io_uring.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index cacc210..64df61b 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -228,7 +228,7 @@ struct io_cqring_offsets { - #define IORING_ENTER_GETEVENTS (1U << 0) - #define IORING_ENTER_SQ_WAKEUP (1U << 1) - #define IORING_ENTER_EXT_ARG (1U << 3) --#define IORING_ENTER_SQ_SUBMIT_ON_IDLE (1U << 4) -+#define IORING_ENTER_SQ_SUBMIT_ON_IDLE (1U << 31) - - /* - * Passed in for io_uring_setup(2). Copied back with updated info on success --- -2.31.1 - diff --git a/1020-io_uring.h-add-IORING_SETUP_SQE128.patch b/1020-io_uring.h-add-IORING_SETUP_SQE128.patch deleted file mode 100644 index b5e722c..0000000 --- a/1020-io_uring.h-add-IORING_SETUP_SQE128.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 01222106355284998baa2e1374401ed0fa013f4c Mon Sep 17 00:00:00 2001 -From: Ziyang Zhang -Date: Fri, 23 Dec 2022 16:44:17 +0800 -Subject: [PATCH 1/7] io_uring.h: add IORING_SETUP_SQE128 - -This asks the kernel to setup a ring with 128-byte SQE entries. May fail -with -EINVAL if the kernel doesn't support this feature. If the kernel -does support the feature, then the ring will support big sqe entries -which some commands may require. - -Signed-off-by: Jens Axboe -Signed-off-by: Ziyang Zhang ---- - src/include/liburing.h | 2 +- - src/include/liburing/io_uring.h | 30 ++++++++++++++++-------------- - 2 files changed, 17 insertions(+), 15 deletions(-) - -diff --git a/src/include/liburing.h b/src/include/liburing.h -index 19dc8b4..5cb3cae 100644 ---- a/src/include/liburing.h -+++ b/src/include/liburing.h -@@ -199,7 +199,7 @@ static inline void io_uring_prep_rw(int op, struct io_uring_sqe *sqe, int fd, - sqe->len = len; - sqe->rw_flags = 0; - sqe->user_data = 0; -- sqe->__pad2[0] = sqe->__pad2[1] = sqe->__pad2[2] = 0; -+ sqe->__pad2[0] = sqe->__pad2[1] = 0; - } - - static inline void io_uring_prep_splice(struct io_uring_sqe *sqe, -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 64df61b..5306dff 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -44,21 +44,22 @@ struct io_uring_sqe { - __u32 splice_flags; - }; - __u64 user_data; /* data to be passed back at completion time */ -+ /* pack this to avoid bogus arm OABI complaints */ - union { -- struct { -- /* pack this to avoid bogus arm OABI complaints */ -- union { -- /* index into fixed buffers, if used */ -- __u16 buf_index; -- /* for grouped buffer selection */ -- __u16 buf_group; -- } __attribute__((packed)); -- /* personality to use, if used */ -- __u16 personality; -- __s32 splice_fd_in; -- }; -- __u64 __pad2[3]; -- }; -+ /* index into fixed buffers, if used */ -+ __u16 buf_index; -+ /* for grouped buffer selection */ -+ __u16 buf_group; -+ } __attribute__((packed)); -+ /* personality to use, if used */ -+ __u16 personality; -+ __s32 splice_fd_in; -+ __u64 __pad2[2]; -+ /* -+ * If the ring is initialized with IORING_SETUP_SQE128, then this field -+ * contains 64-bytes of padding, doubling the size of the SQE. -+ */ -+ __u64 __big_sqe_pad[0]; - }; - - enum { -@@ -95,6 +96,7 @@ enum { - #define IORING_SETUP_CQSIZE (1U << 3) /* app defines CQ size */ - #define IORING_SETUP_CLAMP (1U << 4) /* clamp SQ/CQ ring sizes */ - #define IORING_SETUP_ATTACH_WQ (1U << 5) /* attach to existing wq */ -+#define IORING_SETUP_SQE128 (1U << 10) /* SQEs are 128 byte */ - #define IORING_SETUP_IDLE_US (1U << 30) /* unit of thread_idle is microsecond */ - /* use percpu SQ poll thread */ - #define IORING_SETUP_SQPOLL_PERCPU (1U << 31) --- -2.31.1 - diff --git a/1021-setup-add-basic-support-for-SQE128.patch b/1021-setup-add-basic-support-for-SQE128.patch deleted file mode 100644 index 4635b11..0000000 --- a/1021-setup-add-basic-support-for-SQE128.patch +++ /dev/null @@ -1,108 +0,0 @@ -From 7061fff6f9e9024702c7775caedd8aa50c792ee4 Mon Sep 17 00:00:00 2001 -From: Ziyang Zhang -Date: Mon, 26 Dec 2022 16:14:44 +0800 -Subject: [PATCH 2/7] setup: add basic support for SQE128 - -Adjust the helpers for getting ring size and knowing how much memory -we need for a ring of a given size, and basic support for knowing -how much to increment a ring when an SQE is allocated. - -Signed-off-by: Jens Axboe -[Ziyang Zhang: backport for anck 5.10] -Signed-off-by: Ziyang Zhang ---- - src/queue.c | 28 +++++++++++++++------------- - src/setup.c | 17 +++++++++++++---- - 2 files changed, 28 insertions(+), 17 deletions(-) - -diff --git a/src/queue.c b/src/queue.c -index d8ee64f..b64885f 100644 ---- a/src/queue.c -+++ b/src/queue.c -@@ -364,18 +364,6 @@ int io_uring_submit_on_idle_and_wait(struct io_uring *ring, unsigned wait_nr) - return __io_uring_submit_and_wait(ring, wait_nr, IORING_ENTER_SQ_SUBMIT_ON_IDLE); - } - --static inline struct io_uring_sqe * --__io_uring_get_sqe(struct io_uring_sq *sq, unsigned int __head) --{ -- unsigned int __next = (sq)->sqe_tail + 1; -- struct io_uring_sqe *__sqe = NULL; -- -- if (__next - __head <= *(sq)->kring_entries) { -- __sqe = &(sq)->sqes[(sq)->sqe_tail & *(sq)->kring_mask]; -- (sq)->sqe_tail = __next; -- } -- return __sqe; --} - - /* - * Return an sqe to fill. Application must later call io_uring_submit() -@@ -387,6 +375,20 @@ __io_uring_get_sqe(struct io_uring_sq *sq, unsigned int __head) - struct io_uring_sqe *io_uring_get_sqe(struct io_uring *ring) - { - struct io_uring_sq *sq = &ring->sq; -+ unsigned int head = io_uring_smp_load_acquire(sq->khead); -+ unsigned int next = sq->sqe_tail + 1; -+ int shift = 0; -+ -+ if (ring->flags & IORING_SETUP_SQE128) -+ shift = 1; -+ -+ if (next - head <= *sq->kring_entries) { -+ struct io_uring_sqe *sqe; -+ -+ sqe = &sq->sqes[(sq->sqe_tail & *sq->kring_mask) << shift]; -+ sq->sqe_tail = next; -+ return sqe; -+ } - -- return __io_uring_get_sqe(sq, io_uring_smp_load_acquire(sq->khead)); -+ return NULL; - } -diff --git a/src/setup.c b/src/setup.c -index 260dd2b..570eaed 100644 ---- a/src/setup.c -+++ b/src/setup.c -@@ -59,8 +59,10 @@ static int io_uring_mmap(int fd, struct io_uring_params *p, - sq->kdropped = sq->ring_ptr + p->sq_off.dropped; - sq->array = sq->ring_ptr + p->sq_off.array; - -- size = p->sq_entries * sizeof(struct io_uring_sqe); -- sq->sqes = mmap(0, size, PROT_READ | PROT_WRITE, -+ size = sizeof(struct io_uring_sqe); -+ if (p->flags & IORING_SETUP_SQE128) -+ size += 64; -+ sq->sqes = mmap(0, size * p->sq_entries, PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_POPULATE, fd, - IORING_OFF_SQES); - if (sq->sqes == MAP_FAILED) { -@@ -112,7 +114,10 @@ int io_uring_ring_dontfork(struct io_uring *ring) - if (!ring->sq.ring_ptr || !ring->sq.sqes || !ring->cq.ring_ptr) - return -EINVAL; - -- len = *ring->sq.kring_entries * sizeof(struct io_uring_sqe); -+ len = sizeof(struct io_uring_sqe); -+ if (ring->flags & IORING_SETUP_SQE128) -+ len += 64; -+ len *= *ring->sq.kring_entries; - ret = madvise(ring->sq.sqes, len, MADV_DONTFORK); - if (ret == -1) - return -errno; -@@ -169,8 +174,12 @@ void io_uring_queue_exit(struct io_uring *ring) - { - struct io_uring_sq *sq = &ring->sq; - struct io_uring_cq *cq = &ring->cq; -+ size_t sqe_size; - -- munmap(sq->sqes, *sq->kring_entries * sizeof(struct io_uring_sqe)); -+ sqe_size = sizeof(struct io_uring_sqe); -+ if (ring->flags & IORING_SETUP_SQE128) -+ sqe_size += 64; -+ munmap(sq->sqes, sqe_size * *sq->kring_entries); - io_uring_unmap_rings(sq, cq); - close(ring->ring_fd); - } --- -2.31.1 - diff --git a/1022-test-nop-add-basic-IORING_SETUP_SQE128-tests.patch b/1022-test-nop-add-basic-IORING_SETUP_SQE128-tests.patch deleted file mode 100644 index 550713e..0000000 --- a/1022-test-nop-add-basic-IORING_SETUP_SQE128-tests.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 4b7df34a68054bf2007d193ae3c4ca645e670124 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Sun, 20 Feb 2022 12:08:42 -0700 -Subject: [PATCH 3/7] test/nop: add basic IORING_SETUP_SQE128 tests - -Just repeats the original test cases, but using a big ring. Assign and -check for user_data never being NULL, which would be a common issue -with mistakes between big and normal SQEs. - -Signed-off-by: Jens Axboe ---- - test/nop.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++++------ - 1 file changed, 57 insertions(+), 7 deletions(-) - -diff --git a/test/nop.c b/test/nop.c -index 82201bd..d477a1b 100644 ---- a/test/nop.c -+++ b/test/nop.c -@@ -12,6 +12,8 @@ - - #include "liburing.h" - -+static int seq; -+ - static int test_single_nop(struct io_uring *ring) - { - struct io_uring_cqe *cqe; -@@ -25,6 +27,7 @@ static int test_single_nop(struct io_uring *ring) - } - - io_uring_prep_nop(sqe); -+ sqe->user_data = ++seq; - - ret = io_uring_submit(ring); - if (ret <= 0) { -@@ -37,7 +40,10 @@ static int test_single_nop(struct io_uring *ring) - fprintf(stderr, "wait completion %d\n", ret); - goto err; - } -- -+ if (!cqe->user_data) { -+ fprintf(stderr, "Unexpected 0 user_data\n"); -+ goto err; -+ } - io_uring_cqe_seen(ring, cqe); - return 0; - err: -@@ -60,6 +66,7 @@ static int test_barrier_nop(struct io_uring *ring) - io_uring_prep_nop(sqe); - if (i == 4) - sqe->flags = IOSQE_IO_DRAIN; -+ sqe->user_data = ++seq; - } - - ret = io_uring_submit(ring); -@@ -77,6 +84,10 @@ static int test_barrier_nop(struct io_uring *ring) - fprintf(stderr, "wait completion %d\n", ret); - goto err; - } -+ if (!cqe->user_data) { -+ fprintf(stderr, "Unexpected 0 user_data\n"); -+ goto err; -+ } - io_uring_cqe_seen(ring, cqe); - } - -@@ -85,15 +96,12 @@ err: - return 1; - } - --int main(int argc, char *argv[]) -+static int test_p(struct io_uring_params *p) - { - struct io_uring ring; - int ret; - -- if (argc > 1) -- return 0; -- -- ret = io_uring_queue_init(8, &ring, 0); -+ ret = io_uring_queue_init_params(8, &ring, p); - if (ret) { - fprintf(stderr, "ring setup failed: %d\n", ret); - return 1; -@@ -102,12 +110,54 @@ int main(int argc, char *argv[]) - ret = test_single_nop(&ring); - if (ret) { - fprintf(stderr, "test_single_nop failed\n"); -- return ret; -+ goto err; - } - - ret = test_barrier_nop(&ring); - if (ret) { - fprintf(stderr, "test_barrier_nop failed\n"); -+ goto err; -+ } -+ -+ io_uring_queue_exit(&ring); -+ return 0; -+err: -+ io_uring_queue_exit(&ring); -+ return ret; -+} -+ -+static int test_normal_ring(void) -+{ -+ struct io_uring_params p = { }; -+ -+ return test_p(&p); -+} -+ -+static int test_big_ring(void) -+{ -+ struct io_uring_params p = { }; -+ -+ p.flags = IORING_SETUP_SQE128; -+ return test_p(&p); -+} -+ -+ -+int main(int argc, char *argv[]) -+{ -+ int ret; -+ -+ if (argc > 1) -+ return 0; -+ -+ ret = test_normal_ring(); -+ if (ret) { -+ fprintf(stderr, "Normal ring test failed\n"); -+ return ret; -+ } -+ -+ ret = test_big_ring(); -+ if (ret) { -+ fprintf(stderr, "Big ring test failed\n"); - return ret; - } - --- -2.31.1 - diff --git a/1023-test-nop-make-less-verbose-and-don-t-fail-on-older-k.patch b/1023-test-nop-make-less-verbose-and-don-t-fail-on-older-k.patch deleted file mode 100644 index a1f93a3..0000000 --- a/1023-test-nop-make-less-verbose-and-don-t-fail-on-older-k.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e5b7ad1f5d25d183346ac13f5714310972d5f4a2 Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Fri, 13 May 2022 11:40:55 -0600 -Subject: [PATCH 4/7] test/nop: make less verbose and don't fail on older - kernels - -Signed-off-by: Jens Axboe -Signed-off-by: Ziyang Zhang ---- - test/nop.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/test/nop.c b/test/nop.c -index d477a1b..bba7caa 100644 ---- a/test/nop.c -+++ b/test/nop.c -@@ -103,6 +103,10 @@ static int test_p(struct io_uring_params *p) - - ret = io_uring_queue_init_params(8, &ring, p); - if (ret) { -+ if (ret == -EINVAL) { -+ fprintf(stdout, "IORING_SETUP_SQE128 not supported\n"); -+ return 0; -+ } - fprintf(stderr, "ring setup failed: %d\n", ret); - return 1; - } --- -2.31.1 - diff --git a/1024-io_uring.h-support-IORING_OP_URING_CMD.patch b/1024-io_uring.h-support-IORING_OP_URING_CMD.patch deleted file mode 100644 index fe7f2cf..0000000 --- a/1024-io_uring.h-support-IORING_OP_URING_CMD.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 28ddb2fd15d69e043ed89b63db44907a8fad0eb8 Mon Sep 17 00:00:00 2001 -From: Ziyang Zhang -Date: Mon, 26 Dec 2022 15:59:26 +0800 -Subject: [PATCH 5/7] io_uring.h: support IORING_OP_URING_CMD - -Signed-off-by: Ziyang Zhang ---- - src/include/liburing/io_uring.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 5306dff..0af8bc4 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -136,6 +136,7 @@ enum { - IORING_OP_PROVIDE_BUFFERS, - IORING_OP_REMOVE_BUFFERS, - IORING_OP_TEE, -+ IORING_OP_URING_CMD, - - /* this goes last, obviously */ - IORING_OP_LAST, --- -2.31.1 - diff --git a/1025-man-io_uring_setup.2-document-IORING_SETUP_SQE128-fl.patch b/1025-man-io_uring_setup.2-document-IORING_SETUP_SQE128-fl.patch deleted file mode 100644 index 0bc4a6d..0000000 --- a/1025-man-io_uring_setup.2-document-IORING_SETUP_SQE128-fl.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f2d54142ad04900c7768fcf858fad498e3e7ad6a Mon Sep 17 00:00:00 2001 -From: Jens Axboe -Date: Mon, 16 May 2022 20:14:00 -0600 -Subject: [PATCH 6/7] man/io_uring_setup.2: document IORING_SETUP_SQE128 flag - -Signed-off-by: Jens Axboe -[Ziyang Zhang: note that it is used for uring-cmd by ublk] -Signed-off-by: Ziyang Zhang ---- - man/io_uring_setup.2 | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/man/io_uring_setup.2 b/man/io_uring_setup.2 -index a2a9072..c0da6cd 100644 ---- a/man/io_uring_setup.2 -+++ b/man/io_uring_setup.2 -@@ -149,6 +149,12 @@ entries. The value must be greater than - .IR entries , - and may be rounded up to the next power-of-two. - .TP -+.B IORING_SETUP_SQE128 -+If set, io_uring will use 128-byte SQEs rather than the normal 64-byte sized -+variant. This is a requirement for using -+.B IORING_OP_URING_CMD -+by ublk. -+.TP - .B IORING_SETUP_IDLE_US - If this flag is set, the unit of - .I sq_thread_idle --- -2.31.1 - diff --git a/1026-io_uring.h-Add-missing-fields-for-uring_cmd-in-struc.patch b/1026-io_uring.h-Add-missing-fields-for-uring_cmd-in-struc.patch deleted file mode 100644 index 7fe236e..0000000 --- a/1026-io_uring.h-Add-missing-fields-for-uring_cmd-in-struc.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 7816dac311226fb0d5e6a0cc2b993f0e74c62744 Mon Sep 17 00:00:00 2001 -From: Ziyang Zhang -Date: Fri, 13 Jan 2023 17:06:38 +0800 -Subject: [PATCH 7/7] io_uring.h: Add missing fields for uring_cmd in struct - io_uring_sqe - -Signed-off-by: Ziyang Zhang ---- - src/include/liburing/io_uring.h | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 0af8bc4..1970201 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -22,6 +22,7 @@ struct io_uring_sqe { - union { - __u64 off; /* offset into file */ - __u64 addr2; -+ __u32 cmd_op; - }; - union { - __u64 addr; /* pointer to buffer or iovecs */ -@@ -54,12 +55,14 @@ struct io_uring_sqe { - /* personality to use, if used */ - __u16 personality; - __s32 splice_fd_in; -- __u64 __pad2[2]; -- /* -- * If the ring is initialized with IORING_SETUP_SQE128, then this field -- * contains 64-bytes of padding, doubling the size of the SQE. -- */ -- __u64 __big_sqe_pad[0]; -+ union { -+ __u64 __pad2[2]; -+ /* -+ * If the ring is initialized with IORING_SETUP_SQE128, then -+ * this field is used for 80 bytes of arbitrary command data -+ */ -+ __u8 cmd[0]; -+ }; - }; - - enum { --- -2.31.1 - diff --git a/1027-io_uring.h-fix-IORING_OP_URING_CMD-incompatible-issu.patch b/1027-io_uring.h-fix-IORING_OP_URING_CMD-incompatible-issu.patch deleted file mode 100644 index 1254c25..0000000 --- a/1027-io_uring.h-fix-IORING_OP_URING_CMD-incompatible-issu.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 0db609d820dd6ef52ac73f7297038a9872eb3375 Mon Sep 17 00:00:00 2001 -From: Ziyang Zhang -Date: Mon, 17 Apr 2023 11:14:54 +0800 -Subject: [PATCH] io_uring.h: fix IORING_OP_URING_CMD incompatible issue - -We need to add 12 new io_uring operation codes, such as IORING_OP_SHUTDOWN, -though their actual functionality are not supportted yet. With this action, -the IORING_OP_URING_CMD incompatible issue will go. - -Acked-by: Xiaoguang Wang -Signed-off-by: Ziyang Zhang ---- - src/include/liburing/io_uring.h | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/include/liburing/io_uring.h b/src/include/liburing/io_uring.h -index 1970201..ec86d17 100644 ---- a/src/include/liburing/io_uring.h -+++ b/src/include/liburing/io_uring.h -@@ -139,6 +139,18 @@ enum { - IORING_OP_PROVIDE_BUFFERS, - IORING_OP_REMOVE_BUFFERS, - IORING_OP_TEE, -+ IORING_OP_SHUTDOWN, -+ IORING_OP_RENAMEAT, -+ IORING_OP_UNLINKAT, -+ IORING_OP_MKDIRAT, -+ IORING_OP_SYMLINKAT, -+ IORING_OP_LINKAT, -+ IORING_OP_MSG_RING, -+ IORING_OP_FSETXATTR, -+ IORING_OP_SETXATTR, -+ IORING_OP_FGETXATTR, -+ IORING_OP_GETXATTR, -+ IORING_OP_SOCKET, - IORING_OP_URING_CMD, - - /* this goes last, obviously */ --- -2.31.1 - diff --git a/liburing-1.0.7.tar.bz2 b/liburing-1.0.7.tar.bz2 deleted file mode 100644 index f893e56ae0f7ee911c6c624777c1649e5a547f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86339 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'-qJB`Tg_t{La-Qn@b*Dt{XHv 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�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 C`*42% diff --git a/liburing-2.3.tar.bz2 b/liburing-2.3.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..d2a931f77580ea593d79ae0c12dfb71faf001e55 GIT binary patch literal 197929 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

0H>*$@=b`$bS7aRlljH_KW*~IKE9vX)O`J= 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 jr(+Co%x$v - 2.3-2 +- update to liburing-2.3 to io_uring_passthrough + * Tue Apr 18 2023 Ziyang Zhang - 1.0.7-3.0.4 - fix IORING_OP_URING_CMD incompatible issue -- Gitee From e65fe006afaf9e089e2e136f3af32f03cb1e2902 Mon Sep 17 00:00:00 2001 From: wxiat Date: Tue, 1 Aug 2023 16:24:23 +0800 Subject: [PATCH 2/2] add sw --- liburing-2.3-sw.patch | 36 ++++++++++++++++++++++++++++++++++++ liburing.spec | 6 +++++- 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 liburing-2.3-sw.patch diff --git a/liburing-2.3-sw.patch b/liburing-2.3-sw.patch new file mode 100644 index 0000000..7d0ba5b --- /dev/null +++ b/liburing-2.3-sw.patch @@ -0,0 +1,36 @@ +diff -Nuar liburing-2.3.org/src/include/liburing.h liburing-2.3.sw/src/include/liburing.h +--- liburing-2.3.org/src/include/liburing.h 2023-08-01 16:05:30.912181596 +0800 ++++ liburing-2.3.sw/src/include/liburing.h 2023-08-01 16:13:29.176066653 +0800 +@@ -1,5 +1,5 @@ + /* SPDX-License-Identifier: MIT */ +-#ifndef LIB_URING_H ++# LIB_URING_H + #define LIB_URING_H + + #ifndef _XOPEN_SOURCE +@@ -47,6 +47,16 @@ + #ifndef __NR_io_uring_register + #define __NR_io_uring_register 537 + #endif ++#elif defined __sw_64__ ++#ifndef __NR_io_uring_setup ++#define __NR_io_uring_setup 272 ++#endif ++#ifndef __NR_io_uring_enter ++#define __NR_io_uring_enter 273 ++#endif ++#ifndef __NR_io_uring_register ++#define __NR_io_uring_register 274 ++#endif + #elif defined __mips__ + #ifndef __NR_io_uring_setup + #define __NR_io_uring_setup (__NR_Linux + 425) +@@ -57,7 +67,7 @@ + #ifndef __NR_io_uring_register + #define __NR_io_uring_register (__NR_Linux + 427) + #endif +-#else /* !__alpha__ and !__mips__ */ ++#else /* !__alpha__ and !__sw_64__ and !__mips__ */ + #ifndef __NR_io_uring_setup + #define __NR_io_uring_setup 425 + #endif diff --git a/liburing.spec b/liburing.spec index 3d50b42..91b0242 100644 --- a/liburing.spec +++ b/liburing.spec @@ -1,4 +1,4 @@ -%define anolis_release 2 +%define anolis_release 3 Name: liburing Version: 2.3 @@ -17,6 +17,7 @@ Patch1005: 1005-test-io_uring_passthrough-skip-if-kernel-doesn-t-sup.patch Patch1006: 1006-test-io_uring_passthrough-fix-iopoll-test.patch Patch1007: 1007-test-io_uring_passthrough-cleanup-invalid-submission.patch Patch1008: 1008-test-io_uring_passthrough-skip-test-if-bit-sqe-cqe-s.patch +Patch1009: liburing-2.3-sw.patch # End: Anolis customized patches %description @@ -58,6 +59,9 @@ for the Linux-native io_uring. %{_mandir}/man7/* %changelog +* Tue Aug 1 2023 wxiat - 2.3-3 +- add sw arch + * Tue Jun 20 2023 Joseph Qi - 2.3-2 - update to liburing-2.3 to io_uring_passthrough -- Gitee