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

Support PVH boot protocol #3

Closed
bonzini opened this issue Jun 21, 2019 · 8 comments · Fixed by #11
Closed

Support PVH boot protocol #3

bonzini opened this issue Jun 21, 2019 · 8 comments · Fixed by #11

Comments

@bonzini
Copy link
Member

bonzini commented Jun 21, 2019

The PVH boot protocol allows loading an uncompressed kernel instead of a bzImage. This is faster as it removes decompression from the total startup time.

@sameo
Copy link
Collaborator

sameo commented Aug 1, 2019

@bonzini For direct kernel boot (no fw), what does PVH bring compared to our current vmlinux loader?
Can it be seen as a more generic way of loading any ELF kernel image (e.g. FreeBSD)?

@aljimenezb
Copy link
Contributor

I am working on a PoC implementing PVH boot support on Firecracker. Currently debugging an early boot issue, will send a request for code comments once I have a working prototype.

@bonzini
Copy link
Member Author

bonzini commented Aug 1, 2019

PVH has a much smaller set of boot parameters than the Linux boot protocol (just the e820 memory map, basically), so it's simpler to launch than a generic vmlinux.

Other OSes may indeed support PVH more easily than the Linux boot protocol, but typically they only enable PVH for Xen support and do Xen-specific stuff in the PVH boot code. However, in principle it would be possible to add support for PVH-on-KVM to them, as well.

@sameo
Copy link
Collaborator

sameo commented Aug 2, 2019

PVH has a much smaller set of boot parameters than the Linux boot protocol (just the e820 memory map, basically), so it's simpler to launch than a generic vmlinux.

Ok, I see, thanks.

@sameo
Copy link
Collaborator

sameo commented Aug 2, 2019

I am working on a PoC implementing PVH boot support on Firecracker. Currently debugging an early boot issue, will send a request for code comments once I have a working prototype.

@aljimenezb Cool. Are you planning to contribute this code to the rust-vmm crate as well?

@aljimenezb
Copy link
Contributor

I am working on a PoC implementing PVH boot support on Firecracker. Currently debugging an early boot issue, will send a request for code comments once I have a working prototype.

@aljimenezb Cool. Are you planning to contribute this code to the rust-vmm crate as well?

@sameo Yes, that is the goal.

@rbradford
Copy link
Collaborator

@aljimenezb Any update on your PVH work?

@aljimenezb
Copy link
Contributor

@aljimenezb Any update on your PVH work?

Hi @rbradford. I have prototype code that extracts the PVH entry point from the ELF note in the kernel binary. I have also made changes to configure the initial register state and memory map, but the guest dies right after jumping to the entry point, so I am currently working on debugging that. I was planning to ask for advice on the firecracker and/or rust-vmm Slack, maybe I can ping you there?

aljimenezb added a commit to aljimenezb/cloud-hypervisor that referenced this issue Feb 25, 2020
Use the updated version of linux-loader from the personal GitHub repo:
https://github.com/aljimenezb/linux-loader/tree/pvh-boot

that provides support for parsing PVH ELFnote from the kernel binary.
This is necessary for testing until the following issue
rust-vmm/linux-loader#3
is closed in the linux-loader crate, at which point this commit should
be removed.

Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
aljimenezb added a commit to aljimenezb/cloud-hypervisor that referenced this issue Mar 10, 2020
Use the updated version of linux-loader from the personal GitHub repo:
https://github.com/aljimenezb/linux-loader/tree/pvh-boot

that provides support for parsing PVH ELFnote from the kernel binary.
This is necessary for testing until the following issue
rust-vmm/linux-loader#3
is closed in the linux-loader crate, at which point this commit should
be removed.

Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
aljimenezb added a commit to aljimenezb/cloud-hypervisor that referenced this issue Mar 12, 2020
Use the updated version of linux-loader from the personal GitHub repo:
https://github.com/aljimenezb/linux-loader/tree/pvh-boot

that provides support for parsing PVH ELFnote from the kernel binary.
This is necessary for testing until the following issue
rust-vmm/linux-loader#3
is closed in the linux-loader crate, at which point this commit should
be removed.

Signed-off-by: Alejandro Jimenez <alejandro.j.jimenez@oracle.com>
rust-vmm status automation moved this from TODO to Done Mar 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging a pull request may close this issue.

4 participants