Skip to contentSkip to conversation

Patch "net/mlx5e: Update MPWQE stride size when modifying CQE compress state" has been added to the 4.10-stable tree

PATCH [email protected] 1 participant 1 message Mar 18, 2017

Subsystems (4)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

net/mlx5e: Update MPWQE stride size when modifying CQE compress state

to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
net-mlx5e-update-mpwqe-stride-size-when-modifying-cqe-compress-state.patch
and it can be found in the queue-4.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From foo@baz Sat Mar 18 22:03:53 CST 2017

From: Saeed Mahameed <[email protected]>
Date: Wed, 22 Feb 2017 17:20:15 +0200
Subject: net/mlx5e: Update MPWQE stride size when modifying CQE compress state

From: Saeed Mahameed <[email protected]>

[ Upstream commit 6dc4b54e77282caf17f0ff72aa32dd296037fbc0 ]

When the admin enables/disables cqe compression, updating mpwqe stride size is required:

    CQE compress ON  ==> stride size = 256B
    CQE compress OFF ==> stride size = 64B

This is already done on driver load via mlx5e_set_rq_type_params, all we need is just to call it on arbitrary admin changes of cqe compression state via priv flags or when changing timestamping state
(as it is mutually exclusive with cqe compression).

This bug introduces no functional damage, it only makes cqe compression occur less often, since in ConnectX4-LX CQE compression is performed only on packets smaller than stride size.

Tested:
ethtool --set-priv-flags ethxx rx_cqe_compress on
pktgen with 64 < pkt size < 256 and netperf TCP_STREAM (IPv4/IPv6) verify ethtool -S ethxx | grep compress are advancing more often (rapidly)

---
 drivers/net/ethernet/mellanox/mlx5/core/en.h         |    1 +
 drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c |    1 +
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c    |    2 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c      |    1 +
 4 files changed, 4 insertions(+), 1 deletion(-)
drivers/net/ethernet/mellanox/mlx5/core/en.h +1 -0
@@ -803,6 +803,7 @@ int mlx5e_get_max_linkspeed(struct mlx5_
 
 void mlx5e_set_rx_cq_mode_params(struct mlx5e_params *params,
 				 u8 cq_period_mode);
+void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type);
 
 static inline void mlx5e_tx_notify_hw(struct mlx5e_sq *sq,
 				      struct mlx5_wqe_ctrl_seg *ctrl, int bf_sz)
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +1 -0
@@ -1477,6 +1477,7 @@ static int set_pflag_rx_cqe_compress(str
 
 	MLX5E_SET_PFLAG(priv, MLX5E_PFLAG_RX_CQE_COMPRESS, enable);
 	priv->params.rx_cqe_compress_def = enable;
+	mlx5e_set_rq_type_params(priv, priv->params.rq_wq_type);
 
 	if (reset)
 		err = mlx5e_open_locked(netdev);
drivers/net/ethernet/mellanox/mlx5/core/en_main.c +1 -1
@@ -78,7 +78,7 @@ static bool mlx5e_check_fragmented_strid
 		MLX5_CAP_ETH(mdev, reg_umr_sq);
 }
 
-static void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type)
+void mlx5e_set_rq_type_params(struct mlx5e_priv *priv, u8 rq_type)
 {
 	priv->params.rq_wq_type = rq_type;
 	priv->params.lro_wqe_sz = MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ;
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c +1 -0
@@ -172,6 +172,7 @@ void mlx5e_modify_rx_cqe_compression(str
 		mlx5e_close_locked(priv->netdev);
 
 	MLX5E_SET_PFLAG(priv, MLX5E_PFLAG_RX_CQE_COMPRESS, val);
+	mlx5e_set_rq_type_params(priv, priv->params.rq_wq_type);
 
 	if (was_opened)
 		mlx5e_open_locked(priv->netdev);

Patches currently in stable-queue which might be from [email protected] are

queue-4.10/net-mlx5e-fix-broken-cqe-compression-initialization.patch queue-4.10/net-mlx5e-update-mpwqe-stride-size-when-modifying-cqe-compress-state.patch queue-4.10/net-mlx5e-do-not-reduce-lro-wqe-size-when-not-using-build_skb.patch queue-4.10/net-mlx5e-fix-wrong-cqe-decompression.patch queue-4.10/net-mlx5e-register-unregister-vport-representors-on-interface-attach-detach.patch