Cant help, but I've seen this exact issue (if not mistaken) - a CPU flag
that DOES exist on the destination KVM host, but libvirt complaining it
doesn't - I would guess some kernel issue, as I've seen those.

On Wed, 24 Nov 2021 at 22:36, Wei ZHOU <ustcweiz...@gmail.com> wrote:

> Hi Wido,
>
> I think it is not good to run an environment with two ubuntu/qemu versions.
> It always happens that some cpu features are supported in the higher
> version but not supported in the older version.
> From my experience, the migration from older version to higher version
> works like a charm, but there were many issues in migration from higher
> version to older version.
>
> I do not have a solution for you. I have tried to hack
> /etc/libvirt/hooks/qemu but it didn't work.
> Have you tried with other cpu models like x86_Opteron_G5 ? you can find the
> cpu features of each cpu model in /usr/share/libvirt/cpu_map/
>
> Anyway, even if the vm migration succeeds, you do not know if vm works
> fine. I believe the best solution is upgrading all hosts to the same OS
> version.
>
> -Wei
>
> On Tue, 23 Nov 2021 at 16:31, Wido den Hollander <w...@widodh.nl> wrote:
>
> > Hi,
> >
> > I'm trying to debug an issue with live migrations between Ubuntu 18.04
> > and 20.04 machines each with different CPUs:
> >
> > - Ubuntu 18.04 with AMD Epyc 7552 (Rome)
> > - Ubuntu 20.04 with AMD Epyc 7662 (Milan)
> >
> > We are currently using this setting:
> >
> > guest.cpu.mode=custom
> > guest.cpu.model=EPYC
> >
> > This does not allow for live migrations:
> >
> > Ubuntu 20.04 with Epyc 7662 to Ubuntu 18.04 with Epyc 7552 fails
> >
> > "ExecutionException : org.libvirt.LibvirtException: unsupported
> > configuration: unknown CPU feature: npt"
> >
> > So we tried to define a set of features manually:
> >
> > guest.cpu.features=3dnowprefetch abm adx aes apic arat avx avx2 bmi1
> > bmi2 clflush clflushopt cmov cr8legacy cx16 cx8 de f16c fma fpu fsgsbase
> > fxsr fxsr_opt lahf_lm lm mca mce misalignsse mmx mmxext monitor movbe
> > msr mtrr nx osvw pae pat pclmuldq pdpe1gb pge pni popcnt pse pse36
> > rdrand rdseed rdtscp sep sha-ni smap smep sse sse2 sse4.1 sse4.2 sse4a
> > ssse3 svm syscall tsc vme xgetbv1 xsave xsavec xsaveopt -npt -x2apic
> > -hypervisor -topoext -nrip-save
> >
> > This results in this going into the XML:
> >
> > <feature policy='disable' name='npt'/>
> >
> > You would say that works, but then the target host (18.04 with the 7552)
> > says it doesn't support the feature 'npt' and the migration still fails.
> >
> > Now we could ofcourse use the kvm64 CPU from Qemu, but that's lacking so
> > many features that for example TLS offloading isn't available.
> >
> > I also tried to set 'EPYC-Rome' on the Ubuntu 20.04 hypervisor, but it
> > then complains on the Ubuntu 18.04 hypervisor that the CPU 'EPYC-Rome'
> > is unknown as the 18.04 hypervisor doesn't have that profile.
> >
> > Any ideas on how to get this working?
> >
> > Wido
> >
>


-- 

Andrija Panić

Reply via email to