a8d4adc969
This is used as part of implementing run control in bhyve's debug server. The hypervisor now maintains a set of "debugged" CPUs. Attempting to run a debugged CPU will fail to execute any guest instructions and will instead report a VM_EXITCODE_DEBUG exit to the userland hypervisor. Virtual CPUs are placed into the debugged state via vm_suspend_cpu() (implemented via a new VM_SUSPEND_CPU ioctl). Virtual CPUs can be resumed via vm_resume_cpu() (VM_RESUME_CPU ioctl). The debug server suspends virtual CPUs when it wishes them to stop executing in the guest (for example, when a debugger attaches to the server). The debug server can choose to resume only a subset of CPUs (for example, when single stepping) or it can choose to resume all CPUs. The debug server must explicitly mark a CPU as resumed via vm_resume_cpu() before the virtual CPU will successfully execute any guest instructions. Reviewed by: avg, grehan Tested on: Intel (jhb), AMD (avg) Differential Revision: https://reviews.freebsd.org/D14466 |
||
---|---|---|
.. | ||
amdv.c | ||
amdvi_hw.c | ||
amdvi_priv.h | ||
ivrs_drv.c | ||
npt.c | ||
npt.h | ||
svm_genassym.c | ||
svm_msr.c | ||
svm_msr.h | ||
svm_softc.h | ||
svm_support.S | ||
svm.c | ||
svm.h | ||
vmcb.c | ||
vmcb.h |