From 171ae9d4b1ac33d54dd22ad96828d02c508e609e Mon Sep 17 00:00:00 2001 From: Florian Fischer <florian.fischer@muhq.space> Date: Fri, 11 Mar 2022 18:17:17 +0100 Subject: [PATCH] depend on liburing 2.2 Liburing 2.2 and Linux 5.18 support IORING_REGISTER_RING_FDS, preventing the fget(ring_fd) overhead for each io_uring_enter call, as well as IORING_OP_MSG_RING, greatly simplifying the IO-based sleep strategy code. --- emper/io/Future.cpp | 2 +- meson.build | 2 +- subprojects/liburing.wrap | 12 +++--------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/emper/io/Future.cpp b/emper/io/Future.cpp index 329386c9..39b5f479 100644 --- a/emper/io/Future.cpp +++ b/emper/io/Future.cpp @@ -180,7 +180,7 @@ void CancelWrapper::prepareSqeInternal(struct io_uring_sqe* sqe) { if constexpr (!emper::IO_SINGLE_URING) { assert(future.submitter == IoContext::workerIo); } - void* user_data = IoContext::createFutureTag(future); + uint64_t user_data = IoContext::createFutureTag(future); io_uring_prep_cancel(sqe, user_data, 0); } } // namespace emper::io diff --git a/meson.build b/meson.build index d0893307..bbc0184e 100644 --- a/meson.build +++ b/meson.build @@ -13,7 +13,7 @@ thread_dep = dependency('threads') conf_data = configuration_data() use_bundled_deps = get_option('use_bundled_deps') -liburing_version = '2.1' +liburing_version = '2.2' uring_dep = dependency('liburing', version: liburing_version, required: use_bundled_deps == 'never') if not uring_dep.found() or use_bundled_deps == 'always' message('liburing ' + liburing_version + ' not found in system, using liburing subproject') diff --git a/subprojects/liburing.wrap b/subprojects/liburing.wrap index b3c66d52..0245dd82 100644 --- a/subprojects/liburing.wrap +++ b/subprojects/liburing.wrap @@ -1,12 +1,6 @@ -[wrap-file] -directory = liburing-liburing-2.1 -source_url = https://github.com/axboe/liburing/archive/refs/tags/liburing-2.1.tar.gz -source_filename = liburing-2.1.tar.gz -source_hash = f1e0500cb3934b0b61c5020c3999a973c9c93b618faff1eba75aadc95bb03e07 -patch_filename = liburing_2.1-1_patch.zip -patch_url = https://wrapdb.mesonbuild.com/v2/liburing_2.1-1/get_patch -patch_hash = aaeb2be1f5eacf4f41e0537aa02154486e0729a3395d2e832de7657ab0b56290 +[wrap-git] +url=https://github.com/fischerling/liburing.git +revision=7cef94c598c9137b8d98e2d361f0e6ed1e869919 [provide] uring = uring - -- GitLab