acrn-hypervisor/hypervisor/include/arch/x86
Zide Chen a958fea7a4 hv: emulate IA32_TSC_ADJUST MSR
Intercept IA32_TSC_ADJUST MSR so that writing IA32_TSC_ADJUST from the
guests won't impact the TSC in root mode or potentially other vCPUs in
the same pCPU.

- MSR TSC_ADJUST needs to be isolated between normal and secure world,
  so it's included in NUM_WORLD_MSRS.
- Upon writing to either IA32_TSC_ADJUST or IA32_TSC from the guests,
  don't write to physical MSRS so it won't impact the host side, but
  update the TSC offset VM-execution control.
- don't need to intercept rdmsr for IA32_TIME_STAMP_COUNTER.
- add the missing statement in save_world_ctx() to save the tsc_offset
  during world switch.

Tracked-On: #1867
Signed-off-by: Zide Chen <zide.chen@intel.com>
Acked-by: Anthony Xu <anthony.xu@intel.com>
2018-12-14 09:11:37 +08:00
..
boot move idt.S and idt.h out of boot component 2018-12-12 09:07:43 +08:00
guest hv: emulate IA32_TSC_ADJUST MSR 2018-12-14 09:11:37 +08:00
abl_seed_parse.h HV:treewide:rename vm data structure 2018-11-05 15:35:49 +08:00
apicreg.h hv: replace CPU_PAGE_SIZE with PAGE_SIZE 2018-12-03 15:14:57 +08:00
assign.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
cpu.h modularization: hypervisor initilization component 2018-12-14 08:56:15 +08:00
cpufeatures.h HV: add CPU capabilities detection for L1TF mitigation 2018-11-01 11:21:15 +08:00
cpuid.h modulization: move virtual cpuid stuff into guest dir 2018-12-13 09:08:02 +08:00
e820.h HV: improve e820 interfaces and their usages 2018-12-12 09:12:12 +08:00
gdt.h hv: remove unused MACROs 2018-09-18 09:43:43 +08:00
host_pm.h hv: fix included file not protected with #define 2018-12-07 16:39:58 +08:00
hv_arch.h modulization: move virtual cpuid stuff into guest dir 2018-12-13 09:08:02 +08:00
idt.h move idt.S and idt.h out of boot component 2018-12-12 09:07:43 +08:00
init.h modularization: hypervisor initilization component 2018-12-14 08:56:15 +08:00
io.h hv: change the param type of mmio_write** 2018-12-04 09:10:54 +08:00
ioapic.h hv: ioapic: clean up HV_DEBUG usage 2018-11-23 12:21:02 +08:00
ioreq.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
irq.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
lapic.h doc: hv: add comments to irq APIs for documentation 2018-11-02 15:34:36 -07:00
mmu.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
msr.h hv: code cleanup: msr.h 2018-11-21 14:45:43 +08:00
mtrr.h doc: replace return with retval 2018-11-30 14:55:17 +08:00
multiboot.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
page.h hv: fix 'Unused procedure parameter' 2018-12-04 18:28:32 +08:00
per_cpu.h hv: replace CPU_PAGE_SIZE with PAGE_SIZE 2018-12-03 15:14:57 +08:00
pgtable.h doc: replace return with retval 2018-11-30 14:55:17 +08:00
sbl_seed_parse.h HV:treewide:rename vm data structure 2018-11-05 15:35:49 +08:00
timer.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
trampoline.h modularization: boot component -- move functions 2018-12-03 09:09:44 +08:00
trusty.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
vmexit.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
vmx.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
vtd.h hv: use int32_t replace int 2018-12-12 13:08:10 +08:00
zeropage.h hv: minimize the case of "identifier reuse" 2018-12-07 15:21:39 +08:00