diff options
author | Santiago Gimeno <santiago.gimeno@gmail.com> | 2024-08-06 22:10:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-06 22:10:13 +0200 |
commit | e78e29c231481683c7e72450eeeb1b75b1109b2c (patch) | |
tree | e6b6571cbdcbeec64496f3a9aa98b3adfa370309 /src/unix/loop.c | |
parent | 9b3b61f606cbc4df1680a1aa08959c91023d99eb (diff) | |
download | libuv-e78e29c231481683c7e72450eeeb1b75b1109b2c.tar.gz libuv-e78e29c231481683c7e72450eeeb1b75b1109b2c.zip |
linux: disable SQPOLL io_uring by default (#4492)
The SQPOLL io_uring instance wasn't providing consistent behaviour to
users depending on kernel versions, load shape, ... creating issues
difficult to track and fix. Don't use this ring by default but allow
enabling it by calling `uv_loop_configure()` with
`UV_LOOP_ENABLE_IO_URING_SQPOLL`.
Diffstat (limited to 'src/unix/loop.c')
-rw-r--r-- | src/unix/loop.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/unix/loop.c b/src/unix/loop.c index a9468e8e..179ee999 100644 --- a/src/unix/loop.c +++ b/src/unix/loop.c @@ -217,6 +217,14 @@ int uv__loop_configure(uv_loop_t* loop, uv_loop_option option, va_list ap) { return 0; } +#if defined(__linux__) + if (option == UV_LOOP_USE_IO_URING_SQPOLL) { + loop->flags |= UV_LOOP_ENABLE_IO_URING_SQPOLL; + return 0; + } +#endif + + if (option != UV_LOOP_BLOCK_SIGNAL) return UV_ENOSYS; |