[Bug 203994] bhyve kernel module may need to relax some checks when running nested under KVM

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Apr 30 18:17:42 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=203994

--- Comment #17 from Peter Grehan <grehan at FreeBSD.org> ---
Just an update on this. I used Ubuntu since it was easy to get a range of Linux
kernel versions to test with.
 - Ubuntu 17.04 (kernel 4.10) works without any changes to bhyve
 - Ubuntu 15.10 doesn't advertize INVVPID capability. While it would be
possible to modify bhyve to work in this mode, I'm loathe to do it since it's
such a niche case
 - Ubuntu 16.04 seems to have the capabilities that most folk have reported.

After modifying bhyve to ignore the unused INVVPID capabilities and to
fall-back to the all-context INVEPT if single-context wasn't available, the
next issue was that Linux/KVM wasn't setting the GLA on EPT faults. This is
used by bhyve to verify the GLA that is also obtained through the instruction
emulation path for guest MMIO operations. This verification path hasn't thrown
any errors for a few years now, so I relaxed this test when in this mode.

(Of note, this bug was reported here https://lkml.org/lkml/2016/9/4/156, and
the author has submitted a diff review to relax some of the INVVPID/INVEPT
checks at https://reviews.freebsd.org/D10049)

However, after doing all this, bhyve would still eventually panic with a kernel
trap-9 fault when issuing a vmread instruction, so there may still be some
additional KVM bugs that are being hit on this kernel rev :(

I'll do some more experimentation and then post the patch that I have.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-virtualization mailing list