From 4e77840ee531d14482978b5fc9e63f42e5bb53cd Mon Sep 17 00:00:00 2001 From: PThorpe92 Date: Sun, 29 Dec 2024 15:24:53 -0500 Subject: [PATCH] Setup io_uring with sqpoll enabled --- core/io/linux.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/io/linux.rs b/core/io/linux.rs index e765cc8ac..70de8ef79 100644 --- a/core/io/linux.rs +++ b/core/io/linux.rs @@ -11,6 +11,7 @@ use std::rc::Rc; use thiserror::Error; const MAX_IOVECS: usize = 128; +const SQPOLL_IDLE: u32 = 1000; #[derive(Debug, Error)] enum LinuxIOError { @@ -49,7 +50,13 @@ struct InnerLinuxIO { impl LinuxIO { pub fn new() -> Result { - let ring = io_uring::IoUring::new(MAX_IOVECS as u32)?; + let ring = match io_uring::IoUring::builder() + .setup_sqpoll(SQPOLL_IDLE) + .build(MAX_IOVECS as u32) + { + Ok(ring) => ring, + Err(_) => io_uring::IoUring::new(MAX_IOVECS as u32)?, + }; let inner = InnerLinuxIO { ring: WrappedIOUring { ring,