提交 7adc5941 编写于 作者: H Huy Nguyen 提交者: Xie XiuQi

net/mlx5e: Update xoff formula

mainline inclusion
from mainline-5.1
commit 5ec983e924c7
category: bugfix
bugzilla: 13574
CVE: NA

-------------------------------------------------

Set minimum speed in xoff threshold formula to 40Gbps

Fixes: 0696d608 ("net/mlx5e: Receive buffer configuration")
Signed-off-by: NHuy Nguyen <huyn@mellanox.com>
Signed-off-by: NSaeed Mahameed <saeedm@mellanox.com>
Signed-off-by: NZhiqiang Liu <liuzhiqiang26@huawei.com>
Reviewed-by: NWenan Mao <maowenan@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 fd95a763
...@@ -122,7 +122,9 @@ static int port_set_buffer(struct mlx5e_priv *priv, ...@@ -122,7 +122,9 @@ static int port_set_buffer(struct mlx5e_priv *priv,
return err; return err;
} }
/* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B]) */ /* xoff = ((301+2.16 * len [m]) * speed [Gbps] + 2.72 MTU [B])
* minimum speed value is 40Gbps
*/
static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu) static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu)
{ {
u32 speed; u32 speed;
...@@ -130,10 +132,9 @@ static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu) ...@@ -130,10 +132,9 @@ static u32 calculate_xoff(struct mlx5e_priv *priv, unsigned int mtu)
int err; int err;
err = mlx5e_port_linkspeed(priv->mdev, &speed); err = mlx5e_port_linkspeed(priv->mdev, &speed);
if (err) { if (err)
mlx5_core_warn(priv->mdev, "cannot get port speed\n"); speed = SPEED_40000;
return 0; speed = max_t(u32, speed, SPEED_40000);
}
xoff = (301 + 216 * priv->dcbx.cable_len / 100) * speed / 1000 + 272 * mtu / 100; xoff = (301 + 216 * priv->dcbx.cable_len / 100) * speed / 1000 + 272 * mtu / 100;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册