mirror of https://gitee.com/openkylin/linux.git
net/mlx5e: Update xoff formula
Set minimum speed in xoff threshold formula to 40Gbps
Fixes: 0696d60853
("net/mlx5e: Receive buffer configuration")
Signed-off-by: Huy Nguyen <huyn@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
This commit is contained in:
parent
36acf63a06
commit
5ec983e924
|
@ -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)
|
||||||
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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue