Re: [PATCH net-next v2 13/14] ixgbe: preserve RSS indirection table across admin down/up
From: Kohei Enju <hidden>
Date: 2025-10-21 04:00:16
Also in:
linux-doc, lkml
On Mon, 20 Oct 2025 18:32:46 -0700, Jakub Kicinski wrote:
On Thu, 16 Oct 2025 23:08:42 -0700 Jacob Keller wrote:quoted
Currently, the RSS indirection table configured by user via ethtool is reinitialized to default values during interface resets (e.g., admin down/up, MTU change). As for RSS hash key, commit 3dfbfc7ebb95 ("ixgbe: Check for RSS key before setting value") made it persistent across interface resets. Adopt the same approach used in igc and igb drivers which reinitializes the RSS indirection table only when the queue count changes. Since the number of RETA entries can also change in ixgbe, let's make user configuration persistent as long as both queue count and the number of RETA entries remain unchanged.We should take this a step further and also not reinitialize if netif_is_rxfh_configured(). Or am I missing something?
Hi Jakub, thank you for reviewing. Actually, you raise a good point about netif_is_rxfh_configured(). However, we can't determine whether we should reinitialize or not based solely on netif_is_rxfh_configured(), since the RETA table is determined by (1) the queue count and (2) the size of RETA table. So, simply skipping reinitialization on netif_is_rxfh_configured() would leave invalid RETA entries when those parameters are to be changed. For example, consider a scenario where the queue count is 8 with user configuration containing values from 0 to 7. When queue count changes from 8 to 4 and we skip the reinitialization in this scenario, entries pointing to queues 4-7 become invalid. The same issue applies when the RETA table size changes. Furthermore, IIUC, adding netif_is_rxfh_configured() to the current condition wouldn't provide additional benefit. When parameters remain unchanged, regardless of netif_is_rxfh_configured(), we already preserve the RETA entries which might be user-configured or default values, Therefore I believe the current logic is correct as is, and we should reinitialize the RETA entries when either parameter changes, regardless of netif_is_rxfh_configured().