freebsd-skq/sys/amd64
jhb 3e1f2ae835 MFC 261638,262144,262506,266765:
Add virtualized XSAVE support to bhyve which permits guests to use XSAVE and
XSAVE-enabled features like AVX.
- Store a per-cpu guest xcr0 register and handle xsetbv VM exits by emulating
  the instruction.
- Only expose XSAVE to guests if XSAVE is enabled in the host.  Only expose
  a subset of XSAVE features currently supported by the guest and for which
  the proper emulation of xsetbv is known.  Currently this includes X87, SSE,
  AVX, AVX-512, and Intel MPX.
- Add support for injecting hardware exceptions into the guest and use this
  to trigger exceptions in the guest for invalid xsetbv operations instead
  of potentially faulting in the host.
- Queue pending exceptions in the 'struct vcpu' instead of directly updating
  the processor-specific VMCS or VMCB. The pending exception will be delivered
  right before entering the guest.
- Rename the unused ioctl VM_INJECT_EVENT to VM_INJECT_EXCEPTION and restrict
  it to only deliver x86 hardware exceptions. This new ioctl is now used to
  inject a protection fault when the guest accesses an unimplemented MSR.
- Expose a subset of known-safe features from leaf 0 of the structured
  extended features to guests if they are supported on the host including
  RDFSBASE/RDGSBASE, BMI1/2, AVX2, AVX-512, HLE, ERMS, and RTM.  Aside
  from AVX-512, these features are all new instructions available for use
  in ring 3 with no additional hypervisor changes needed.
2014-06-12 19:58:12 +00:00
..
acpica Consistently use round_page(x) rather than roundup(x, PAGE_SIZE). There is 2013-02-15 22:43:08 +00:00
amd64 MFC 266263,266551,266552: 2014-06-12 17:15:56 +00:00
conf MFC 263301 2014-05-17 17:34:37 +00:00
ia32 MFC r258135: x86: Allow users to change PSL_RF via ptrace(PT_SETREGS...) 2013-11-25 15:58:48 +00:00
include MFC 261638,262144,262506,266765: 2014-06-12 19:58:12 +00:00
linux32 MFC r266925: 2014-06-03 04:31:42 +00:00
pci MFC r258779,r258780,r258787,r258822: 2014-02-04 03:36:42 +00:00
vmm MFC 261638,262144,262506,266765: 2014-06-12 19:58:12 +00:00
Makefile