Patch 1 adds support for IORING_SETUP_NO_SQARRAY, i.e. not using and mmaping the first SQ indirection level sq_array. Patch 2 defaults liburing to using IORING_SETUP_NO_SQARRAY. If it's not supported by the kernel we'll fallback to a setup without the flag. If the user specifically asks for IORING_SETUP_NO_SQARRAY, it'll also fail if the feature is unsupported. Note: two tests need sqarray, and so there is a new helper __io_uring_queue_init_params(), which is not static but not exported by the library. Further, we don't declare it in liburing.h but only under tests to prevent misuse. Pavel Begunkov (2): setup: add IORING_SETUP_NO_SQARRAY support setup: default to IORING_SETUP_NO_SQARRAY src/include/liburing/io_uring.h | 5 ++++ src/setup.c | 42 +++++++++++++++++++++++++-------- test/accept-reuse.c | 2 +- test/helpers.h | 13 ++++++++++ test/io_uring_enter.c | 7 ++++-- 5 files changed, 56 insertions(+), 13 deletions(-) -- 2.41.0