summaryrefslogtreecommitdiffstats
path: root/virt
diff options
context:
space:
mode:
authorPeter Feiner <pfeiner@google.com>2016-07-07 14:49:58 -0700
committerPaolo Bonzini <pbonzini@redhat.com>2016-07-14 19:11:19 +0200
commit4e59516a12a6ef6dcb660cb3a3f70c64bd60cfec (patch)
tree679def54f0735826312d63b690d811f4022e68df /virt
parent9770404a0061ec46dec6e15c4b07731ce2e2d7bb (diff)
downloadlinux-stable-4e59516a12a6ef6dcb660cb3a3f70c64bd60cfec.tar.gz
linux-stable-4e59516a12a6ef6dcb660cb3a3f70c64bd60cfec.tar.bz2
linux-stable-4e59516a12a6ef6dcb660cb3a3f70c64bd60cfec.zip
kvm: vmx: ensure VMCS is current while enabling PML
Between loading the new VMCS and enabling PML, the CPU was unpinned. If the vCPU thread were migrated to another CPU in the interim (e.g., due to preemption or sleeping alloc_page), then the VMWRITEs to enable PML would target the wrong VMCS -- or no VMCS at all: [ 2087.266950] vmwrite error: reg 200e value 3fe1d52000 (err -506126336) [ 2087.267062] vmwrite error: reg 812 value 1ff (err 511) [ 2087.267125] vmwrite error: reg 401e value 12229c00 (err 304258048) This patch ensures that the VMCS remains current while enabling PML by doing the VMWRITEs while the CPU is pinned. Allocation of the PML buffer is hoisted out of the critical section. Signed-off-by: Peter Feiner <pfeiner@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'virt')
0 files changed, 0 insertions, 0 deletions