freebsd-skq/usr.sbin/bhyve
Neel Natu dc50650607 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.

The order of event injection into the guest is:
- hardware exception
- NMI
- maskable interrupt

In the Intel VT-x case, a pending NMI or interrupt will enable the interrupt
window-exiting and inject it as soon as possible after the hardware exception
is injected. Also since interrupts are inherently asynchronous, injecting
them after the hardware exception should not affect correctness from the
guest perspective.

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.

Discussed with:	grehan, jhb
Reviewed by:	jhb
2014-02-26 00:52:05 +00:00
..
acpi.c Allow PCI devices to be configured on all valid bus numbers from 0 to 255. 2014-02-14 21:34:08 +00:00
acpi.h Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
ahci.h Import Zhixiang Yu's GSoC'13 AHCI emulation: 2013-10-04 18:31:38 +00:00
atpic.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
bhyve.8 Update bhyve(8) man page to describe the usage of the "-s" option to assign 2014-02-14 21:46:04 +00:00
bhyverun.c Queue pending exceptions in the 'struct vcpu' instead of directly updating the 2014-02-26 00:52:05 +00:00
bhyverun.h Changes required for OpenBSD/amd64: 2013-10-17 22:01:17 +00:00
block_if.c Increase the block-layer backend maximum number of requests to match 2014-01-22 01:56:49 +00:00
block_if.h Block-layer backend interface for bhyve block-io device emulations. 2013-10-04 16:52:03 +00:00
consport.c Mark the I/O ports used by the bhyve console and debug devices as system 2014-02-07 20:53:41 +00:00
dbgport.c Mark the I/O ports used by the bhyve console and debug devices as system 2014-02-07 20:53:41 +00:00
dbgport.h Change the behavior of bhyve such that the gdb listening port is opt-in 2013-10-08 16:36:17 +00:00
elcr.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
inout.c Add support for PCI-to-ISA LPC bridge emulation. If the LPC bus is attached 2013-10-29 00:18:11 +00:00
inout.h Support soft power-off via the ACPI S5 state for bhyve guests. 2013-12-24 16:14:19 +00:00
ioapic.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
ioapic.h Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
Makefile Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
mem.c
mem.h
mevent_test.c Add simplistic periodic timer support to mevent using kqueue's 2013-09-19 04:48:26 +00:00
mevent.c Extend the ACPI power management support to wire a virtual power button up 2013-12-28 04:01:05 +00:00
mevent.h Extend the ACPI power management support to wire a virtual power button up 2013-12-28 04:01:05 +00:00
mptbl.c Allow PCI devices to be configured on all valid bus numbers from 0 to 255. 2014-02-14 21:34:08 +00:00
mptbl.h Make the virtual ioapic available unconditionally in a bhyve virtual machine. 2013-10-31 05:44:45 +00:00
pci_ahci.c Provide an indication a "PIO Setup Device to Host FIS" occurred while executing 2014-02-12 00:32:14 +00:00
pci_emul.c Add a check to validate that memory BARs of passthru devices are 4KB aligned. 2014-02-18 19:00:15 +00:00
pci_emul.h Add a check to validate that memory BARs of passthru devices are 4KB aligned. 2014-02-18 19:00:15 +00:00
pci_hostbridge.c Changes required for OpenBSD/amd64: 2013-10-17 22:01:17 +00:00
pci_lpc.c Allow PCI devices to be configured on all valid bus numbers from 0 to 255. 2014-02-14 21:34:08 +00:00
pci_lpc.h Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
pci_passthru.c Add a check to validate that memory BARs of passthru devices are 4KB aligned. 2014-02-18 19:00:15 +00:00
pci_uart.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
pci_virtio_block.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
pci_virtio_net.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
pit_8254.c Avoid clobbering the counter mode when issuing a latch command. 2014-02-21 01:15:26 +00:00
pit_8254.h
pm.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
pmtmr.c Extend the ACPI power management support to wire a virtual power button up 2013-12-28 04:01:05 +00:00
post.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
rtc.c Rework the DSDT generation code a bit to generate more accurate info about 2014-01-02 21:26:59 +00:00
rtc.h
spinup_ap.c Add a new capability, VM_CAP_ENABLE_INVPCID, that can be enabled to expose 2013-10-16 18:20:27 +00:00
spinup_ap.h
uart_emul.c Allow bhyve and bhyveload to attach to tty devices. 2013-11-27 00:21:37 +00:00
uart_emul.h Add support for PCI-to-ISA LPC bridge emulation. If the LPC bus is attached 2013-10-29 00:18:11 +00:00
virtio.c Enhance the support for PCI legacy INTx interrupts and enable them in 2014-01-29 14:56:48 +00:00
virtio.h Fix virtio spec URL. 2014-02-21 22:45:35 +00:00
xmsr.c Add an option to ignore accesses by the guest to unimplemented MSRs. 2013-12-19 22:27:28 +00:00
xmsr.h Add an option to ignore accesses by the guest to unimplemented MSRs. 2013-12-19 22:27:28 +00:00