Bug 2012373
| Summary: | [RHEL8.6.0][qemu6.1] Boot win2022 guest very slowly with 'qemu64' model with big memory on Milan host | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 8 | Reporter: | liunana <nanliu> |
| Component: | qemu-kvm | Assignee: | Virtualization Maintenance <virt-maint> |
| qemu-kvm sub component: | CPU Models | QA Contact: | liunana <nanliu> |
| Status: | CLOSED WONTFIX | Docs Contact: | Jiri Herrmann <jherrman> |
| Severity: | low | ||
| Priority: | unspecified | CC: | bdas, coli, gfialova, jherrman, juzhang, nilal, virt-maint |
| Version: | 8.6 | Keywords: | Regression, Triaged |
| Target Milestone: | rc | Flags: | nanliu:
needinfo-
nanliu: needinfo- pm-rhel: mirror+ |
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Known Issue | |
| Doc Text: |
.Windows Server 2022 guests in some cases boot very slowly on AMD Milan
Virtual machines (VMs) that use the Windows Server 2022 guest operating system and the `qemu64` CPU model currently take a very long time to boot on hosts with an AMD EPYC 7003 series processor (also known as `AMD Milan`).
To work work around the problem, do not use `qemu64` as the CPU model, because it is an unsupported setting for VMs in RHEL 8. For example, use the `host-model` CPU instead.
|
Story Points: | --- |
| Clone Of: | Environment: | ||
| Last Closed: | 2023-04-09 07:28:00 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
Additional info:
[2]
Host mem:
# free -m
total used free shared buff/cache available
Mem: 257488 81960 131269 50 44258 173674
[3]
I can't reproduce this bug with follows combations:
-cpu qemu64 + -m 8G boot win2022 quickly
-cpu EPYC-Milan + -m 124928 boot win2022 quickly
-cpu host + -m 124928 boot win2022 quickly
Besides, I can't reproduce this bug on Intel SPR host(intel-eaglestream-spr-07.khw1.lab.eng.bos.redhat.com).
[4]
Can't reproduce this issue with 'qemu-kvm-6.0.0-29.module+el8.6.0+12490+ec3e565c.x86_64'.
Assigned to Amnon for initial triage per bz process and age of bug created or assigned to virt-maint without triage. I'm not sure qemu64 is a supported cpu type, but still, an interesting bug. Can you please test this on a Rome or Naples to see if it really is Milan specific? (In reply to Dr. David Alan Gilbert from comment #3) > I'm not sure qemu64 is a supported cpu type, but still, an interesting bug. > Can you please test this on a Rome or Naples to see if it really is Milan > specific? It works well on a Rome machine even I boot Win2022 with almost all host memory, Win2022 guest can boot up quickly. I will check Naples later once I get one. Test Env: 4.18.0-348.4.el8.x86_64 qemu-kvm-6.1.0-2.module+el8.6.0+12861+13975d62.x86_64 # free -m total used free shared buff/cache available Mem: 63806 26495 36530 13 781 36653 Swap: 32067 0 32067 QEMU cmlline: -machine pc,memory-backend=mem-machine_mem \ -m 62832 \ -object memory-backend-ram,size=62832M,id=mem-machine_mem \ Please help to check this, thanks. Best regards Liu Nana But you're running at 62832 Memory there rather than nearly twice that on the milan test; usign 62832 on a milan is that fast or slow? (In reply to Dr. David Alan Gilbert from comment #5) > But you're running at 62832 Memory there rather than nearly twice that on > the milan test; Yes, My local Rome host has no big memory, and I can't boot a guest when I overcommit too much memory. I will find another Rome machine with huge memory to try this. >usign 62832 on a milan is that fast or slow? It's fast on Milan. 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. I still can reproduce this issue on latest RHEL.8.9.
Host info:
4.18.0-500.el8.x86_64
qemu-kvm-6.2.0-35.module+el8.9.0+19166+e262ca96.x86_64
amd-genoa-02.khw1.lab.eng.bos.redhat.com
Model name: AMD EPYC 9754 128-Core Processor
Guest: Win2022
# free -m
total used free shared buff/cache available
Mem: 127929 11493 115932 19 503 115575
Swap: 4095 0 4095
qemu commandline:
/usr/libexec/qemu-kvm \
-name 'avocado-vt-vm1' \
-sandbox on \
-blockdev node-name=file_ovmf_code,driver=file,filename=/usr/share/OVMF/OVMF_CODE.secboot.fd,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_ovmf_code,driver=raw,read-only=on,file=file_ovmf_code \
-blockdev node-name=file_ovmf_vars,driver=file,filename=/home/kar/workspace/root/avocado/data/avocado-vt/avocado-vt-vm1_win2022-64-virtio-scsi-ovmf_qcow2_filesystem_VARS.raw,auto-read-only=on,discard=unmap \
-blockdev node-name=drive_ovmf_vars,driver=raw,read-only=off,file=file_ovmf_vars \
-machine q35,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars,memory-backend=mem-machine_mem,kernel-irqchip=split \
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
-device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \
-nodefaults \
-device VGA,bus=pcie.0,addr=0x2 \
-m 64G \
-object memory-backend-ram,size=64G,id=mem-machine_mem \
-smp 224,maxcpus=224,cores=112,threads=1,dies=1,sockets=2 \
-cpu 'qemu64',enforce,hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,kvm_pv_unhalt=on \
-device pvpanic,ioport=0x505,id=idOR0s3n \
-chardev socket,server=on,path=/tmp/serial-serial0,wait=off,id=chardev_serial0 \
-device isa-serial,id=serial0,chardev=chardev_serial0 \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \
-device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
-device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-2,addr=0x0 \
-blockdev '{"node-name": "file_image1", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/images/win2022-64-virtio-scsi-ovmf.qcow2", "cache": {"direct": true, "no-flush": false}}' \
-blockdev '{"node-name": "drive_image1", "driver": "qcow2", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_image1"}' \
-device scsi-hd,id=image1,drive=drive_image1,write-cache=on \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
-device virtio-net-pci,mac=9a:42:d4:3c:2d:6c,id=idgJ8Q1I,netdev=idw3KDQu,bus=pcie-root-port-3,addr=0x0 \
-netdev tap,id=idw3KDQu,vhost=on \
-vnc :0 \
-rtc base=localtime,clock=host,driftfix=slew \
-boot menu=off,order=cdn,once=c,strict=off \
-enable-kvm \
-monitor stdio \
-global mch.extended-tseg-mbytes=48 \
-chardev file,id=firmware,path=/tmp/edk2.log \
-device isa-debugcon,iobase=0x402,chardev=firmware \
Hi Bandan,
Would you please help to check this issue? 'qemu64' is still supported in qemu-kvm-6.2.0.
Do we have any plan for this fix? If so I will re-open this bug, thanks.
Best regards
Nana
(In reply to liunana from comment #22) > I still can reproduce this issue on latest RHEL.8.9. > Host info: > 4.18.0-500.el8.x86_64 > qemu-kvm-6.2.0-35.module+el8.9.0+19166+e262ca96.x86_64 > amd-genoa-02.khw1.lab.eng.bos.redhat.com > Model name: AMD EPYC 9754 128-Core Processor > Guest: Win2022 > > # free -m > total used free shared buff/cache > available > Mem: 127929 11493 115932 19 503 > 115575 > Swap: 4095 0 4095 > > > qemu commandline: > /usr/libexec/qemu-kvm \ > -name 'avocado-vt-vm1' \ > -sandbox on \ > -blockdev > node-name=file_ovmf_code,driver=file,filename=/usr/share/OVMF/OVMF_CODE. > secboot.fd,auto-read-only=on,discard=unmap \ > -blockdev > node-name=drive_ovmf_code,driver=raw,read-only=on,file=file_ovmf_code \ > -blockdev > node-name=file_ovmf_vars,driver=file,filename=/home/kar/workspace/root/ > avocado/data/avocado-vt/avocado-vt-vm1_win2022-64-virtio-scsi- > ovmf_qcow2_filesystem_VARS.raw,auto-read-only=on,discard=unmap \ > -blockdev > node-name=drive_ovmf_vars,driver=raw,read-only=off,file=file_ovmf_vars \ > -machine > q35,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars,memory-backend=mem- > machine_mem,kernel-irqchip=split \ > -device > pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1, > chassis=1 \ > -device > pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \ > -nodefaults \ > -device VGA,bus=pcie.0,addr=0x2 \ > -m 64G \ > -object memory-backend-ram,size=64G,id=mem-machine_mem \ > -smp 224,maxcpus=224,cores=112,threads=1,dies=1,sockets=2 \ > -cpu > 'qemu64',enforce,hv_stimer,hv_synic,hv_vpindex,hv_relaxed, > hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush, > hv_reenlightenment,hv_stimer_direct,hv_ipi,kvm_pv_unhalt=on \ > -device pvpanic,ioport=0x505,id=idOR0s3n \ > -chardev > socket,server=on,path=/tmp/serial-serial0,wait=off,id=chardev_serial0 \ > -device isa-serial,id=serial0,chardev=chardev_serial0 \ > -device > pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0, > chassis=2 \ > -device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \ > -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ > -device > pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0, > chassis=3 \ > -device > virtio-scsi-pci,id=virtio_scsi_pci0,bus=pcie-root-port-2,addr=0x0 \ > -blockdev '{"node-name": "file_image1", "driver": "file", > "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": > "/home/kvm_autotest_root/images/win2022-64-virtio-scsi-ovmf.qcow2", "cache": > {"direct": true, "no-flush": false}}' \ > -blockdev '{"node-name": "drive_image1", "driver": "qcow2", > "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": > "file_image1"}' \ > -device scsi-hd,id=image1,drive=drive_image1,write-cache=on \ > -device > pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0, > chassis=4 \ > -device > virtio-net-pci,mac=9a:42:d4:3c:2d:6c,id=idgJ8Q1I,netdev=idw3KDQu,bus=pcie- > root-port-3,addr=0x0 \ > -netdev tap,id=idw3KDQu,vhost=on \ > -vnc :0 \ > -rtc base=localtime,clock=host,driftfix=slew \ > -boot menu=off,order=cdn,once=c,strict=off \ > -enable-kvm \ > -monitor stdio \ > -global mch.extended-tseg-mbytes=48 \ > -chardev file,id=firmware,path=/tmp/edk2.log \ > -device isa-debugcon,iobase=0x402,chardev=firmware \ > > Hi Bandan, > > Would you please help to check this issue? 'qemu64' is still supported in > qemu-kvm-6.2.0. > Do we have any plan for this fix? If so I will re-open this bug, thanks. > > > Best regards > Nana I am not sure whether this is worth fixing. Can we not document this as a known issue for older qemu releases ? Hi Jiri, Would you please help check Bandan's question in Comment 25? Thanks. Best regards Nana |
Description of problem: Booting Win2022 guest will take a long time (about 15 minutes) with configurations "'-cpu qemu64' + -m 124928(half memory of host)" on Milan host. Version-Release number of selected component (if applicable): amd-milan-09.khw1.lab.eng.bos.redhat.com 4.18.0-345.1.el8.x86_64 qemu-kvm-6.1.0-2.module+el8.6.0+12861+13975d62.x86_64 How reproducible: 6/6 Steps to Reproduce: 1. boot win2022 guest with -cpu qemu64 + -m 124928(half memory of host) on Milan host, full command [1] 2. 3. Actual results: Booting will take a long time and is very slow Expected results: Win2022 can boot successfully quickly Additional info: [1] full command /usr/libexec/qemu-kvm \ -name 'avocado-vt-vm1' \ -sandbox on \ -machine pc,memory-backend=mem-machine_mem \ -nodefaults \ -device VGA,bus=pci.0,addr=0x2 \ -m 124928 \ -object memory-backend-ram,size=124928M,id=mem-machine_mem \ -smp 128,maxcpus=128,cores=64,threads=1,dies=1,sockets=2 \ -cpu 'qemu64',enforce,-mpx,hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,+kvm_pv_unhalt \ -chardev socket,id=chardev_serial0,path=/tmp/serial-serial0,wait=off,server=on \ -device isa-serial,id=serial0,chardev=chardev_serial0 \ -device qemu-xhci,id=usb1,bus=pci.0,addr=0x3 \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pci.0,addr=0x4 \ -blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/kvm_autotest_root/images/win2022-64-virtio-scsi.qcow2,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 \ -device scsi-hd,id=image1,drive=drive_image1,write-cache=on \ -device virtio-net-pci,mac=9a:42:98:3e:f5:d6,id=idou98LU,netdev=id4pr52t,bus=pci.0,addr=0x5 \ -netdev tap,id=id4pr52t,vhost=on \ -vnc :0 \ -rtc base=localtime,clock=host,driftfix=slew \ -boot menu=off,order=cdn,once=c,strict=off \ -enable-kvm \ -monitor stdio \