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

Correctly handle coop taskrun #7

Open
wants to merge 13 commits into
base: main
Choose a base branch
from
Open

Conversation

jrahman
Copy link

@jrahman jrahman commented Mar 15, 2024

When coop taskrun or defer taskrun are set to defer running completion processing until the next system call (coop) or the start of the next io_uring_enter() call (defer), the taskrun flag needs to be checked. The kernel will set the taskrun flag if there are deferred completions that need additional processing in kernel space before they're available to the application. Here we update the check in the submission path to ensure that flag is checked and GETEVENTS is passed into io_uring_enter() when needed.

Port of tokio-rs/io-uring#263 from the Tokio io-uring repo.

sunfishcode and others added 13 commits December 6, 2023 13:01
Co-authored-by: Jordan Isaacs <[email protected]>
Just export the types needed by the public API.
When coop taskrun or defer taskrun are set to defer running completion processing
until the next system call (coop) or the start of the next io_uring_enter()
call (defer), the taskrun flag needs to be checked. The kernel will set the taskrun
flag if there are deferred completions that need additional processing in kernel
space before they're available to the application. Here we update the check in the
submission path to ensure that flag is checked and GETEVENTS is passed into
io_uring_enter() when needed
@sunfishcode
Copy link
Collaborator

Thanks for the patch! I have recently rebased this repo on the latest tokio/master branch; would you mind rebasing your patch? Also, could you run cargo fmt on it?

@sunfishcode
Copy link
Collaborator

Also, could you also add a testcase to io-uring-test that demonstrates what this feature does?

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

Successfully merging this pull request may close these issues.

3 participants