Mailing List Archive

[PATCH] A fix for CR8 acceleration on 64bit guest
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@intel.com