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

[Xen-devel] (Reluctant) request to revert several changes, due to regressing VM migration

Changeset 31ee951a3 "x86/HVM: correct the SMEP logic for
HVM_CR0_GUEST_RESERVED_BITS" breaks migration for VMs using SMEP.

For migration, the architectural state is restored before the cpuid
policy is written.  This appears to be the behaviour in libxl, and is
certainly the behaviour in Xapi.

As a result, a VM using SMEP will fail the CR4 check in
hvm_load_cpu_ctxt().  This is easy to observe by performing a localhost
migration of a modern HVM Linux VM which enables SMEP.

Changeset 58658992 performs an equivalent action for SMAP, and as such
will be equivalently broken on supporting hardware.

Specifically, c/s f952f9c7f0e which is the backport of 31ee951a3 into
staging-4.4 is the problematic change which is causing regressions in
XenServer testing.

This is a reluctant request as pragmatically the changeset is correct.

However, there is a chicken & egg problem for libxc trying to calculate
the cpuid policy, which requires bits from the "magic chunks" in the
migration stream to be loaded first.  Therefore, simply moving the cpuid
policy calculation earlier will result in different problems.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.