freebsd-nq/sys/amd64/vmm/intel
Neel Natu d087a39935 Simplify instruction restart logic in bhyve.
Keep track of the next instruction to be executed by the vcpu as 'nextrip'.
As a result the VM_RUN ioctl no longer takes the %rip where a vcpu should
start execution.

Also, instruction restart happens implicitly via 'vm_inject_exception()' or
explicitly via 'vm_restart_instruction()'. The APIs behave identically in
both kernel and userspace contexts. The main beneficiary is the instruction
emulation code that executes in both contexts.

bhyve(8) VM exit handlers now treat 'vmexit->rip' and 'vmexit->inst_length'
as readonly:
- Restarting an instruction is now done by calling 'vm_restart_instruction()'
  as opposed to setting 'vmexit->inst_length' to 0 (e.g. emulate_inout())
- Resuming vcpu at an arbitrary %rip is now done by setting VM_REG_GUEST_RIP
  as opposed to changing 'vmexit->rip' (e.g. vmexit_task_switch())

Differential Revision:	https://reviews.freebsd.org/D1526
Reviewed by:		grehan
MFC after:		2 weeks
2015-01-18 03:08:30 +00:00
..
ept.c Restructure the MSR handling so it is entirely handled by processor-specific 2014-09-20 02:35:21 +00:00
ept.h Don't expose 'vmm_ipinum' as a global. 2014-01-09 03:25:54 +00:00
vmcs.c Allow ktr(4) tracing of all guest exceptions via the tunable 2014-12-23 02:14:49 +00:00
vmcs.h Allow ktr(4) tracing of all guest exceptions via the tunable 2014-12-23 02:14:49 +00:00
vmx_controls.h Use the 'Virtual Interrupt Delivery' feature of Intel VT-x if supported by 2014-01-07 21:04:49 +00:00
vmx_cpufunc.h Fix issue found with clang build. Avoid code insertion by the compiler 2012-11-06 02:43:41 +00:00
vmx_genassym.c There is no need to save and restore the host's return address in the 2014-04-11 20:15:53 +00:00
vmx_msr.c Emulate writes to the IA32_MISC_ENABLE MSR. 2014-12-20 19:47:51 +00:00
vmx_msr.h Restructure the MSR handling so it is entirely handled by processor-specific 2014-09-20 02:35:21 +00:00
vmx_support.S Fix build to not bogusly always rebuild vmm.ko. 2014-10-17 13:20:49 +00:00
vmx.c Simplify instruction restart logic in bhyve. 2015-01-18 03:08:30 +00:00
vmx.h Clear blocking due to STI or MOV SS in the hypervisor when an instruction is 2015-01-06 19:04:02 +00:00
vtd.c Use the max guest memory address when creating its iommu domain. 2014-08-14 05:00:45 +00:00