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

[virtio-win][netkvm] Server 2025 hang with PollMode enabled

    • No
    • Important
    • rhel-sst-virtualization-windows
    • ssg_virtualization
    • 3
    • QE ack
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • Fail
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • x86_64
    • None

      https://github.com/virtio-win/kvm-guest-drivers-windows/issues/1312

      Installation of build 266 (and later) hangs on 2025 (with PollMode enabled)

      The problem is reproducible 100% on upstream user (Alibaba Cloud), they can't reproduce it on qemu. 

      Looking at guest dump from frozen machine I do not see any special reason why this can't happen on qemu, there is a difference with typical behavior on qemu setup, but the root cause of the difference is not clear and the flow in the driver is definitely problematic.

      2 CPUs, 2 queues

      On customer setup: 

      Windows configures RSS to work only on CPU0, so both poll handlers have the same affinity of CPU0.  But the interrupts naturally may come on any of 2 CPUs , if the interrupt comes on Q1 this triggers poll handler 1 on CPU0, but the packet is related to Q0, so we trigger poll handler 0 and the system calls it synchronously because this poll handler's affinity is also CPU0.

      On typical setup:

      Windows configures RSS to work both CPUs, 2 poll handlers has different affinities and no problem happens.  

      Reproduction procedure worked for me:

      1. Configure virtio device with 2 queues, 2 cpus 
      2. Install driver 266... 274 for Win11/2025
      3. Open Powershell admin prompt
      4. Run get-netadapter to see name(s) of virtio-net adapter
      5. Run get-NetAdapterRss -Name "adapter name"
      6. If printed MaxProcessors = 1, goto 8
      7. Run set-NetAadapterRss -Name "adapter name" -MaxProcessors 1
      8. If the OS is not frozen yet, try to turn the link off-on (via set_link hmp, for example) or ping the virtio-net from several different LAN addresses.

       

       

              yuri.benditovich Yuri Benditovich
              yuri.benditovich Yuri Benditovich
              Meirav Dean Meirav Dean
              Wenkang Ji Wenkang Ji
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated: