acrn-hypervisor/hypervisor/arch/x86
Jian Jun Chen e1a2ed1727 hv: fix a bug that tpr threshold is not updated
Consider the following case when TPR shadow is used with vlapic
basic mode:
1) 2 interrupts are pending in vlapic. INTa's priority > TPR and
   INTb's priority <= TPR.
2) TPR threshold is set to zero and INTa is injected to guest.
3) Guest set TPR to the priority of INTa.
4) EOI of INTa. PPR is updated to TPR which equals INTa's priority.
   INTb cannot be injected because its priority <= PPR.
5) Guest set TPR to zero. Because TPR threshold is still zero, there is
   no TPR threshold vmexit. But since both TPR and ISRV are zero at
   this time, the PPR is zero as well. INTb still cannot be injected.
   This is a bug.

By adding vcpu_make_request(vlapic->vcpu, ACRN_REQUEST_EVENT) in EOI,
TPR threshold will be updated before vm_resume.

Tracked-On: #3795
Signed-off-by: Jian Jun Chen <jian.jun.chen@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
2019-10-16 16:40:29 +08:00
..
boot hv:remove some unnecessary includes 2019-05-07 09:10:13 +08:00
configs hv: pci: update function "bdf_is_equal" 2019-09-25 13:45:39 +08:00
guest hv: fix a bug that tpr threshold is not updated 2019-10-16 16:40:29 +08:00
lib hv: move 3 files to lib & arch folder 2019-06-14 14:22:51 +08:00
seed HV: fix violations touched type conversion 2019-07-11 09:16:09 +08:00
cat.c Fix the first problem: CPUID(EAX = 10H, ECX = ResID=1 or 2).EAX Bits 04 - 00: Length of the capacity bit mask for the corresponding ResID using minus-one notation 2019-09-19 08:44:45 +08:00
cpu_caps.c hv:fixed compilation error in Ubuntu 2019-09-26 14:03:51 +08:00
cpu_state_tbl.c HV: add board specific cpu state table to support Px Cx 2019-07-29 20:25:16 +08:00
cpu.c hv:check pcpu numbers during init_pcpu_pre 2019-09-24 09:02:05 +08:00
e820.c hv: cleanup some hva/hpa conversion code 2019-03-15 09:03:14 +08:00
gdt.c hv:cleanup header files for arch folder 2019-02-22 13:14:36 +08:00
idt.S move idt.S and idt.h out of boot component 2018-12-12 09:07:43 +08:00
init.c hv:remove some unnecessary includes 2019-10-15 14:40:39 +08:00
ioapic.c HV: fix violations touched type conversion 2019-07-11 09:16:09 +08:00
irq.c hv: fix Violations touched ACRN Coding Guidelines 2019-08-15 09:47:11 +08:00
Kconfig hv: move MAX_PCPU_NUM from Kconfig to header file 2019-09-24 11:58:45 +08:00
lapic.c hv: fix some potential array overflow risk 2019-07-12 09:41:15 +08:00
mmu.c hv:change function parameter for invept 2019-09-05 16:32:30 +08:00
notify.c hv: fix some potential array overflow risk 2019-07-12 09:41:15 +08:00
page.c hv: ept: flush cache for modified ept entries 2019-08-26 10:47:17 +08:00
pagetable.c hv: mmu: remove strict check for deleting page table mapping 2019-09-10 15:28:07 +08:00
pm.c hv: save/restore TSC in host's suspend/resume path 2019-09-19 13:50:50 +08:00
sched.S hv: sched: rename schedule related structs and vars 2019-10-16 10:25:53 +08:00
security.c HV: check security mitigation support for SSBD 2019-07-10 10:55:34 +08:00
sgx.c hv: sgx: add basic support to init sgx resource for vm 2019-05-29 11:24:13 +08:00
timer.c softirq: disable interrupt when modify timer_list 2019-08-01 15:45:02 +08:00
trampoline.c hv: delay enabling SMEP/SMAP until the end of PCPU initialization 2019-06-10 11:35:15 +08:00
vmx.c hv:fix "no prototype for non-static function" 2019-07-09 10:36:03 +08:00
vtd.c hv: pci: update "union pci_bdf" 2019-09-25 13:45:39 +08:00
wakeup.S hv: pm: correct the function name 2019-09-11 17:30:24 +08:00