gve: Add netif_set_xps_queue call
authorCatherine Sullivan <csully@google.com>
Mon, 11 Oct 2021 15:36:48 +0000 (08:36 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Oct 2021 22:25:36 +0000 (23:25 +0100)
Configure XPS when adding tx queues to the notification blocks.

Fixes: dbdaa67540512 ("gve: Move some static functions to a common file")
Signed-off-by: Catherine Sullivan <csully@google.com>
Signed-off-by: David Awogbemila <awogbemila@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/google/gve/gve_utils.c

index 93f3dcbeeea9ddbb113a3e57e75fd0d3bd9db0e7..45ff7a9ab5f9c01c5c5fe290d3f0c6f472cdb6df 100644 (file)
@@ -18,12 +18,16 @@ void gve_tx_remove_from_block(struct gve_priv *priv, int queue_idx)
 
 void gve_tx_add_to_block(struct gve_priv *priv, int queue_idx)
 {
+       unsigned int active_cpus = min_t(int, priv->num_ntfy_blks / 2,
+                                        num_online_cpus());
        int ntfy_idx = gve_tx_idx_to_ntfy(priv, queue_idx);
        struct gve_notify_block *block = &priv->ntfy_blocks[ntfy_idx];
        struct gve_tx_ring *tx = &priv->tx[queue_idx];
 
        block->tx = tx;
        tx->ntfy_id = ntfy_idx;
+       netif_set_xps_queue(priv->dev, get_cpu_mask(ntfy_idx % active_cpus),
+                           queue_idx);
 }
 
 void gve_rx_remove_from_block(struct gve_priv *priv, int queue_idx)