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ć