Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-119944

netkvm: virtio-net multi-queue feature not functional on aarch64 only

Linking RHIVOS CVEs to...Migration: Automation ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • No
    • Important
    • rhel-virt-windows
    • None
    • QE ack
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • Red Hat Enterprise Linux
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • aarch64
    • Windows
    • None

      What were you trying to do that didn't work?
      QE found that the multi-queues function was failing on the ARM platform, but it is normal on the x86 platform. Specifically, both netkvm-wmi and traceview show that CTRL_MQ is not acknowledged, even though the queue is set to 1, despite QE setting the queue to 4 or 8.

      Please provide the package NVR for which bug is seen:

      • DISTRO=RHEL-10.1-20250824.1
      • CPU=Ampere-1a
      • virtio-win-prewhql-0.1-279_aarch64
      • kernel-6.12.0-122.el10.aarch64
      • package seabios-bin is not installed
      • package edk2-ovmf is not installed
      • swtpm-0.9.0-5.el10.aarch64
      • qemu-kvm-core-10.0.0-12.el10.aarch64

      How reproducible:
      100%

      Steps to reproduce
      1. Boot the following qemu command line with the multi-queueus

      /usr/libexec/qemu-kvm \
      -name guest=win11,debug-threads=on \
      -blockdev '{"node-name": "file_aavmf_code", "driver": "file", "filename": "/usr/share/edk2/aarch64/QEMU_EFI-silent-pflash.raw", "auto-read-only": true, "discard": "unmap"}' \
      -blockdev '{"node-name": "drive_aavmf_code", "driver": "raw", "read-only": true, "file": "file_aavmf_code"}' \
      -blockdev '{"node-name": "file_aavmf_vars", "driver": "file", "filename": "/root/avocado/data/avocado-vt/avocado-vt-vm1_rhel101-aarch64-4k-virtio-scsi_qcow2_filesystem_VARS.qcow2", "auto-read-only": true, "discard": "unmap"}' \
      -blockdev '{"node-name": "drive_aavmf_vars", "driver": "raw", "read-only": false, "file": "file_aavmf_vars"}' \
      -m 8192 \
      -smp 8 \
      -cpu 'host' \
      -machine virt,gic-version=host,pflash0=drive_aavmf_code,pflash1=drive_aavmf_vars,memory-backend=mem-machine_mem \
      -object '{"size": 8589934592, "mem-path": "/dev/shm", "share": true, "id": "mem-machine_mem","qom-type": "memory-backend-file"}'  \
      -nodefaults -vnc 0.0.0.0:14 -monitor stdio -enable-kvm \
      -device ramfb \
      -device '{"driver":"qemu-xhci","p2":15,"p3":15,"id":"usb"}' \
      -device '{"driver":"usb-tablet","id":"input0","bus":"usb.0","port":"1"}' \
      -device '{"driver":"usb-kbd","id":"input1","bus":"usb.0","port":"2"}' \
      -drive file=/home/kvm_autotest_root/iso/windows/winutils.iso,media=cdrom,if=none,id=drivers -device '{"driver":"usb-storage","drive":"drivers"}' \
      -drive file=/home/kvm_autotest_root/iso/windows/virtio-win-prewhql-0.1-279_aarch64.iso,media=cdrom,if=none,id=drivers_win -device '{"driver":"usb-storage","drive":"drivers_win"}' \
      -device '{"driver":"pcie-root-port","port":8,"chassis":1,"id":"pci.1","bus":"pcie.0","multifunction":true,"addr":"0x2"}' \
      -device '{"driver":"pcie-root-port","port":9,"chassis":2,"id":"pci.2","bus":"pcie.0","addr":"0x2.0x1"}' \
      -device '{"driver":"pcie-root-port","port":10,"chassis":3,"id":"pci.3","bus":"pcie.0","addr":"0x2.0x2"}' \
      -device '{"driver":"pcie-root-port","port":11,"chassis":4,"id":"pci.4","bus":"pcie.0","addr":"0x2.0x3"}' \
      -device '{"driver":"pcie-root-port","port":12,"chassis":5,"id":"pci.5","bus":"pcie.0","addr":"0x2.0x4"}' \
      -blockdev '{"driver":"file","filename":"/home/win11_01.qcow2","node-name":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \
      -blockdev '{"node-name":"libvirt-2-format","read-only":false,"discard":"unmap","driver":"qcow2","file":"libvirt-2-storage","backing":null}' \
      -device '{"driver":"virtio-scsi-pci","bus":"pci.3","addr":"0x0"}' \
      -device '{"driver": "scsi-hd", "id": "image1", "drive": "libvirt-2-format", "write-cache": "on"}' \
      -netdev '{"type":"tap","id":"hostnet0","queues": 8}' \
      -device '{"driver":"virtio-net-pci","netdev":"hostnet0","id":"net0","mac":"52:54:00:dc:d6:7d","bus":"pci.4","addr":"0x0","vectors":18}' \
      -device '{"driver":"virtio-gpu-pci","id":"video0","max_outputs":1,"bus":"pci.5","addr":"0x0"}' \
      -chardev socket,id=chrtpm,path=/tmp/guest-swtpm14.sock \
      -device '{"driver":"tpm-tis-device","tpmdev":"tpm-tpm0","id":"tpm0"}' \
      -tpmdev emulator,id=tpm-tpm0,chardev=chrtpm \
      -qmp tcp:localhost:4444,server,wait=off \
      -device '{"driver": "vmcoreinfo"}' \
      -device pvpanic-pci,bus=pcie.0,addr=0x7 \
      -qmp tcp:localhost:5555,server,wait=off
      

      Expected results
      netkvm-wmi.bat tells queues=8

      Actual results
      netkvm-wmi.bat tells queues=1 always

      Info: Traceview's log will attach to the Attachment panel.

        1. traceview_log.txt
          4 kB
          Wenkang Ji
        2. screenshot-1.png
          1.10 MB
          Wenkang Ji

              ybendito@redhat.com Yuri Benditovich
              rh-ee-wji Wenkang Ji
              Virt Windows SST Bugs Virt Windows SST Bugs
              Wenkang Ji Wenkang Ji
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: