net/mlx5: Use effective interrupt affinity
authorThomas Gleixner <tglx@linutronix.de>
Thu, 10 Dec 2020 19:25:59 +0000 (20:25 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 15 Dec 2020 15:19:33 +0000 (16:19 +0100)
Using the interrupt affinity mask for checking locality is not really
working well on architectures which support effective affinity masks.

The affinity mask is either the system wide default or set by user space,
but the architecture can or even must reduce the mask to the effective set,
which means that checking the affinity mask itself does not really tell
about the actual target CPUs.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Saeed Mahameed <saeedm@nvidia.com>
Link: https://lore.kernel.org/r/20201210194044.876342330@linutronix.de
drivers/net/ethernet/mellanox/mlx5/core/en_main.c

index 4345bc4..9bcf73f 100644 (file)
@@ -1998,7 +1998,7 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix,
        c->num_tc   = params->num_tc;
        c->xdp      = !!params->xdp_prog;
        c->stats    = &priv->channel_stats[ix].ch;
-       c->aff_mask = irq_get_affinity_mask(irq);
+       c->aff_mask = irq_get_effective_affinity_mask(irq);
        c->lag_port = mlx5e_enumerate_lag_port(priv->mdev, ix);
 
        netif_napi_add(netdev, &c->napi, mlx5e_napi_poll, 64);