]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Revert "net/mlx4_en: Use affinity hint"
authorDavid S. Miller <davem@davemloft.net>
Mon, 2 Jun 2014 07:18:48 +0000 (00:18 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Jun 2014 07:18:48 +0000 (00:18 -0700)
This reverts commit 70a640d0dae3a9b1b222ce673eb5d92c263ddd61.

Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/infiniband/hw/mlx4/main.c
drivers/net/ethernet/mellanox/mlx4/en_cq.c
drivers/net/ethernet/mellanox/mlx4/en_netdev.c
drivers/net/ethernet/mellanox/mlx4/eq.c
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h
include/linux/mlx4/device.h

index 58b1f239ac2bb2db2eef3591a869e447d877c2d0..199c7896f08188ca40fa9cd30462f0631d387338 100644 (file)
@@ -1897,7 +1897,7 @@ static void mlx4_ib_alloc_eqs(struct mlx4_dev *dev, struct mlx4_ib_dev *ibdev)
                                 i, j, dev->pdev->bus->name);
                        /* Set IRQ for specific name (per ring) */
                        if (mlx4_assign_eq(dev, name, NULL,
-                                          &ibdev->eq_table[eq], NULL)) {
+                                          &ibdev->eq_table[eq])) {
                                /* Use legacy (same as mlx4_en driver) */
                                pr_warn("Can't allocate EQ %d; reverting to legacy\n", eq);
                                ibdev->eq_table[eq] =
index ea2cd72e53680a2adc65e61f2bd35efde42f79e8..636963db598ae0025f52aa806f323c61261b7d97 100644 (file)
@@ -118,15 +118,11 @@ int mlx4_en_activate_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq,
        if (cq->is_tx == RX) {
                if (mdev->dev->caps.comp_pool) {
                        if (!cq->vector) {
-                               struct mlx4_en_rx_ring *ring =
-                                       priv->rx_ring[cq->ring];
-
                                sprintf(name, "%s-%d", priv->dev->name,
                                        cq->ring);
                                /* Set IRQ for specific name (per ring) */
                                if (mlx4_assign_eq(mdev->dev, name, rmap,
-                                                  &cq->vector,
-                                                  ring->affinity_mask)) {
+                                                  &cq->vector)) {
                                        cq->vector = (cq->ring + 1 + priv->port)
                                            % mdev->dev->caps.num_comp_vectors;
                                        mlx4_warn(mdev, "Failed assigning an EQ to %s, falling back to legacy EQ's\n",
index 05d135572abcee114aef29406692bb3cd1e095d2..58209bd0c94c6ced62a5984dd72911669eaa7ef9 100644 (file)
@@ -1526,32 +1526,6 @@ static void mlx4_en_linkstate(struct work_struct *work)
        mutex_unlock(&mdev->state_lock);
 }
 
-static void mlx4_en_init_affinity_hint(struct mlx4_en_priv *priv, int ring_idx)
-{
-       struct mlx4_en_rx_ring *ring = priv->rx_ring[ring_idx];
-       int numa_node = priv->mdev->dev->numa_node;
-
-       if (numa_node == -1)
-               return;
-
-       if (!zalloc_cpumask_var(&ring->affinity_mask, GFP_KERNEL)) {
-               en_err(priv, "Failed to allocate core mask\n");
-               return;
-       }
-
-       if (cpumask_set_cpu_local_first(ring_idx, numa_node,
-                                       ring->affinity_mask)) {
-               en_err(priv, "Failed setting affinity hint\n");
-               free_cpumask_var(ring->affinity_mask);
-               ring->affinity_mask = NULL;
-       }
-}
-
-static void mlx4_en_free_affinity_hint(struct mlx4_en_priv *priv, int ring_idx)
-{
-       free_cpumask_var(priv->rx_ring[ring_idx]->affinity_mask);
-       priv->rx_ring[ring_idx]->affinity_mask = NULL;
-}
 
 int mlx4_en_start_port(struct net_device *dev)
 {
@@ -1593,8 +1567,6 @@ int mlx4_en_start_port(struct net_device *dev)
 
                mlx4_en_cq_init_lock(cq);
 
-               mlx4_en_init_affinity_hint(priv, i);
-
                err = mlx4_en_activate_cq(priv, cq, i);
                if (err) {
                        en_err(priv, "Failed activating Rx CQ\n");
@@ -1875,8 +1847,6 @@ void mlx4_en_stop_port(struct net_device *dev, int detach)
                        msleep(1);
                mlx4_en_deactivate_rx_ring(priv, priv->rx_ring[i]);
                mlx4_en_deactivate_cq(priv, cq);
-
-               mlx4_en_free_affinity_hint(priv, i);
        }
 }
 
index f91659e5fa13e2a5f70b5f8d6e4441d060edf0fb..d954ec1eac173752e23e57653ccd4d2cae2de944 100644 (file)
@@ -1376,7 +1376,7 @@ int mlx4_test_interrupts(struct mlx4_dev *dev)
 EXPORT_SYMBOL(mlx4_test_interrupts);
 
 int mlx4_assign_eq(struct mlx4_dev *dev, char *name, struct cpu_rmap *rmap,
-                  int *vector, cpumask_var_t cpu_hint_mask)
+                  int *vector)
 {
 
        struct mlx4_priv *priv = mlx4_priv(dev);
@@ -1411,15 +1411,6 @@ int mlx4_assign_eq(struct mlx4_dev *dev, char *name, struct cpu_rmap *rmap,
                        }
                        mlx4_assign_irq_notifier(priv, dev,
                                                 priv->eq_table.eq[vec].irq);
-                       if (cpu_hint_mask) {
-                               err = irq_set_affinity_hint(
-                                               priv->eq_table.eq[vec].irq,
-                                               cpu_hint_mask);
-                               if (err) {
-                                       mlx4_warn(dev, "Failed setting affinity hint\n");
-                                       /*we dont want to break here*/
-                               }
-                       }
 
                        eq_set_ci(&priv->eq_table.eq[vec], 1);
                }
@@ -1450,8 +1441,6 @@ void mlx4_release_eq(struct mlx4_dev *dev, int vec)
                        irq_set_affinity_notifier(
                                priv->eq_table.eq[vec].irq,
                                NULL);
-                       irq_set_affinity_hint(priv->eq_table.eq[vec].irq,
-                                             NULL);
                        free_irq(priv->eq_table.eq[vec].irq,
                                 &priv->eq_table.eq[vec]);
                        priv->msix_ctl.pool_bm &= ~(1ULL << i);
index 0e15295bedd671a0c3fc8c1ebbf0372052c489b7..b5db1bf361dc6adac67dbade22f04ab03601956c 100644 (file)
@@ -313,7 +313,6 @@ struct mlx4_en_rx_ring {
        unsigned long csum_ok;
        unsigned long csum_none;
        int hwtstamp_rx_filter;
-       cpumask_var_t affinity_mask;
 };
 
 struct mlx4_en_cq {
index b9b70e00e3c146f85189534059774acad93d79a0..ca38871a585cf2f0f0d60b7dc6aa44b73257e388 100644 (file)
@@ -1161,7 +1161,7 @@ int mlx4_fmr_free(struct mlx4_dev *dev, struct mlx4_fmr *fmr);
 int mlx4_SYNC_TPT(struct mlx4_dev *dev);
 int mlx4_test_interrupts(struct mlx4_dev *dev);
 int mlx4_assign_eq(struct mlx4_dev *dev, char *name, struct cpu_rmap *rmap,
-                  int *vector, cpumask_t *cpu_hint_mask);
+                  int *vector);
 void mlx4_release_eq(struct mlx4_dev *dev, int vec);
 
 int mlx4_get_phys_port_id(struct mlx4_dev *dev);