Re: Patch "Revert "mlx5: move affinity hints assignments to generic code"" has been added to the 4.14-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 12/31/2017 3:37 AM, Sagi Grimberg wrote:

So things are broken in Linus's tree?

I wasn't aware that this landed in Linus tree.

CC'ing DaveM.

Usually reverting is the safe thing to do, we should just be now back at
the state the code was in before the patch, or has something else
changed here?

The patch title is misleading, its not a revert, but rather a partial
unwind of code addition. The breakage lives on the RDMA interface of

Hi Sagi,

The commit message perfectly states that this revert is slightly modified to keep compilation work, it is not partial.

the driver (which has interfaces to net and infiniband) as some RDMA
kernel consumers are relying on the affinity assignments done when
passing PCI_IRQ_AFFINITY to pci_alloc_irq_vectors(). The fix is pretty
simple, but as said, wasn't submitted yet.

I assume that this went in because the review came a after dave took it.


We had two options here
1. revert the whole series that introduced the vector affinity infrastructure for RDMA. 2. revert only mlx5 core patch "mlx5: move affinity hints assignments to generic code" with a little change to make it compile with the RDMA infrastructure.

I believe the required fix on top of this revert is to remove the RDMA get_vector_affinity callback from mlx5_ib ib_dev structurem, see below.

I can send it, All i need to know is to where ?
It should go through rdma-rc tree, if there is such thing ?

diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index 5d6fba986fa5..ddd0b881a4be 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -4256,14 +4256,6 @@ static void init_delay_drop(struct mlx5_ib_dev *dev)
                mlx5_ib_warn(dev, "Failed to init delay drop debugfs\n");
 }

-static const struct cpumask *
-mlx5_ib_get_vector_affinity(struct ib_device *ibdev, int comp_vector)
-{
-       struct mlx5_ib_dev *dev = to_mdev(ibdev);
-
-       return mlx5_get_vector_affinity(dev->mdev, comp_vector);
-}
-
/* The mlx5_ib_multiport_mutex should be held when calling this function */
 static void mlx5_ib_unbind_slave_port(struct mlx5_ib_dev *ibdev,
                                      struct mlx5_ib_multiport_info *mpi)
@@ -4632,7 +4624,6 @@ static int mlx5_ib_stage_caps_init(struct mlx5_ib_dev *dev)
        dev->ib_dev.check_mr_status     = mlx5_ib_check_mr_status;
        dev->ib_dev.get_port_immutable  = mlx5_port_immutable;
        dev->ib_dev.get_dev_fw_str      = get_dev_fw_str;
-       dev->ib_dev.get_vector_affinity = mlx5_ib_get_vector_affinity;
        if (MLX5_CAP_GEN(mdev, ipoib_enhanced_offloads))
dev->ib_dev.alloc_rdma_netdev = mlx5_ib_alloc_rdma_netdev;




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]