Re: [PATCH net 2/3] i40e: Fix not setting xps_cpus after reset
From: Jakub Kicinski <kuba@kernel.org>
Date: 2022-09-28 01:29:50
On Mon, 26 Sep 2022 13:32:13 -0700 Tony Nguyen wrote:
During tx rings configuration default XPS queue config is set and __I40E_TX_XPS_INIT_DONE is locked. XPS CPUs maps are cleared in every reset by netdev_set_num_tc() call regardless it was set by user or driver. If reset with reinit occurs __I40E_TX_XPS_INIT_DONE flag is removed and XPS mapping is set to default again but after reset without reinit this flag is still set and XPS CPUs to queues mapping stays cleared. Add code to preserve xps_cpus mapping as cpumask for every queue and restore those mapping at the end of reset.
Not sure this is a fix, are there other drivers in the tree which do this? In the drivers I work with IRQ mapping and XPS are just seemingly randomly reset on reconfiguration changes. User space needs to rerun its affinitization script after all changes it makes. Apart from the fact that I don't think this is a fix, if we were to solve it we should shoot for a more generic solution and not sprinkle all drivers with #ifdef CONFIG_XPS blocks :S