Public bug reported:

Enabling hv-tlbflush on older hosts using Intel CPUs supporting VT-x but
neither EPT nor VPID will lead to bluescreens on the guest.

It seems KVM only checks if EPT is available, and if it isn't it
forcibly uses VPID. If that's *also* not available, it defaults to
basically a no-op hypercall, though windows is expecting the TLB to be
flushed.

hv-tlbflush is pretty useless on machines not supporting these
extensions anyway (only reasonably fix I can see would be to flush the
*entire* TLB on tlbflush hypercall in KVM (i.e. a kernel fix), but that
would remove any performance benefits), so I would suggest some kind of
preliminary check and warning/error if hv-tlbflush is specified on such
a host.

All CPUs mentioned in this thread[0] are confirmed to be affected by the
bug, and I have successfully reproduced it on an Intel Core2Duo E8500.

[0] https://forum.proxmox.com/threads/windows-guest-bluescreen-with-
proxmox-6.56053/

** Affects: qemu
     Importance: Undecided
         Status: New


** Tags: qemu-kvm

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1837851

Title:
  hv-tlbflush malfunctions on Intel host CPUs with neither EPT nor VPID
  (qemu-kvm)

Status in QEMU:
  New

Bug description:
  Enabling hv-tlbflush on older hosts using Intel CPUs supporting VT-x
  but neither EPT nor VPID will lead to bluescreens on the guest.

  It seems KVM only checks if EPT is available, and if it isn't it
  forcibly uses VPID. If that's *also* not available, it defaults to
  basically a no-op hypercall, though windows is expecting the TLB to be
  flushed.

  hv-tlbflush is pretty useless on machines not supporting these
  extensions anyway (only reasonably fix I can see would be to flush the
  *entire* TLB on tlbflush hypercall in KVM (i.e. a kernel fix), but
  that would remove any performance benefits), so I would suggest some
  kind of preliminary check and warning/error if hv-tlbflush is
  specified on such a host.

  All CPUs mentioned in this thread[0] are confirmed to be affected by
  the bug, and I have successfully reproduced it on an Intel Core2Duo
  E8500.

  [0] https://forum.proxmox.com/threads/windows-guest-bluescreen-with-
  proxmox-6.56053/

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1837851/+subscriptions

Reply via email to