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

From: Daniel Jurgens
Date: Mon Jul 23 2018 - 14:11:43 EST




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.

>>>> ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ 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
>