acrn-hypervisor/hypervisor/arch/x86/guest
Jie Deng 47e193a7bb hv: Add split-lock emulation for LOCK prefix instruction
This patch adds the split-lock emulation.
If a #AC is caused by instruction with LOCK prefix then
emulate it, otherwise, inject it back as it used to be.

 1. Kick other vcpus of the guest to stop execution
    and set the TF flag to have #DB if the guest has more
    than one vcpu.

 2. Skip over the LOCK prefix and resume the current
    vcpu back to guest for execution.

 3. Notify other vcpus to restart exception at the end
    of handling the #DB since we have completed
    the LOCK prefix instruction emulation.

Tracked-On: #5605
Signed-off-by: Jie Deng <jie.deng@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2020-12-31 11:12:33 +08:00
..
assign.c hv: refine msi interrupt injection functions 2020-10-26 08:44:13 +08:00
ept.c hv: skip pSRAM for guest WBINVD emulation 2020-11-02 10:29:43 +08:00
guest_memory.c gpa2hva: add INVAVLID_HPA return value check 2020-05-06 11:29:30 +08:00
hyperv.c hv: rename the ACRN_DBG_XXX 2020-01-14 10:21:23 +08:00
instr_emul.c hv: instr_emul: use cs segment when fetching instructions 2019-11-11 13:55:24 +08:00
pm.c hv: pm: avoid duplicate shutdowns on RTVM 2020-11-11 14:05:39 +08:00
trusty.c hv: Disable XSAVE-managed CET state of guest VM 2020-07-23 20:15:57 +08:00
ucode.c remove spin lock for micro code update 2020-06-19 16:13:20 +08:00
vcpu.c hv: Add split-lock emulation for LOCK prefix instruction 2020-12-31 11:12:33 +08:00
vcpuid.c hv: check the availability of guest CR4 features 2020-12-18 11:21:22 +08:00
ve820.c hv: pSRAM: add pSRAM support for pre-launched RTVM 2020-11-02 15:56:30 +08:00
virq.c hv: Add split-lock emulation for LOCK prefix instruction 2020-12-31 11:12:33 +08:00
virtual_cr.c hv: check the availability of guest CR4 features 2020-12-18 11:21:22 +08:00
vlapic_priv.h hv: add ops to vlapic structure 2019-07-19 16:47:06 +08:00
vlapic.c hv: refine code style 2020-11-26 12:56:28 +08:00
vm_reset.c hv: pm: avoid duplicate shutdowns on RTVM 2020-11-11 14:05:39 +08:00
vm.c hv: coding style clean-up related to Boolean 2020-11-28 14:51:32 +08:00
vmcall.c hv: rename hypercall for hv-emulated device management 2020-12-07 16:25:17 +08:00
vmcs.c hv: Add split-lock emulation for LOCK prefix instruction 2020-12-31 11:12:33 +08:00
vmexit.c hv: refine code style 2020-11-26 12:56:28 +08:00
vmsr.c hv:cpu-caps:refine is_apl_platform func and clean up duplicated code 2020-08-14 10:08:50 +08:00
vmtrr.c hv: vmtrr: remove vcpu structure pointer from vmtrr 2020-03-31 10:57:47 +08:00
vmx_asm.S hv:remove some unnecessary includes 2019-05-07 09:10:13 +08:00
vmx_io.c hv: rename BOOT_CPU_ID to BSP_CPU_ID 2020-02-25 09:08:14 +08:00