Greg Troxel <[email protected]> writes: > Robert Swindells <[email protected]> writes: > >> Aryabhata <bsdhexa%gmail.com@localhost> wrote: >>> Is there any serious momentum behind getting OpenBSD's vmm or FreeBSD's >>> bhyve working seamlessly as the frontend for NVMM? I'd much rather >>> migrate to a clean, human-maintained codebase than deal with the fallout >>> of whatever QEMU is about to merge into their tree. >> >> The interrupt handling emulation in qemu doesn't work very well when >> trying to boot Linux in a VM, is bhyve better at this? >> >> There could also be a future project to add support for virtual >> interrupts (AVIC and the Intel equivalent) to nvmm(4), then use that in >> the userspace client, this might be easier to do in a smaller codebase >> like bhyve. > > I have been seeing mentions of FreeBSD bhyve for a long time and not > been clear on it. > > Xen can run without qemu, in PV mode, and with qemu, in HVM. (There is > some notion of a lightweight PV/HVM hybrid where disk/network is PV and > memory maps are HVM without qemu, but I'm fuzzy on that.)
I am being incomplete with the following, and this somewhat wrong on some of the very specific details for simplicity... PVH does not use qemu, but PVHVM does. What PVH provides, more or less, is some ACPI, and a little bit of a ISA bus with hardware virtualization. For a PVH guest, all disks and network is though xenbus and you set up the config mostly like you would for a vanilla PV guest (i.e. boot the kernel, except in this case, it can be GENERIC and not XEN3_DOMU). For PVHVM, the system needs a emulated disk with usual and normal MBR boot block, but a xenbus is also provided and you use the devices from it like a PVH guest does (except for the first disk and maybe the network). A big difference between PVH and PVHVM is that with PVHVM you provide a disk image with boot blocks and the kernel inside a disk image. Assuming you have processor support for PVH you can convert a PV guest to a PVH guest trivially. Converting from a PV guest to PVHVM guest requires a small disk presented as the first disk with the boot blocks. In fact, that shim is actually all you need and the rest of the disks can be xenbus xbd sort of things and you can arrange the boot line in your boot.cfg to have the root filesystem be on a xbd disk. HVM guests simply take this a step further and all disks and network devices are emulated with qemu. > I wonder if anyone can explain > > Does bhyve use qemu for full virtualization? Something else? Is > there a PV method? Can you e.g. boot Windows under bhyve? > > Is OpenBSD vmm related to NetBSD's nvmm? I am guessing not, and am > probably remembering something about nvmm in DragonFly. It looks > like OpenBSD's support is restricted and probably doesn't include full > HVM operation and thus doesn't have qemu. -- Brad Spencer - [email protected]
