Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mismatched Indirection Table error on servicing #771

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

erfrimod
Copy link

@erfrimod erfrimod commented Feb 3, 2025

Netvsp driver has a baked-in assumption that the number of resources available cannot change during servicing. There are rare cases where this is not true, such as FHR during FPGA update, should they decide to reduce the resources given. (This issue was seen during a 48 VM bringup effort.)

Tested and working in a lab environment. Works with VM reboot.

Note: Requires Ubuntu 22.04 / kernel 6.8-azure

TODO:

  • I've added code to randomly reduce/increase the adapter indirection size reported to netvsp. This is just for testing on my lab machine and will be removed.
  • I was hopeful that restart_queues() would cause the Guest to update the RSS Indirection table, but it does not. I need to find a way to restart netvsc or the adapter from UH.

RSS Indirection Table Size set to 64. The Guest shows:

vmlocaladmin@ubuntutest:~$ ethtool -x eth0
RX flow hash indirection table for eth0 with 8 RX ring(s):
    0:      0     1     2     3     4     5     6     7
    8:      0     1     2     3     4     5     6     7
   16:      0     1     2     3     4     5     6     7
   24:      0     1     2     3     4     5     6     7
   32:      0     1     2     3     4     5     6     7
   40:      0     1     2     3     4     5     6     7
   48:      0     1     2     3     4     5     6     7
   56:      0     1     2     3     4     5     6     7
RSS hash key:
6d:5a:56:da:25:5b:0e:c2:41:67:25:3d:43:a3:8f:b0:d0:ca:2b:cb:ae:7b:30:b4:77:cb:2d:a3:80:30:f2:0c:6a:42:b7:3b:be:ac:01:fa
RSS hash function:
    toeplitz: on
    xor: off
    crc32: off

RSS Indirection Table Size set to 4. The Guest shows:

vmlocaladmin@ubuntutest:~$ ethtool -x eth0
RX flow hash indirection table for eth0 with 8 RX ring(s):
    0:      0     1     2     3
RSS hash key:
6d:5a:56:da:25:5b:0e:c2:41:67:25:3d:43:a3:8f:b0:d0:ca:2b:cb:ae:7b:30:b4:77:cb:2d:a3:80:30:f2:0c:6a:42:b7:3b:be:ac:01:fa
RSS hash function:
    toeplitz: on
    xor: off
    crc32: off

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant