freebsd-skq/usr.sbin/bhyve
neel 9c85092013 Some Linux guests will implement a 'halt' by disabling the APIC and executing
the 'HLT' instruction. This condition was detected by 'vm_handle_hlt()' and
converted into the SPINDOWN_CPU exitcode . The bhyve(8) process would exit
the vcpu thread in response to a SPINDOWN_CPU and when the last vcpu was
spun down it would reset the virtual machine via vm_suspend(VM_SUSPEND_RESET).

This functionality was broken in r263780 in a way that made it impossible
to kill the bhyve(8) process because it would loop forever in
vm_handle_suspend().

Unbreak this by removing the code to spindown vcpus. Thus a 'halt' from
a Linux guest will appear to be hung but this is consistent with the
behavior on bare metal. The guest can be rebooted by using the bhyvectl
options '--force-reset' or '--force-poweroff'.

Reviewed by:	grehan@
2014-04-29 18:42:56 +00:00
..
acpi.c Add SMBIOS support. 2014-03-04 17:12:06 +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
atkbdc.c Provide a very basic stub for the 8042 PS/2 keyboard controller. 2014-04-25 13:38:18 +00:00
bhyve.8 Add support for the virtio RNG entropy-source device. 2014-04-02 20:18:17 +00:00
bhyverun.c Some Linux guests will implement a 'halt' by disabling the APIC and executing 2014-04-29 18:42:56 +00:00
bhyverun.h Use 'cpuset_t' to represent the vcpus active in a virtual machine. 2014-03-20 18:15:37 +00:00
block_if.c Use calloc() in favor of malloc + memset. 2014-04-22 18:55:21 +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 Handle single-byte reads from the bvmcons port (0x220) by returning 2014-04-08 21:02:03 +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
inout.c Factor out common ioport handler code for better hygiene -- pointed 2014-04-22 16:13:56 +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 Provide a very basic stub for the 8042 PS/2 keyboard controller. 2014-04-25 13:38:18 +00:00
mem.c Remove obsolete comment about lack of locking for MMIO range lookup. 2013-04-10 18:53:14 +00:00
mem.h Improve PCI BAR emulation: 2013-04-10 02:12:39 +00:00
mevent_test.c Add simplistic periodic timer support to mevent using kqueue's 2013-09-19 04:48:26 +00:00
mevent.c Use calloc() in favor of malloc + memset. 2014-04-22 18:55:21 +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 Implement legacy interrupts for the AHCI device emulation 2014-04-28 18:41:25 +00:00
pci_emul.c Respect and track the enable bit in the PCI configuration address word. 2014-04-25 17:35:34 +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 Fix ACPI DSDT indentation cosmetic breakage introduced in r264631 -- 2014-04-18 16:01:19 +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 Use calloc() in favor of malloc + memset. 2014-04-22 18:55:21 +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 Use calloc() in favor of malloc + memset. 2014-04-22 18:55:21 +00:00
pci_virtio_net.c Use calloc() in favor of malloc + memset. 2014-04-22 18:55:21 +00:00
pci_virtio_rnd.c Use calloc() in favor of malloc + memset. 2014-04-22 18:55:21 +00:00
pm.c Add support for emulating the slave PIC. 2014-04-14 19:00:20 +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 Implement RTC CMOS nvram. Init some fields that are used 2013-07-11 03:54:35 +00:00
smbiostbl.c Add SMBIOS support. 2014-03-04 17:12:06 +00:00
smbiostbl.h Add SMBIOS support. 2014-03-04 17:12:06 +00:00
spinup_ap.c Use 'cpuset_t' to represent the vcpus active in a virtual machine. 2014-03-20 18:15:37 +00:00
spinup_ap.h
uart_emul.c Use calloc() in favor of malloc + memset. 2014-04-22 18:55:21 +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 Add support for the virtio RNG entropy-source device. 2014-04-02 20:18:17 +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