-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Open
Labels
A-tokioArea: The main tokio crateArea: The main tokio crateC-feature-requestCategory: A feature request.Category: A feature request.M-fsModule: tokio/fsModule: tokio/fs
Description
This proposal suggests adding support for io_uring in Tokio's file API. The following provides the details of this proposal.
Proposal: https://hackmd.io/@ScaowLCjTCGW9slfxHgVHw/SkRCb0zCkx
Summary
- This proposal suggests adding support for io_uring in Tokio's file API.
- Initially, the goal is to transparently replace the file API backend with io_uring from a thread pool. Advanced features such as registered fds or registered buffers will probably be addressed in separate proposal.
- The application of io_uring to network I/O is outside the scope of this proposal.
- The implementation will happen incrementally.
Current Status
- Add initial infrastructure code (Changes to the driver, add cfg,
Opfuture, etc) - Support io_uring in various fs operations
-
fs::OpenOptions(fs: add io_uringopenoperation #7321) -
fs::write( fs: support io_uring infs::write#7567) -
File::open()(fs: use FileOptions inside fs::File to support uring #7617) -
fs::read(fs: support io_uring withtokio::fs::read#7696) -
File::create() -
AsyncRead for File -
AsyncWrite for File(Implement uring inAsyncWrite for fs::File#7713) -
statx(2)(Hard to implementMetadada, see fs: support io_uring in fs::metadata (statx) #7616) - Directory related APIs
-
fs::set_permissions() - other
fsAPIs
-
- Further improvements, such as:
- Sharding rings in the multi-threaded runtime
- Smarter batching logic for submission
- Exploring the possibilities of using advanced features, such as registered buffers or registered files
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-tokioArea: The main tokio crateArea: The main tokio crateC-feature-requestCategory: A feature request.Category: A feature request.M-fsModule: tokio/fsModule: tokio/fs