mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-05 07:35:31 +00:00
1) According SDM Vol 3, Chap 29.1.2, Any VM exit caused by TPR virtualization is trap-like: the instruction causing TPR virtualization completes before the VM exit occurs (for example, the value of CS:RIP saved in the guest-state area of the VMCS references the next instruction). So we need to retain the RIP. 2) The previous implement only consides the situation the guest will reduce the TPR. However, the guest will increase it. So we need to update the PPR before we find a deliverable interrupt. For examples: a) if the guest increase the TPR before a irq windows vmexit, we need to update the PPR when check whether there has a pending delivery interrupt or not; b) if the guest increase the TPR, then an external irq raised, we need to update the PPR when check whether there has a deliverable interrupt to inject to guest. Tracked-On: #1842 Signed-off-by: Li, Fei1 <fei1.li@intel.com> Reviewed-by: Yu Wang <yu1.wang@intel.com> Reviewed-by: Jason Chen CJ <jason.cj.chen@intel.com> Acked-by: Anthony Xu <anthony.xu@intel.com>