acrn-hypervisor/hypervisor/arch/x86/guest
Shuo A Liu 38cd5b481d hv: keylocker: host keylocker iwkey context switch
Different vCPU may have different IWKeys. Hypervisor need do the iwkey
context switch.

This patch introduce a load_iwkey() function to do that. Switches the
host iwkey when the switch_in vCPU satisfies:
  1) keylocker feature enabled
  2) Different from the current loaded one.

Two opportunities to do the load_iwkey():
  1) Guest enables CR4.KL bit.
  2) vCPU thread context switch.

load_iwkey() costs ~600 cycles when do the load IWKey action.

Tracked-On: #5695
Signed-off-by: Shuo A Liu <shuo.a.liu@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2021-02-03 13:54:45 +08:00
..
assign.c hv: ptirq: Shouldn't change sid if intx irq mapping was added 2021-01-12 15:23:44 +08:00
ept.c hv: hypercall: prevent sos can touch hv/pre-launched VM resource 2021-02-02 16:55:40 +08:00
guest_memory.c hv: Add split-lock emulation for xchg 2020-12-31 11:12:33 +08:00
hyperv.c hv: rename the ACRN_DBG_XXX 2020-01-14 10:21:23 +08:00
instr_emul.c hv: Add split-lock emulation for xchg 2020-12-31 11:12:33 +08:00
pm.c hv: pm: avoid duplicate shutdowns on RTVM 2020-11-11 14:05:39 +08:00
splitlock.c hv: remove bitmap_clear_lock of split-lock after completing emulation 2021-01-13 15:32:27 +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: keylocker: host keylocker iwkey context switch 2021-02-03 13:54:45 +08:00
vcpuid.c hv: keylocker: Simulate CPUID of keylocker caps for guest VM 2021-02-03 13:54:45 +08:00
ve820.c hv: remove the hardcoding of Software SRAM GPA base 2021-01-30 13:41:02 +08:00
virq.c hv: move split-lock logic into dedicated file 2021-01-08 17:37:20 +08:00
virtual_cr.c hv: keylocker: host keylocker iwkey context switch 2021-02-03 13:54:45 +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: remove the hardcoding of Software SRAM GPA base 2021-01-30 13:41:02 +08:00
vmcall.c hv: rename hypercall for hv-emulated device management 2020-12-07 16:25:17 +08:00
vmcs.c hv: keylocker: Support Key Locker feature for guest VM 2021-02-03 13:54:45 +08:00
vmexit.c hv: keylocker: host keylocker iwkey context switch 2021-02-03 13:54:45 +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