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
..
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-26 21:56:23 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-29 13:50:59 +00:00
2014-12-26 21:56:23 +00:00
2014-11-25 16:57:27 +00:00
2014-07-17 06:57:26 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-09-28 11:32:46 +00:00
2014-11-25 16:57:27 +00:00
2015-01-14 11:26:03 +00:00
2014-11-25 16:57:27 +00:00
2014-12-26 21:56:23 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-26 21:56:23 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-29 13:50:59 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-07-07 00:27:09 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-26 21:56:23 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-07-18 06:48:02 +00:00
2014-12-26 21:56:23 +00:00
2015-01-16 18:51:26 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-16 14:50:33 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-26 21:56:23 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-12-26 21:56:23 +00:00
2014-12-26 21:56:23 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2013-09-07 20:25:22 +00:00
2014-09-01 16:12:29 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2015-01-07 19:55:18 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-11-25 16:57:27 +00:00
2014-10-18 08:07:17 +00:00