Re: [PATCH v8 1/7] xen/pvh: Split CONFIG_XEN_PVH into CONFIG_PVH and CONFIG_XEN_PVH

From: Maran Wilson
Date: Fri Dec 07 2018 - 13:22:57 EST


On 12/7/2018 7:14 AM, Paolo Bonzini wrote:
On 07/12/18 14:58, Juergen Gross wrote:
On 07/12/2018 14:52, Paolo Bonzini wrote:
On 07/12/18 14:50, Juergen Gross wrote:
The PVH boot entry is in the same bzImage binary as the normal one.
Its just another entry, similar to the Xen PV boot entry. So the binary
arch/x86/boot/bzimage can be booted either on bare metal via grub2 or
other boot-loaders, as Xen PV-guest, as Xen PVH-guest, or as KVM
PVH-guest. So one build and one binary. The non-standard boot entries
(PV- or PVH-node) are found via ELF-notes by the boot loader (qemu in
case of KVM).
But the bzImage is not an ELF binary, and it is compressed, isn't it?
/me is confused. :)
grub2 (and qemu, too) can decompress it. And the decompressed result
"vmlinux" is an ELF-binary.
Aha - for KVM, the main advantage of PVH would be to skip the cost of
decompression, and that is what confused me (also we probably prefer not
having any decompression code running in QEMU, since that increases the
attack surface; there's no real disadvantage to using the existing
linuxboot code if we're given a bzImage). So, at least for now, KVM
would go with the two-binaries/one-config approach.

Yeah, the way we have been testing with the Qemu/qboot changes that Liam has out for review, if you provide the bzImage binary in the -kernel argument, legacy behavior is followed. However if you provide the vmlinux binary (from the same kernel build), Qemu recognizes it as an ELF binary, looks for the presence of the PVH ELFNOTE, and (if the ELFNOTE in question is found) uses that entry point instead.

So at this point, the only feedback/comment still outstanding from you is the one about removing KVM_GUEST_PVH right?

I'll hold off on sending a v9 until next week to see if there is any additional feedback or test results.

Thanks,
-Maran

Sorry for having you lecture me, it's much clearer now. Thanks,

Paolo