From d2c31f429b87b476a7f1344d145dad4752a406d4 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 18 Apr 2023 12:32:08 +0200 Subject: 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 --- docs/src/fs.rst | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'docs/src') 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 ` 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. -- cgit v1.2.3