Bug 1915229
Summary: | Guest with host-model cpu type can not migrate from rhel-av 8.2.1 to rhel-av 8.3.1 as "missing features: ssbd,amd-ssbd" | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | yalzhang <yalzhang> | ||||||||||
Component: | qemu-kvm | Assignee: | Dr. David Alan Gilbert <dgilbert> | ||||||||||
qemu-kvm sub component: | CPU Models | QA Contact: | Min Deng <mdeng> | ||||||||||
Status: | CLOSED WONTFIX | Docs Contact: | |||||||||||
Severity: | unspecified | ||||||||||||
Priority: | unspecified | CC: | chayang, dgilbert, fjin, jdenemar, kchamart, lcheng, mdeng, mschuppe, virt-maint | ||||||||||
Version: | 9.0 | Keywords: | FutureFeature, Triaged | ||||||||||
Target Milestone: | rc | ||||||||||||
Target Release: | --- | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Whiteboard: | |||||||||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||||||
Doc Text: | Story Points: | --- | |||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2022-07-12 07:27:27 UTC | Type: | Feature Request | ||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||
Documentation: | --- | CRM: | |||||||||||
Verified Versions: | Category: | --- | |||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||
Embargoed: | |||||||||||||
Attachments: |
|
Description
yalzhang@redhat.com
2021-01-12 09:45:16 UTC
Could you please attach qemu log from the destination host? Created attachment 1746671 [details]
content of /var/log/libvirt/qemu/test.log on target host
I don't know what changed in QEMU/KVM or whether there's a host-side configuration that could influence this, but QEMU 5.1.0 on the target host complains: qemu-kvm: warning: host doesn't support requested feature: CPUID.07H:EDX.ssbd [bit 31] qemu-kvm: warning: host doesn't support requested feature: CPUID.80000008H:EBX.amd-ssbd [bit 24] which is why libvirt reports these two features are missing and forbids migration because it would result in different guest ABI. Moving to QEMU for further investigation. BTW, migrate the same vm with cpu as "host-model" from rhel-av 8.2.1 to rhel-av 8.2.1 succeed. The src host and dst host are the same as in comment 0, the cpu of them are the same as "AMD EPYC 7251 8-Core Processor". Amnon - this would seem like something for either Eduardo or David Same issue happened when migrate vm with host-model from rhel-av 8.2.1 to rhel-av 8.3.0 source host, rhel-av 8.2.1 package version: libvirt-6.0.0-25.5.module+el8.2.1+8680+ea98947b.x86_64 qemu-kvm-4.2.0-29.module+el8.2.1+8442+7a3eadf7.5.x86_64 target host, rhel-av 8.3.0 package version: libvirt-6.6.0-7.3.module+el8.3.0+9547+7d548490.x86_64 qemu-kvm-5.1.0-14.module+el8.3.0+8790+80f9c6d8.1.x86_64 I also get that warning off my 1st gen EPYC host: [root@amd-speedway-05 x86_64]# /usr/libexec/qemu-kvm -cpu EPYC-IBPB,ssbd=on,amd-ssbd=on qemu-kvm: warning: host doesn't support requested feature: CPUID.07H:EDX.ssbd [bit 31] qemu-kvm: warning: host doesn't support requested feature: CPUID.80000008H:EBX.amd-ssbd [bit 24] qemu doesn't quit on me though unless I specify enforce=on. I'm thinking that ssbd/amd-ssbd is one of the security fixes that came along later; I'm not sure if that involved newer microcode or something else. yalzhang: Please include: a) The /var/log/libvirt/ log file from the source host as well b) the /proc/cpuinfo (NOT lscpu) from the source and target machine. c) kernel and microcode_ctl package versions of source and target. I'm suspecting this is over-reporting of amd-ssbd on older kernels, as fixed by upstream: 8715f05269bfbc6453e25e80825d781a82902f8e - kvm: x86: Host feature SSBD doesn't imply guest feature AMD_SSBD that was downstreamed in 8.3 as 03243d4f06e2fd0892d0f8cdaf68ba84eecd2eac part of bz 1813987 note that the virt-ssbd flag still works. Yes, if I roll the host kernel back to RHEL 8.2's 4.18.0-193.44.1.el8_2.x86_64 then : # /usr/libexec/qemu-kvm -cpu EPYC-IBPB,ssbd=on,amd-ssbd=on VNC server running on ::1:5900 is happy. (In reply to Dr. David Alan Gilbert from comment #12) > Yes, if I roll the host kernel back to RHEL 8.2's > 4.18.0-193.44.1.el8_2.x86_64 then : > > # /usr/libexec/qemu-kvm -cpu EPYC-IBPB,ssbd=on,amd-ssbd=on > VNC server running on ::1:5900 > > is happy. Yes, on 8.2, it works well for 4.18.0-193.44.1.el8_2.x86_64 and older kernel-4.18.0-193.19.1.el8_2.x86_64. But on 8.3 with kernel 4.18.0-240.10.1.el8_3.x86_64, it reports error: # /usr/libexec/qemu-kvm -cpu EPYC-IBPB,ssbd=on,amd-ssbd=on qemu-kvm: warning: host doesn't support requested feature: CPUID.07H:EDX.ssbd [bit 31] qemu-kvm: warning: host doesn't support requested feature: CPUID.80000008H:EBX.amd-ssbd [bit 24] VNC server running on ::1:5900 ^Cqemu-kvm: terminating on signal 2 # rpm -q kernel kernel-4.18.0-240.10.1.el8_3.x86_64 Created attachment 1756230 [details]
libvirtd log on source host
I have checked the libvirtd log on source host, there is no error or fail, attached the log for reference.
Created attachment 1756231 [details]
libvirtd log on source host
I have checked the libvirtd log on source host, there is no error or fail, attached the log for reference.
Created attachment 1756233 [details] cpuinfo: last processor of the target I have compared the cpu info by "cat /proc/cpuinfo", the only difference is the frequency(only compared 1 of the processors): # diff last_processor_of_source last_processor_of_target 8c8 < cpu MHz : 2890.947 --- > cpu MHz : 2460.013 Thanks; note I wanted the /var/log/libvirt/qemu/SOMETHING.log from the source showing the commandline, not the libvirtd.log - still, I think we understand what's going on now. Thanks. jdenemar: We think the kernel + qemu is now doing the 'right' thing - the problem here is really 8.2.x kernel over-promising flags that it shouldn't be advertising. When the guest tries to write the MSR that was advertised it gets a backtrace anyway (bz 1808996 ). Could we fudge this at the libvirt level at all? a) By dropping these flags during the migrate (the guest's idea of that MSR is screwy enough anyway), give the VM virt-ssbd and it should fix itself after a reboot. b) Plus as a fix for 8.2 so that new machines get created with virt-ssbd rather than these flags. You'd want that to only happen on EPYC 7xx1 series hosts; (b) *on* those hosts, (a) migrating *from* one of those hosts. Move RHEL-AV bugs to RHEL9. If necessary to resolve in RHEL8, then clone to the current RHEL8 release. After evaluating this issue, there are no plans to address it further or fix it in an upcoming release. Therefore, it is being closed. If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened. |