Closed rn closed 5 years ago
Hi rn, I see the PR in linuxkit has been merged. Have you figured out what happens to kernel >= 4.17? Although I don't use hyperkit, but I meet troubles with xhyve, and can't boot kernel >= 4.17.
xhyve would have the same issue. Something in the newer kernels is causing the above VMEXIT which then is not handled by hyperkit. I hadn't had a chance to investigate....and likely won't have for a while. Maybe @ijc has an idea?
IIRC from when I glanced at this before the exit reason is just the catch all "invalid VMCS" one. Someone needs to sit down with the SDM and go through the check list of required invariants to compare it to the VMCS state and figure out which one is being violated. It'd also be worth figuring out what the last few exits prior to the problem were about (I guess the dtrace
stuff can help with that), since that might make it easier to narrow in on a section of the (long and boring) checklist.
I won't have cycles for this for a while either I expect.
Thanks, I pretty much got as far as you did.
@zhsj have you tried. a recent version of qemu? It now also uses the Hypervisor framework (just as hyperkit and xhyve) for acceleration (called hvf) so is as fast hyperkit/xhyve on macOS and boots the recent kernels fine
@rn just tried qemu-3.0, it works in hvf mode with 4.17 kernel, launched with -accel hvf -cpu host
args.
Any progress on this? I'm trying to boot Fedora 29, xhyve
is able to boot, so the hyperkit
code base must be missing some patch.
as far as I know no-one looked into this so far.
This should fix it: https://github.com/machyve/xhyve/commit/cc672d5363766e7c2bf10e02ca12efbeda74c487
@grehan-freebsd thanks for the pointer. I will take a look. If it fixes it, would you like to prepare a PR or are you happy for me to do it (and credit the original patch, of course).
Happy for you to do it :)
Booting a linuxkit image build with the 4.18.1 kernel (to be added to LinuxKit with https://github.com/linuxkit/linuxkit/pull/3163) and in fact any 4.17 kernel via initrd+kernel I get an unhandled VM Exit reason 33.
I'm using this linuxkit YAML file (
minimal.yml
):and build a kernlel+initrd with
linuxkit build minimal.yml
and then boot it with:The error output is:
I've tried a few 4.17 kernels (4.17.15, 4.17.14, 4.17.1) and get the same error.
Booting the efi-iso with the 4.18 kernel I get the same error.
The 4.14.63 kernel from the same PR boots fine so does the last 4.16.18 kernel
The 4.18 and 4.17 kernels boot fine with qemu.
hyperkit version: v0.20180403-17-g3e954c linuxkit version: v0.6+ c0aecf8f26a7abcd7f6c5b1dddce06ded061e1ff