-
Notifications
You must be signed in to change notification settings - Fork 207
Linux 6.15 io_uring #1485
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
base: main
Are you sure you want to change the base?
Linux 6.15 io_uring #1485
Conversation
I've now merged that and released linux-raw-sys 0.10.0.
No, it's a problem. The type is |
Great. I'll update and remove the temporary override.
Yeah, that sounds like a good approach. I'll update the PR with a new commit that adds those hidden extra variants. I'm also working on a PR (not submitted yet) for rustix-uring that adds all the missing ops and which needs some additions to the unions for io_uring_sqe. I think it makes sense to include those changes in this PR also in another commit. I'll do that and link the downstream PR once it's ready. |
This prevents issues with partial operations, such as debug printing, which can lead to a match failure and program crash if the user upgrades the kernel and the new operations are not already covered by the enum. Related: bytecodealliance#1485
a26c82e
to
1b1eb8a
Compare
I've updated the PR with the extra hidden variants and also added some changes needed downstream as mentioned. |
This prevents issues with partial operations, such as debug printing, which can lead to a match failure and program crash if the user upgrades the kernel and the new operations are not already covered by the enum. Related: bytecodealliance#1485
1b1eb8a
to
a9b7738
Compare
@sunfishcode Can you take a look at this and merge along with the related PRs? Will require some coordination unless you are willing to modify the PRs directly and drop the commits which add the crate overrides, which would probably be easiest. This fixes the crash on Kernel 6.15 and also enables all of the missing upstream: downstream: |
This PR adds Linux 6.15 io_uring ops to
IoringOp
.Related: sunfishcode/linux-raw-sys#156
I've included a temporary
crates.io
override for the corresponding upstream PR forlinux-raw-sys
.Note that this PR also fixes a SIGSEGV crash that occurs if you try to debug print
io_uring_probe
orIoringOp
on a Linux 6.15 system with current releaserustix
.It would be nice to gracefully handle missing constants for new ops, since just upgrading the kernel could cause a previously working program to crash, but it seems like it might require quite a lot of refactoring to achieve that. I guess it would need something like a catch-all
Unknown
variant and an explicitFrom
impl to convert from numeric repr.Is it generally understood that this is a problem to be aware of?