bhyve VM using BHYVE_UEFI.fd gets EPT violation

Matt Churchyard matt.churchyard at userve.net
Fri Oct 12 13:54:06 UTC 2018


>Hi,

>I'm taking my first steps in using bhyve, and the first showstopper seems to be that using '-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd' gets me immediate vm exit with >exit_reason being 48 (EPT violation).

>Relevant part of dmesg:

FreeBSD 12.0-ALPHA9 r339291 GENERIC amd64 FreeBSD clang version 6.0.1 (tags/RELEASE_601/final 335540) (based on LLVM 6.0.1)
WARNING: WITNESS option enabled, expect reduced performance.
VT(efifb): resolution 800x600
CPU: Intel(R) Xeon(R) CPU E5-2660 v2 @ 2.20GHz (2200.04-MHz K8-class CPU)
  Origin="GenuineIntel"  Id=0x306e4  Family=0x6  Model=0x3e  Stepping=4

Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>

Features2=0x7fbee3ff<SSE3,PCLMULQDQ,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,PCID,DCA,SSE4.1,SSE4.2,x2APIC,POPCNT,TSCDLT,AESNI,XSAVE,OSXSAVE,AVX,F16C,RDRAND>
  AMD Features=0x2c100800<SYSCALL,NX,Page1GB,RDTSCP,LM>
  AMD Features2=0x1<LAHF>
  Structured Extended Features=0x281<FSGSBASE,SMEP,ERMS>
  XSAVE Features=0x1<XSAVEOPT>
  VT-x: PAT,HLT,MTF,PAUSE,EPT,UG,VPID,VID,PostIntr
  TSC: P-state invariant, performance statistics real memory  = 274877906944 (262144 MB) avail memory = 267769249792 (255364 MB)

Simplified invocation line (I tried with a lot more options initially, but this seems to get the same):

# bhyve -c 2 -m 2G -l
bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd test vm exit[0]
        reason          VMX
        rip             0x000000000000fff0
        inst_length     3
        status          0
        exit_reason     48 (EPT violation)
        qualification   0x0000000000000184
        inst_type               0
        inst_error              0
Abort trap

# bhyve -c 2 -m 2G -l
bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI_CSM.fd test vm exit[0]
        reason          VMX
        rip             0x000000000000fff0
        inst_length     3
        status          0
        exit_reason     48 (EPT violation)
        qualification   0x0000000000000184
        inst_type               0
        inst_error              0
Abort trap

> Any hints?

The commands you're running aren't really very useful as you haven't provided a console device, or any disk/network/etc.
However the main issue appears to be a lack of an lpc device. I get the exact same error on a fully working system if I remove that device.

Note there is /usr/share/examples/bhyve/vmrun.sh, and tools in ports to handle running bhyve commands for you. (Unless you are intentionally trying to learn the raw bhyve command syntax of course)

Matt



More information about the freebsd-virtualization mailing list