From ffd4e943b953b76821fea8859bfed4c5a8691955 Mon Sep 17 00:00:00 2001 From: wangmy Date: Mon, 11 Jul 2022 16:45:15 +0800 Subject: liburing: upgrade 2.1 -> 2.2 0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch removed since it's included in 2.2. License-Update: Add "kernel version dependency" Add affect of "ulimit settings" Changelog: =========== - Support non-libc builds. - Optimized syscall handling for x86-64/x86/aarch64. - Enable non-lib function calls for fast path functions. - Add support for multishot accept. - io_uring_register_files() will set RLIMIT_NOFILE if necessary. - Add support for registered ring fds, io_uring_register_ring_fd(), reducingthe overhead of an io_uring_enter() system call. - Add support for the message ring opcode. - Add support for newer request cancelation features. - Add support for IORING_SETUP_COOP_TASKRUN, which can help reduce the overhead of io_uring in general. Most applications should set this flag, see the io_uring_setup.2 man page for details. - Add support for registering a sparse buffer and file set. - Add support for a new buffer provide scheme, see io_uring_register_buf_ring.3 for details. - Add io_uring_submit_and_wait_timeout() for submitting IO and waiting for completions with a timeout. - Add io_uring_prep_{read,write}v2 prep helpers. - Add io_uring_prep_close_direct() helper. - Add support for SQE128 and CQE32, which are doubly sized SQE and CQE rings. This is needed for some cases of the new IORING_OP_URING_CMD, notably for NVMe passthrough. - ~5500 lines of man page additions, including adding ~90 new man pages. - Synced with the 5.19 kernel release, supporting all the features of 5.19 and earlier. - 24 new regression test cases, and ~7000 lines of new tests in general. - General optimizations and fixes. Signed-off-by: Wang Mingyu Signed-off-by: Khem Raj --- ...scall-wrappers-instead-of-using-syscall-2.patch | 59 ---------------------- meta-oe/recipes-support/liburing/liburing_2.1.bb | 31 ------------ meta-oe/recipes-support/liburing/liburing_2.2.bb | 29 +++++++++++ 3 files changed, 29 insertions(+), 90 deletions(-) delete mode 100644 meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch delete mode 100644 meta-oe/recipes-support/liburing/liburing_2.1.bb create mode 100644 meta-oe/recipes-support/liburing/liburing_2.2.bb (limited to 'meta-oe/recipes-support/liburing') diff --git a/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch b/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch deleted file mode 100644 index 2777a94045..0000000000 --- a/meta-oe/recipes-support/liburing/liburing/0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch +++ /dev/null @@ -1,59 +0,0 @@ -From cb350a8989adbd65db574325d9a86d5437d800da Mon Sep 17 00:00:00 2001 -From: Guillem Jover -Date: Mon, 13 Sep 2021 23:56:08 +0200 -Subject: [PATCH] test: Use syscall wrappers instead of using syscall(2) directly - -Some of these syscalls have different entry points depending on the -architecture. Use the wrappers to avoid having to reimplement them -portably. - -Fixes build failures on Debian armel and armhf builds. - -Upstream-Status: Backport [https://github.com/kraj/liburing/commit/cb350a8989adbd65db574325d9a86d5437d800da] -Signed-off-by: Guillem Jover ---- - test/sqpoll-cancel-hang.c | 7 ++----- - 1 file changed, 2 insertions(+), 5 deletions(-) - -diff --git a/test/sqpoll-cancel-hang.c b/test/sqpoll-cancel-hang.c -index c9032c8..e561478 100644 ---- a/test/sqpoll-cancel-hang.c -+++ b/test/sqpoll-cancel-hang.c -@@ -4,7 +4,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -29,8 +28,6 @@ static uint64_t current_time_ms(void) - - #define IORING_OFF_SQES 0x10000000ULL - --#define sys_io_uring_setup 425 -- - static void kill_and_wait(int pid, int* status) - { - kill(-pid, SIGKILL); -@@ -53,7 +50,7 @@ a5) - void* vma2 = (void*)a3; - void** ring_ptr_out = (void**)a4; - void** sqes_ptr_out = (void**)a5; -- uint32_t fd_io_uring = syscall(sys_io_uring_setup, entries, setup_params); -+ uint32_t fd_io_uring = __sys_io_uring_setup(entries, setup_params); - uint32_t sq_ring_sz = setup_params->sq_off.array + - setup_params->sq_entries * sizeof(uint32_t); - uint32_t cq_ring_sz = setup_params->cq_off.cqes + -@@ -135,7 +132,7 @@ void trigger_bug(void) - } - int main(void) - { -- syscall(__NR_mmap, 0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul); -+ mmap((void *)0x20000000ul, 0x1000000ul, 7ul, 0x32ul, -1, 0ul); - int pid = fork(); - if (pid < 0) - exit(1); --- -2.33.1 - diff --git a/meta-oe/recipes-support/liburing/liburing_2.1.bb b/meta-oe/recipes-support/liburing/liburing_2.1.bb deleted file mode 100644 index da8e6d3338..0000000000 --- a/meta-oe/recipes-support/liburing/liburing_2.1.bb +++ /dev/null @@ -1,31 +0,0 @@ -SUMMARY = "This is the io_uring library, liburing." -DESCRIPTION = "liburing provides helpers to setup and teardown io_uring \ -instances, and also a simplified interface for applications that don't need \ -(or want) to deal with the full kernel side implementation." -HOMEPAGE = "https://github.com/axboe/liburing" -BUGTRACKER = "https://github.com/axboe/liburing/issues" -SECTION = "libs" - -LICENSE = "LGPL-2.1-only | MIT" -LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=d51b5805e2a675685e6a66ca50904cf9" - -SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https \ - file://0001-test-Use-syscall-wrappers-instead-of-using-syscall-2.patch \ - " -SRC_URI:append:libc-musl:riscv64 = " file://0001-do-not-build-examples.patch " -SRC_URI:append:libc-musl:riscv32 = " file://0001-do-not-build-examples.patch " -SRCREV = "41a61c97c2e3df4475c93fdf5026d575ce3f1377" - -S = "${WORKDIR}/git" - -DEPENDS:append:libc-musl = " libucontext" -XCFLAGS = "-pthread" -XCFLAGS:append:libc-musl = " -lucontext" - -EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'" -do_configure() { - ${S}/configure --prefix=${prefix} --libdir=${libdir} --libdevdir=${libdir} --mandir=${mandir} --datadir=${datadir} --includedir=${includedir} -} -do_install () { - oe_runmake install DESTDIR=${D} -} diff --git a/meta-oe/recipes-support/liburing/liburing_2.2.bb b/meta-oe/recipes-support/liburing/liburing_2.2.bb new file mode 100644 index 0000000000..8cc7d74f9f --- /dev/null +++ b/meta-oe/recipes-support/liburing/liburing_2.2.bb @@ -0,0 +1,29 @@ +SUMMARY = "This is the io_uring library, liburing." +DESCRIPTION = "liburing provides helpers to setup and teardown io_uring \ +instances, and also a simplified interface for applications that don't need \ +(or want) to deal with the full kernel side implementation." +HOMEPAGE = "https://github.com/axboe/liburing" +BUGTRACKER = "https://github.com/axboe/liburing/issues" +SECTION = "libs" + +LICENSE = "LGPL-2.1-only | MIT" +LIC_FILES_CHKSUM = "file://README;beginline=41;endline=44;md5=2b0e9926530c269f5ae95560370195af" + +SRC_URI = "git://github.com/axboe/liburing.git;branch=master;protocol=https" +SRC_URI:append:libc-musl:riscv64 = " file://0001-do-not-build-examples.patch " +SRC_URI:append:libc-musl:riscv32 = " file://0001-do-not-build-examples.patch " +SRCREV = "dda4848a9911120a903bef6284fb88286f4464c9" + +S = "${WORKDIR}/git" + +DEPENDS:append:libc-musl = " libucontext" +XCFLAGS = "-pthread" +XCFLAGS:append:libc-musl = " -lucontext" + +EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} -I${S}/include -DWITHOUT_XATTR' 'LDFLAGS=${LDFLAGS}' 'XCFLAGS=${XCFLAGS}' 'BUILDDIR=${S}'" +do_configure() { + ${S}/configure --prefix=${prefix} --libdir=${libdir} --libdevdir=${libdir} --mandir=${mandir} --datadir=${datadir} --includedir=${includedir} +} +do_install () { + oe_runmake install DESTDIR=${D} +} -- cgit v1.2.3-54-g00ecf