Re: odd behaviour of virtualized CPUs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 23, 2023 at 10:43 AM Gerrit Slomma
<gerrit.slomma@xxxxxxxxxxxx> wrote:
>
> Why?
> As Sean pointed out if you have older CPUs that don't support a specific
> instruction set you need to restrict the capabilities in order to
> support live migration.

The x86 hardware virtualization facilities do not allow the hypervisor
to restrict capabilities a la carte. Some capabilities do have a
"gatekeeper," like a CR4 bit or an XCR0 bit, which, when clear, will
induce an exception if that capability is used. However, many
capabilities do not. Take the SERIALIZE instruction, for example. It
should raise #UD on platforms older than Sapphire Rapids, but if your
virtual machine is masquerading as an older microarchitecture on a
Sapphire Rapids host, you will find that the SERIALIZE instruction is
available, does not raise #UD, and works just as it does on bare
metal.

As a result, there is no way for a virtual CPU to masquerade as an
older microarchitecture when running on Sapphire Rapids.

It can come close enough to be acceptable for a heterogenous migration
pool, but it's still a virtualization hole.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux