diff --git a/conanfile.py b/conanfile.py index 5fdf777..6384f6a 100644 --- a/conanfile.py +++ b/conanfile.py @@ -5,7 +5,7 @@ class IOMgrConan(ConanFile): name = "iomgr" - version = "10.0.5" + version = "10.0.6" homepage = "https://github.com/eBay/IOManager" description = "Asynchronous event manager" topics = ("ebay", "nublox", "aio") diff --git a/src/lib/iomgr.cpp b/src/lib/iomgr.cpp index 25b4195..f64c81e 100644 --- a/src/lib/iomgr.cpp +++ b/src/lib/iomgr.cpp @@ -126,7 +126,8 @@ void IOManager::start(const iomgr_params& params, const thread_state_notifier_t& // Do Poller specific pre interface initialization m_impl->pre_interface_init(); bool new_interface_supported = false; - m_is_uring_capable = check_uring_capability(new_interface_supported); + m_is_uring_capable = + !(IM_DYNAMIC_CONFIG(drive.disable_io_uring)) && check_uring_capability(new_interface_supported); LOGINFOMOD(iomgr, "System has uring_capability={}", m_is_uring_capable); // Create all in-built interfaces here diff --git a/src/lib/iomgr_config.fbs b/src/lib/iomgr_config.fbs index 74de48b..8eaf05f 100644 --- a/src/lib/iomgr_config.fbs +++ b/src/lib/iomgr_config.fbs @@ -27,6 +27,8 @@ table DriveInterface { // TODO: this value should be set by consumer of iomgr, which should be (max_io_size / physical_page_sz) in worst case max_resubmit_cnt: uint32 = 3 (hotswap); // max resubmit cnt of io in case of error + + disable_io_uring: bool = false; // flag to not use io uring even if the env supports it } table PoolEntry {