-
Notifications
You must be signed in to change notification settings - Fork 27
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
Collaboration / Merge with Ketuvim #62
Comments
I forgot to mention that we are also working with the rust-os project to define memory layout compatible types for hardware features (like register flags, etc.). These should be reusable for things like register tweaking. |
Hey @npmccallum I'll take a look at your code, sounds interesting. We definitely don't want to re-invent the wheel where there is no need to. If we could merge the projects/work together that'd be great. I would also recommend to drop an email to the rust-vmm email list as it has a larger audience. |
rust-vmm email list: [email protected] |
@andreeaflorescu Yes. However, we have one crate that does the job of multiple of your crates. So there isn't exactly a one-to-one mapping. |
@npmccallum what other crates are you referring to? |
We cover at least |
(Some of this is stuff I'm about to push.) |
The `KVM_MEM_ENCRYPT_OP` ioctl is used to access AMD SEV (Secure Encrypted Virtualization) feature. When enabled, memory contents of a VM will be transparently encrypted with a key unique to that VM. This patch added implementation, documentation and related tests for the following SEV commands: - KVM_SEV_INIT - KVM_SEV_LAUNCH_START - KVM_SEV_LAUNCH_UPDATE_DATA - KVM_SEV_LAUNCH_MEASURE - KVM_SEV_LAUNCH_FINISH - KVM_SEV_LAUNCH_SECRET Note: this work is based on enarx/ketuvim. See [1]_ for details. [1] rust-vmm/community#62 Signed-off-by: Kailun Qin <[email protected]>
Hi @npmccallum and @andreeaflorescu , |
@kailun-qin thanks for the PR! I'll take a look in a couple of days. I need to ramp up on what's up with SEV first :)) |
Hey @kailun-qin, I looked over your PR too, there's one thing that stands out in particular - it introduces a dependency of the
@npmccallum do you have any plans to publish this crate (and/or others 😃) from |
@aghecenco Yes. We are stabilizing |
@aghecenco Also, I think our upcoming changes to the |
Thank you all for the feedbacks and review comments. |
This is now the case for the |
I'm the author of the Ketuvim project. We currently provide an API for KVM with an emphasis on type safety. However, we are still young so we haven't fully accomplished this goal yet. Perhaps we could find a way to merge the projects or at least collaborate?
One major difference between our two approaches is that rust-vmm publicly uses C types generated with bindgen. Ketuvim's strategy has been to use bindgen to generate initial structures and then remove all public access and add safe methods and types with the same memory layout.
Another (similar) strategy we have taken is to carefully define wrapper types that preserve mutability and lifetimes. This allows the hypervisor to work without unsafe blocks.
One major benefit of Ketuvim is that we have full, working AMD SEV support via the
sev
crate (of which I'm also the author). Perhaps this crate could be merged into rust-vmm too?Anyway, let me know your thoughts. What is the right way to move forward?
The text was updated successfully, but these errors were encountered: