2018-03-16 02:38:37

by Honggang LI

[permalink] [raw]
Subject: [PATCH] IB/mlx5: Set the default active rate and width to QDR and 4X

From: Honggang Li <[email protected]>

commit f1b65df5a232 ("IB/mlx5: Add support for active_width and
active_speed in RoCE"). Before this patch applied, the mlx5_ib
driver set default active_width and active_speed to IB_WIDTH_4X
and IB_SPEED_QDR.

When the RoCE port is down, the RoCE port did not negotiate the
active width with remote side. The active width is zero. If run
ibstat to require the port status, ibstat will panic as it read
invalid width from sys file.

This patch restores the original behavior.

Fixes: f1b65df5a232 ("IB/mlx5: Add support for active_width and active_speed in RoCE").
Signed-off-by: Honggang Li <[email protected]>
---
drivers/infiniband/hw/mlx5/main.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
index 033b6af90de9..a48e9730fab8 100644
--- a/drivers/infiniband/hw/mlx5/main.c
+++ b/drivers/infiniband/hw/mlx5/main.c
@@ -388,6 +388,9 @@ static int mlx5_query_port_roce(struct ib_device *device, u8 port_num,
if (err)
goto out;

+ props->active_width = IB_WIDTH_4X;
+ props->active_speed = IB_SPEED_QDR;
+
translate_eth_proto_oper(eth_prot_oper, &props->active_speed,
&props->active_width);

--
2.14.GIT



2018-03-16 15:00:44

by Hal Rosenstock

[permalink] [raw]
Subject: Re: [PATCH] IB/mlx5: Set the default active rate and width to QDR and 4X

On 3/15/2018 10:37 PM, Honggang LI wrote:
> From: Honggang Li <[email protected]>
>
> commit f1b65df5a232 ("IB/mlx5: Add support for active_width and
> active_speed in RoCE"). Before this patch applied, the mlx5_ib
> driver set default active_width and active_speed to IB_WIDTH_4X
> and IB_SPEED_QDR.
>
> When the RoCE port is down, the RoCE port did not negotiate the
> active width with remote side. The active width is zero. If run
> ibstat to require the port status, ibstat will panic as it read
> invalid width from sys file.
>
> This patch restores the original behavior.
>
> Fixes: f1b65df5a232 ("IB/mlx5: Add support for active_width and active_speed in RoCE").
> Signed-off-by: Honggang Li <[email protected]>

Reviewed-by: Hal Rosenstock <[email protected]>

> ---
> drivers/infiniband/hw/mlx5/main.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
> index 033b6af90de9..a48e9730fab8 100644
> --- a/drivers/infiniband/hw/mlx5/main.c
> +++ b/drivers/infiniband/hw/mlx5/main.c
> @@ -388,6 +388,9 @@ static int mlx5_query_port_roce(struct ib_device *device, u8 port_num,
> if (err)
> goto out;
>
> + props->active_width = IB_WIDTH_4X;
> + props->active_speed = IB_SPEED_QDR;
> +
> translate_eth_proto_oper(eth_prot_oper, &props->active_speed,
> &props->active_width);
>
>

2018-03-18 07:31:57

by Noa Osherovich

[permalink] [raw]
Subject: Re: [PATCH] IB/mlx5: Set the default active rate and width to QDR and 4X

On 3/16/2018 4:59 PM, Hal Rosenstock wrote:
> On 3/15/2018 10:37 PM, Honggang LI wrote:
>> From: Honggang Li <[email protected]>
>>
>> commit f1b65df5a232 ("IB/mlx5: Add support for active_width and
>> active_speed in RoCE"). Before this patch applied, the mlx5_ib
>> driver set default active_width and active_speed to IB_WIDTH_4X
>> and IB_SPEED_QDR.
>>
>> When the RoCE port is down, the RoCE port did not negotiate the
>> active width with remote side. The active width is zero. If run
>> ibstat to require the port status, ibstat will panic as it read
>> invalid width from sys file.
>>
>> This patch restores the original behavior.
>>
>> Fixes: f1b65df5a232 ("IB/mlx5: Add support for active_width and active_speed in RoCE").
>> Signed-off-by: Honggang Li <[email protected]>
> Reviewed-by: Hal Rosenstock <[email protected]>

Reviewed-by: Noa Osherovich <[email protected]>

>
>> ---
>> drivers/infiniband/hw/mlx5/main.c | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c
>> index 033b6af90de9..a48e9730fab8 100644
>> --- a/drivers/infiniband/hw/mlx5/main.c
>> +++ b/drivers/infiniband/hw/mlx5/main.c
>> @@ -388,6 +388,9 @@ static int mlx5_query_port_roce(struct ib_device *device, u8 port_num,
>> if (err)
>> goto out;
>>
>> + props->active_width = IB_WIDTH_4X;
>> + props->active_speed = IB_SPEED_QDR;
>> +
>> translate_eth_proto_oper(eth_prot_oper, &props->active_speed,
>> &props->active_width);
>>
>>

2018-03-20 01:41:32

by Jason Gunthorpe

[permalink] [raw]
Subject: Re: [PATCH] IB/mlx5: Set the default active rate and width to QDR and 4X

On Fri, Mar 16, 2018 at 10:37:13AM +0800, Honggang LI wrote:
> From: Honggang Li <[email protected]>
>
> commit f1b65df5a232 ("IB/mlx5: Add support for active_width and
> active_speed in RoCE"). Before this patch applied, the mlx5_ib
> driver set default active_width and active_speed to IB_WIDTH_4X
> and IB_SPEED_QDR.
>
> When the RoCE port is down, the RoCE port did not negotiate the
> active width with remote side. The active width is zero. If run
> ibstat to require the port status, ibstat will panic as it read
> invalid width from sys file.
>
> This patch restores the original behavior.
>
> Fixes: f1b65df5a232 ("IB/mlx5: Add support for active_width and active_speed in RoCE").
> Signed-off-by: Honggang Li <[email protected]>
> Reviewed-by: Hal Rosenstock <[email protected]>
> Reviewed-by: Noa Osherovich <[email protected]>
> drivers/infiniband/hw/mlx5/main.c | 3 +++
> 1 file changed, 3 insertions(+)

Applied to for-next, thanks

Jason