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

Delay in starting NetKVM Ethernet Adapter with high queues of Qemu netdev

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

    • rhel-virt-windows
    • ssg_virtualization
    • 13
    • QE ack
    • False
    • False
    • Hide

      None

      Show
      None
    • Yes
    • Red Hat Enterprise Linux
    • RHEL-10.2 Pending
    • Enhancement
    • Hide
      .Fast initialization NetKVM parameter 

      This update adds a Fast Initialization (`FastInit`) parameter for NetKVM drivers. Enabling this parameter ensures that the driver allocates only a part of the required memory blocks to virtual queues, and then indicates readiness to the kernel. The remaining memory blocks are then initialized in the background. 

      This makes starting or restarting the network in Windows virtual machines significantly faster, especially when the network back end uses a high number of virtual queues. However, it might also negatively impact performance before the background memory allocation is finished.

      FastInit is enabled by default, but you can disable it by using the Device Manager app in the Windows guest operating system.
      Show
      .Fast initialization NetKVM parameter  This update adds a Fast Initialization (`FastInit`) parameter for NetKVM drivers. Enabling this parameter ensures that the driver allocates only a part of the required memory blocks to virtual queues, and then indicates readiness to the kernel. The remaining memory blocks are then initialized in the background.  This makes starting or restarting the network in Windows virtual machines significantly faster, especially when the network back end uses a high number of virtual queues. However, it might also negatively impact performance before the background memory allocation is finished. FastInit is enabled by default, but you can disable it by using the Device Manager app in the Windows guest operating system.
    • Done
    • x86_64
    • Windows
    • None

      What were you trying to do that didn't work?
      QE was attempting to restart the netkvm ethernet adapter on a Win11 using the `.\netkvmco.exe restart 0` command. The expected behavior was that the adapter would restart promptly within a few seconds. However, the restart process takes significantly longer than expected.

       

      Please provide the package NVR for which bug is seen:

      • virtio-win-prewhql-0.1-258
      • kernel-5.14.0-443.el9.x86_64
      • edk2-ovmf-20240214-2.el9.noarch
      • qemu-kvm-core-9.0.0-3.el9.x86_64
      • swtpm-0.8.0-1.el9.x86_64

      How reproducible:
      100%

      Steps to reproduce
      1. Set the Queues of Qemu netdev as a high value (e.g. 10, 20 and 40)
      2. Restart the NetKVM Ethernet Adapter:

      • Execute the `date` command to check the current system time
      • Run the command `.\netkvmco.exe restart 0` to restart the netkvm ethernet adapter
      • Execute the `date` command to check the current system time

      3. Observe the restart Time

      Expected results
      The netkvm ethernet adapter should restart promptly within a few seconds.

      Actual results
      For instance, with queues=40, the restart took about 75 seconds.

      Addition notes:
      QE will upload all the test snapshots for debugging purposes.

        1. 24cpu-10queue-16rss.png
          24cpu-10queue-16rss.png
          4.97 MB
        2. 24cpu-20queue-16rss.png
          24cpu-20queue-16rss.png
          3.72 MB
        3. 24cpu-40queue-16rss.png
          24cpu-40queue-16rss.png
          814 kB

              ybendito@redhat.com Yuri Benditovich
              rh-ee-wji Wenkang Ji
              Meirav Dean Meirav Dean
              Wenkang Ji Wenkang Ji
              Jiří Herrmann Jiří Herrmann
              Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

                Created:
                Updated:
                Resolved: