Re: [PATCH] IB/mlx5: avoid binding a new mpi unit to the same devices repeatedly

From: Qing Huang
Date: Mon Jul 23 2018 - 14:22:02 EST


Hi Daniel,


On 7/23/2018 11:11 AM, Daniel Jurgens wrote:

On 7/23/2018 10:36 AM, Qing Huang wrote:
Hi Daniel/Parav,

Have you got a chance to review this patch? Thanks!
Hi Qing, sorry for the delay, I just got back to the office today. I don't agree with the proposed fix, I provided an alternative suggestion below.
Or.

Reported-by: Gerald Gibson <gerald.gibson@xxxxxxxxxx>
Signed-off-by: Qing Huang <qing.huang@xxxxxxxxxx>
---
 drivers/infiniband/hw/mlx5/main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index b3ba9a2..1ddd1d3 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -6068,7 +6068,8 @@ static void *mlx5_ib_add_slave_port(struct mlx5_core_dev *mdev, u8 port_num)

ÂÂÂÂÂÂÂÂ mutex_lock(&mlx5_ib_multiport_mutex);
ÂÂÂÂÂÂÂÂ list_for_each_entry(dev, &mlx5_ib_dev_list, ib_dev_list) {
-ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ if (dev->sys_image_guid == mpi->sys_image_guid)
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂ if (dev->sys_image_guid == mpi->sys_image_guid &&
+ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ !dev->port[mlx5_core_native_port_num(mdev) - 1].mp.mpi)
You shouldn't check the mpi field that without holding the lock in the mp structure. Prefer you change the print from a warning in mlx5_ib_bind_slave_port to a debug message.
Thanks for the review. That works for us too. Will resend the patch.

Regards,
Qing


ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ bound = mlx5_ib_bind_slave_port(dev, mpi);

ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ if (bound) {
--
2.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html