diff --git a/emper/io/IoContext.cpp b/emper/io/IoContext.cpp index df9eb29b5f8cc1e30dcd798a2101a0dffda122c3..627794785ed2844dd8359cdde8c7db36648ff99e 100644 --- a/emper/io/IoContext.cpp +++ b/emper/io/IoContext.cpp @@ -12,7 +12,6 @@ #include <cerrno> // for errno, ECANCELED, EBUSY, EAGAIN, EINTR #include <chrono> // for nanoseconds #include <cstdio> // for perror -#include <cstdlib> // for exit #include <cstring> // for memset #include <memory> // for allocator @@ -319,12 +318,14 @@ IoContext::IoContext(size_t uring_entries) { auto ret = io_uring_queue_init_params(uring_entries, &ring, ¶ms); if (ret < 0) { - // skip tests if we are not able to setup an io_uring - perror("io_uring_queue_init failed"); - exit(77); + DIE_MSG_ERRNO("io_uring_queue_init failed"); } LOGD("Ring fd is " << ring.ring_fd); + if (!(params.features & IORING_FEAT_NODROP)) { + LOGW("kernel das not support IORING_FEAT_NODROP. We may loose IO requests"); + } + if constexpr (emper::IO_URING_SQPOLL) { // included in liburing since 41e0d97cb23667df000ce76789297f4e06134a28 #ifndef IORING_FEAT_SQPOLL_NONFIXED