-
Notifications
You must be signed in to change notification settings - Fork 74
Update x86_64 and arm64 bindings to v5.13 #42
Conversation
@andreeaflorescu I know I'm removing lots of things through this PR, but I thought I'd give it a try to see what y'all think about it. |
I was thinking we can still keep the arm & x86 bindings. I am a bit unsure who is using this crate, I saw some other dependencies on it from project I was not aware of before. Is it too much trouble to keep them? Can you also test this with kvm-ioctls to be sure it still works? We can open an RFC PR in kvm-ioctls to patch kvm-bindings to use your fork and do a dry run of the tests. We also need to check that this still works in the Firecracker use case, but I would assume it does. I think it would be better to split the PR in multiple commits:
|
No worries I can keep them. That being said, I couldn't find
Yes I can open a draft PR in kvm-ioctls based on my fork.
Can you try this out on your side?
Yes that sounds like a good plan :) |
Hi both, I spent some time digging into the patchwork, and found that the arm32 hypervisor support in kvm has been removed - It explains why @sboeuf cannot found the So I think the idea is you cannot create a 32-bit kvm host, but you always can start a 32-bit kvm guest on 64-bit host. Therefore I think yes? |
@MrXinWang thanks for checking. So I'll do the same thing we do for x86 (which means we use the same bindings for both 32 and 64 bits). |
As I am not familiar with x86 system (sorry...), maybe for the x86 system @andreeaflorescu can give some input or suggestions :)) Thanks! |
@andreeaflorescu #43 is the first step (cleaning up 4.14). |
I'll look into the changes, but I am going on vacation starting with Monday, and I have a few other things I need to get done by then. I'll let you know about my progress. My plan is to:
|
f963d7b
to
78315e8
Compare
@andreeaflorescu ok this PR is up to date now, based on the previous discussions. Take your time to test it on Firecracker, and once you can confirm it is working fine, we can move forward and merge it (when you're back from your vacation). |
Here is the |
8c479f5
to
e680485
Compare
@andreeaflorescu if you agree I can simply close #43 and we can merge (when ready) this one directly since it includes #43. |
Ah, I mistakenly approved this one, I meant to approve the other one. I didn't yet got to integrate the changes in Firecracker. I just did a read up on the diffs. It looks like some structures we're using in Firecracker are changing state (like the kvm_irqchip), but I believe they can be easily addressed. @alexandruag said he'll take a look at this one as well while I am off. |
We can also do as you propose. |
Looks like I am not fully back from vacation 🤣 I notice now that you're adding the version in the docs, I was just looking at the wrong PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did a re-run with the latest version of bindgen. My comments reflect the changes. I think it might be worth it to use the latest version to generate the bindings as there are quite a few more structures that can derive partialeq & debug and those are helpful when writing tests/debugging.
I also finished my analysis of changes on both x86_64 and aarch64, and I'll publish it (still need to figure out where/how 😆); tl;dr: the changes look safe.
We still need to integrate the changes with versionize & firecracker, but I am not expecting any problems.
@andreeaflorescu sounds good, I'll update the PR with bindings generated from |
This patch makes the bindings v4.20 the only available version for all architectures. Because of this unique possibility, the code is simplified, removing the specific Rust features to pick a specific bindings version. Signed-off-by: Sebastien Boeuf <[email protected]>
@andreeaflorescu PR updated! Please have a look. |
Hello, I have tested it with Firecracker, so far all integration tests are passing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The coverage also needs to be updated.
Once that is fixed, I think we can merge the PR.
Thanks, @AlexandruCihodaru! |
Replace the v4.20 bindings with the up to date v5.13 ones. The `arm` architecture is now covered with the `arm64` bindings the same way both `x86` and `x86_64` are covered by the bindings from `x86_64`. Signed-off-by: Sebastien Boeuf <[email protected]>
@andreeaflorescu PR updated accordingly :) |
@andreeaflorescu can we find someone else to approve and merge this PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes look good!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, apologies for the delay.
This patch is a proposal to simplify kvm-bindings crate, moving to the
latest Linux version 5.13.
First thing, instead of maintaining multiple versions (4.14, 4.20 and
now 5.13), this patch only keeps 5.13, and moving forward, we would only
keep the most up to date version.
Signed-off-by: Sebastien Boeuf [email protected]