[RFC net-next 0/6] Cleanup IRQ affinity checks in several drivers

From: Joe Damato
Date: Mon Aug 12 2024 - 10:57:30 EST


Greetings:

Several drivers make a check in their napi poll functions to determine
if the CPU affinity of the IRQ has changed. If it has, the napi poll
function returns a value less than the budget to force polling mode to
be disabled, so that it can be rescheduled on the correct CPU next time
the softirq is raised.

This code is repeated in at least 5 drivers that I found, but there
might be more I missed (please let me know and I'll fix them). IMHO,
it'd be nice to fix this in existing drivers and avoid future drivers
repeating the same pattern.

FWIW, it's possible that patch 4, 5, and 6 could be separated into
"fixes" for the type mismatches and then, separaately, new code, but
that seemed like a lot of noise for the list and maybe unnecessary.

If I should first send fixes for 4, 5, and 6 and then send this cleanup
series after, let me know and I'll do that.

Sending as an RFC because:
- I wanted to see if this cleanup was desirable overall, and
- If so, do I need to send fixes for 4-6 first?

Thanks,
Joe

Joe Damato (6):
netdevice: Add napi_affinity_no_change
mlx5: Use napi_affinity_no_change
gve: Use napi_affinity_no_change
i40e: Use napi_affinity_no_change
iavf: Use napi_affinity_no_change
mlx4: Use napi_affinity_no_change

drivers/net/ethernet/google/gve/gve_main.c | 14 +-------------
drivers/net/ethernet/intel/i40e/i40e.h | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 4 +---
drivers/net/ethernet/intel/iavf/iavf.h | 1 +
drivers/net/ethernet/intel/iavf/iavf_main.c | 4 +++-
drivers/net/ethernet/intel/iavf/iavf_txrx.c | 4 +---
drivers/net/ethernet/mellanox/mlx4/en_cq.c | 6 ++++--
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 6 +-----
drivers/net/ethernet/mellanox/mlx4/eq.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en.h | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +-
drivers/net/ethernet/mellanox/mlx5/core/en_txrx.c | 9 +--------
include/linux/mlx4/device.h | 2 +-
include/linux/netdevice.h | 8 ++++++++
net/core/dev.c | 14 ++++++++++++++
17 files changed, 42 insertions(+), 41 deletions(-)

--
2.25.1