Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Linux: full io_uring I/O #1831

Open
weissi opened this issue Apr 28, 2021 · 4 comments
Open

Linux: full io_uring I/O #1831

weissi opened this issue Apr 28, 2021 · 4 comments
Labels
area/performance Improvements to performance. platform/linux Linux platform specific issues.

Comments

@weissi
Copy link
Member

weissi commented Apr 28, 2021

With @hassila's fantastic work in #1804 (and beyond), the path for SwiftNIO on io_uring has begun. To fully leverage all the potential benefits, we should at some point offer SwiftNIO doing I/O through io_uring (with #1804 we're doing "uring lite" which uses io_uring only for eventing but the regular syscalls for the actual I/O).

For inspiration, there is of course netty-incubator-transport-io_uring.

To facilitate development (and maybe also spike out #1829) we could start this off in a separate repository which would mean we can break API more easily and aren't bound to NIO's pretty vast Swift version compatibilities. This will very likely require new Channel and EventLoop types anyway so a separate repository may not be too bad. The biggest concern is probably the inability to reach NIO internals for which we should come up with a story (maybe via @_spi)

@weissi
Copy link
Member Author

weissi commented Apr 28, 2021

CC @Lukasa / @hassila sorry, just a quick blurb here to have a place to discuss when the time comes.

@hassila
Copy link
Contributor

hassila commented Apr 28, 2021

Also related to what we discussed in #1805.

@weissi weissi added area/performance Improvements to performance. platform/linux Linux platform specific issues. labels Apr 28, 2021
@ser-0xff
Copy link
Contributor

The initial POC of how it can be done is here #2357
Can discuss it in the PR.

@hassila
Copy link
Contributor

hassila commented Feb 15, 2023

An update of state of io_uring & networking from Jens Axboe:

https://kernel.dk/io_uring%20and%20networking%20in%202023.pdf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/performance Improvements to performance. platform/linux Linux platform specific issues.
Projects
None yet
Development

No branches or pull requests

3 participants