KVM: MMU: remove prefault from invlpg handler
authorMarcelo Tosatti <mtosatti@redhat.com>
Sat, 5 Dec 2009 14:34:11 +0000 (12:34 -0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Sun, 27 Dec 2009 15:36:30 +0000 (13:36 -0200)
commitfb341f572d26e0786167cd96b90cc4febed830cf
tree2bf327861e4da2745b66c2dda03c5c5b0afcf7b6
parent6b7b284958d47b77d06745b36bc7f36dab769d9b
KVM: MMU: remove prefault from invlpg handler

The invlpg prefault optimization breaks Windows 2008 R2 occasionally.

The visible effect is that the invlpg handler instantiates a pte which
is, microseconds later, written with a different gfn by another vcpu.

The OS could have other mechanisms to prevent a present translation from
being used, which the hypervisor is unaware of.

While the documentation states that the cpu is at liberty to prefetch tlb
entries, it looks like this is not heeded, so remove tlb prefetch from
invlpg.

Cc: stable@kernel.org
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/paging_tmpl.h