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

Use io_uring where sensible #176

Open
Panke opened this issue Mar 26, 2021 · 1 comment
Open

Use io_uring where sensible #176

Panke opened this issue Mar 26, 2021 · 1 comment

Comments

@Panke
Copy link
Contributor

Panke commented Mar 26, 2021

I am investigating the usage of io_uring as a backend for eventcore. Let's gather all discussion surrounding it in this issue.

To the best of my understanding there are two approaches to do this.

  1. Integrate it into the posix event loop as an additional event source similar to timers. Wake up the posix event loop by registering an eventfd that fires, when io_uring completions are available. This is done in the outstanding PR.
  2. Replace the posix event loop with an io_uring based event loop completely. Since io_uring does not support everything at the moment (notably signalfd does not work), we have to support epoll as well via IO_URING_OP_POLL_ADD.
@s-ludwig
Copy link
Member

This seems to lend itself nicely for starting with 1, switching to 2 once a certain level of completeness is reached (IMO, at least sockets + files + events + pipes). Timers would probably go together with the switch, but could also stay implemented with the current approach of limiting the wait operation according to the earliest timer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants