Hide Forgot
Created attachment 1612234 [details] sosreport Description of problem: It failed to create a VM via virt-manager or web console Version-Release number of selected component (if applicable): RHEL8.1 snapshot-2.1 kernel:4.18.0-135.el8.x86_64 How reproducible: always Steps to Reproduce: 1. Install RHEL8.1 snapshot-2.1 on Whitley IceLake system 2. Open virt-manger or open browser to connect to web console 3. Create a VM then error message pop up. Actual results: Failed to create VM Expected results: Successfully to create a VM Additional info: The test machine is Intel new platform Whitley Icelake.
Created attachment 1612235 [details] virt-manager screenshot
Created attachment 1612236 [details] web console screenshot
Please send the contents of /var/log/libvirt/qemu/* for the VM, as it will contain the error messages generated by QEMU. The full text of the "Details" box for virt-manager would be useful too. The web console error looks like a different error, see bug 1652959.
(In reply to Eduardo Habkost from comment #4) > Please send the contents of /var/log/libvirt/qemu/* for the VM, as it will > contain the error messages generated by QEMU. The full text of the > "Details" box for virt-manager would be useful too. > > The web console error looks like a different error, see bug 1652959. Hi Eduardo, please get the log from sosreport bundle attached to the bug. https://bugzilla.redhat.com/attachment.cgi?id=1612234
additional info: Tested RHEL7.8 alpha build on the same HW and the issue does not occur.
According to the log, should be same issue as bug 1755175. 2019-09-06T15:38:57.569931Z qemu-kvm: can't apply global Icelake-Server-x86_64-cpu.pconfig=off: Property '.pconfig' not found 2019-09-06 15:38:57.613+0000: shutting down, reason=failed
Hi Yumei, Do we have an outlook date for fixing this defect?
(In reply to Kelvin Shieh from comment #8) > Hi Yumei, > Do we have an outlook date for fixing this defect? Fix is still being worked on upstream, so I don't have an ETA yet, but it's proposed for 8.2.0 and 8.1.z. References: https://lore.kernel.org/qemu-devel/20190926212326.4092-1-ehabkost@redhat.com/ https://lore.kernel.org/qemu-devel/20190930141104.GA4084@habkost.net/#t A possible workaround is to use `--cpu host-model-only` or `--cpu Icelake-Server` on the command-line.
Moving to libvirt, as the fix will be implemented on the libvirt side.
Patches sent upstream for review: https://www.redhat.com/archives/libvir-list/2019-November/msg00356.html
This bug is now fixed upstream by commit 668797dc5cb474585609559dbe610e09517e23e6 Refs: v5.9.0-143-g668797dc5c Author: Jiri Denemark <jdenemar> AuthorDate: Thu Nov 7 16:25:47 2019 +0100 Commit: Jiri Denemark <jdenemar> CommitDate: Tue Nov 12 20:14:15 2019 +0100 cpu_conf: Pass policy to CPU feature filtering callbacks Signed-off-by: Jiri Denemark <jdenemar> Reviewed-by: Daniel P. Berrangé <berrange> commit ae793ecbcbd17b118ef3a876d247abb49574ab0e Refs: v5.9.0-144-gae793ecbcb Author: Jiri Denemark <jdenemar> AuthorDate: Fri Oct 18 16:14:23 2019 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: Tue Nov 12 20:14:15 2019 +0100 qemuxml2*test: Add tests for Icelake-Server,-pconfig Signed-off-by: Jiri Denemark <jdenemar> Reviewed-by: Daniel P. Berrangé <berrange> commit ac34e141596fab70fbe91a396311f80db6cb57c5 Refs: v5.9.0-145-gac34e14159 Author: Jiri Denemark <jdenemar> AuthorDate: Fri Oct 18 14:33:19 2019 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: Tue Nov 12 20:14:16 2019 +0100 qemu: Drop disabled CPU features unknown to QEMU When a CPU definition wants to explicitly disable some features that are unknown to QEMU, we can safely drop them from the definition before starting QEMU. Naturally QEMU won't enable such features implicitly. Signed-off-by: Jiri Denemark <jdenemar> Reviewed-by: Daniel P. Berrangé <berrange> commit 6b4cc15730e5b2330eaba2b211f16547dccd665c Refs: v5.9.0-147-g6b4cc15730 Author: Jiri Denemark <jdenemar> AuthorDate: Fri Oct 18 13:50:19 2019 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: Tue Nov 12 20:14:16 2019 +0100 cputest: Add data for Ice Lake Server CPU Signed-off-by: Jiri Denemark <jdenemar> Reviewed-by: Daniel P. Berrangé <berrange> commit 9cd03f7957e114892ae54e7ccb3758b6fb440644 Refs: [master], [cpu-fixes], {origin/master}, {origin/HEAD}, v5.9.0-148-g9cd03f7957 Author: Jiri Denemark <jdenemar> AuthorDate: Fri Oct 18 14:33:00 2019 +0200 Commit: Jiri Denemark <jdenemar> CommitDate: Tue Nov 12 20:14:16 2019 +0100 cpu_map: Drop pconfig from Icelake-Server CPU model The pconfig feature was enabled in QEMU by accident in 3.1.0. All other newer versions do not support it and it was removed from the Icelake-Server CPU model in QEMU. We don't normally change our CPU models even when QEMU does so to avoid breaking migrations between different versions of libvirt. But we can safely do so in this specific case. QEMU never supported enabling pconfig so any domain which was able to start has pconfig disabled. With a small compatibility hack which explicitly disables pconfig when CPU model equals Icelake-Server in migratable domain definition, only one migration scenario stays broken (and there's nothing we can do about it): from any host to a host with libvirt < 5.10.0 and QEMU > 3.1.0. https://bugzilla.redhat.com/show_bug.cgi?id=1749672 Signed-off-by: Jiri Denemark <jdenemar> Reviewed-by: Daniel P. Berrangé <berrange>
Hi Jiri, Does the target version is RHEL8.2?
Yes and it should also be backported as a z-stream fix to 8.1.
Hi Jiri, Thanks for the update!
Hi Lenovo verified that RHEL-8.2.0-InternalSnapshot-2.1 can install VM successfully.
Verify this bug with libvirt-daemon-4.5.0-38.module+el8.2.0+5435+dd02dc4c.x86_64: 1. prepare a Icelake server host: # lscpu ... Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm mpx rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local wbnoinvd dtherm ida arat pln pts avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq la57 rdpid pconfig arch_capabilities ... 2. check virsh domcapabilities output: <mode name='host-passthrough' supported='yes'/> <mode name='host-model' supported='yes'> <model fallback='forbid'>Icelake-Server</model> <vendor>Intel</vendor> <feature policy='require' name='ss'/> <feature policy='require' name='vmx'/> <feature policy='require' name='hypervisor'/> <feature policy='require' name='tsc_adjust'/> <feature policy='require' name='avx512ifma'/> <feature policy='require' name='sha-ni'/> <feature policy='require' name='stibp'/> <feature policy='require' name='arch-capabilities'/> <feature policy='require' name='xsaves'/> <feature policy='require' name='invtsc'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='ibrs-all'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <-no pconfig <feature policy='disable' name='intel-pt'/> <feature policy='disable' name='ssbd'/> </mode> 3. start guest use host-model cpu mode: # virsh dumpxml vm1 --inactive <domain type='kvm'> <name>vm1</name> ... <cpu mode='host-model' check='partial'> <model fallback='allow'/> <feature policy='disable' name='vmx'/> <numa> <cell id='0' cpus='0-1' memory='512000' unit='KiB'/> <cell id='1' cpus='2-3' memory='512000' unit='KiB'/> </numa> </cpu> ... # virsh start vm1 Domain vm1 started 4. # virsh dumpxml vm1 ... <cpu mode='custom' match='exact' check='full'> <model fallback='forbid'>Icelake-Server</model> <vendor>Intel</vendor> <feature policy='require' name='ss'/> <feature policy='disable' name='vmx'/> <feature policy='require' name='hypervisor'/> <feature policy='require' name='tsc_adjust'/> <feature policy='require' name='avx512ifma'/> <feature policy='require' name='sha-ni'/> <feature policy='require' name='stibp'/> <feature policy='require' name='arch-capabilities'/> <feature policy='require' name='xsaves'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='ibrs-all'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='disable' name='intel-pt'/> <feature policy='disable' name='ssbd'/> 5. check qemu command line, there is no pconfig: # ps aux|grep qemu ... -cpu Icelake-Server,ss=on,vmx=off,hypervisor=on,tsc-adjust=on,avx512ifma=on,sha-ni=on,stibp=on,arch-capabilities=on,xsaves=on,rdctl-no=on,ibrs-all=on,skip-l1dfl-vmentry=on,intel-pt=off,ssbd=off
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2020:1587