diff options
author | Ben Noordhuis <info@bnoordhuis.nl> | 2023-04-18 12:32:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-18 12:32:08 +0200 |
commit | d2c31f429b87b476a7f1344d145dad4752a406d4 (patch) | |
tree | 1fe1a600c7f93871a2b57a3fe6d7ef26e2494e6b /docs/src | |
parent | cb5da592268551592f86b291652193f23270a8cb (diff) | |
download | libuv-d2c31f429b87b476a7f1344d145dad4752a406d4.tar.gz libuv-d2c31f429b87b476a7f1344d145dad4752a406d4.zip |
linux: introduce io_uring support (#3952)
Add io_uring support for several asynchronous file operations:
- read, write
- fsync, fdatasync
- stat, fstat, lstat
io_uring is used when the kernel is new enough, otherwise libuv simply
falls back to the thread pool.
Performance looks great; an 8x increase in throughput has been observed.
This work was sponsored by ISC, the Internet Systems Consortium.
Fixes: https://github.com/libuv/libuv/issues/1947
Diffstat (limited to 'docs/src')
-rw-r--r-- | docs/src/fs.rst | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/docs/src/fs.rst b/docs/src/fs.rst index fb27a3b9..e7522d59 100644 --- a/docs/src/fs.rst +++ b/docs/src/fs.rst @@ -12,6 +12,12 @@ otherwise it will be performed asynchronously. All file operations are run on the threadpool. See :ref:`threadpool` for information on the threadpool size. +Starting with libuv v1.45.0, some file operations on Linux are handed off to +`io_uring <https://en.wikipedia.org/wiki/Io_uring>` when possible. Apart from +a (sometimes significant) increase in throughput there should be no change in +observable behavior. Libuv reverts to using its threadpool when the necessary +kernel features are unavailable or unsuitable. + .. note:: On Windows `uv_fs_*` functions use utf-8 encoding. |