This patch is a small fix for CR8 acceleration on
64bit guest.
For current CR8 acceleration, we do not call
update_tpr_threshold() at every VMEXIT.
But at some situations, we cannot inject guest
interrupts in time. And at some critical time, it will bring up a blue screen
to 64bit Windows guest.
Try this scenario:
1) At
one VMIT, tpr = TPR_THRESHOLD, but tpr < pending IRQ, and we cannot inject
it to guest because guest Cli or IRQ < max(tpr, ISR).
2) Guest
raises the TPR to a high value.
3) And
then guest lowers the TPR to a low value which is higher than the TPR_THRESHOLD
but lower than the pending IRQ.
And now this pending IRQ
cannot inject to guest in time now even the current TPR is lower than it.
Now, we select to call update_tpr_threshold() at very
VMEXIT time. It’s safe, and we do not see clear performance downgrade so
far.
Signed-off-by: Xiaohui
Xin xiaohui.xin@xxxxxxxxx