Skip to content

Conversation

@XAMPPRocky
Copy link
Member

This PR fixes #1183 by refactoring the network listening code to allow for falling all the way back to epoll on Linux at runtime.

As part of that I've consolidated all our different IO backends into a single net::io module, and then I made a module for each of our different kinds of backends (polling, completion, NIC) and moved platform specific code there, that way more of the code can be compiled on macOS and Windows which makes development easier with more of the logic being shared.

This should be a bit tidier with #1185 but I wanted to fix #1183 first.

Copy link
Member

@Jake-Shadle Jake-Shadle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO it's a bit suspect to fallback to epoll by default if io-uring is unavailable due to potential performance loss that the user won't be made aware of.

@XAMPPRocky
Copy link
Member Author

due to potential performance loss that the user won't be made aware of.

They will be aware because we log an error when io-uring fails, so they see that it failed.

@XAMPPRocky XAMPPRocky requested a review from glindstedt as a code owner May 5, 2025 07:03
@XAMPPRocky XAMPPRocky force-pushed the ep/io-refactor branch 8 times, most recently from d6f914d to 069cdeb Compare May 7, 2025 11:38
@quilkin-bot
Copy link
Collaborator

Build Failed 😭

Build Id: f122d74e-f3e1-492f-a3f4-d1bbd4059ceb

Status: FAILURE

To get permission to view the Cloud Build view, join the quilkin-discuss Google Group.

Filter with the Git Commit 46a3028 within us-docker.pkg.dev/quilkin/ci//quilkin to see if a development image is available from this build, and can be used for debugging purposes.

Development images are retained for at least 30 days.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

io-uring syscalls blocked by default on containerd > 1.7.0 security profiles

3 participants