diff options
author | Maxim Mikityanskiy <maximmi@nvidia.com> | 2022-09-27 13:36:09 -0700 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2022-09-28 19:36:38 -0700 |
commit | 3904d2afad4ccf9ec7dbe9b7096ee5f9acde3a00 (patch) | |
tree | 3095da428311c2dc8161d4f3e947cbfb4ac3c312 /drivers/net/ethernet/mellanox/mlx5/core/en/params.c | |
parent | 411295fbe6f4643b7fed30c27542af7d752f8e16 (diff) | |
download | linux-stable-3904d2afad4ccf9ec7dbe9b7096ee5f9acde3a00.tar.gz linux-stable-3904d2afad4ccf9ec7dbe9b7096ee5f9acde3a00.tar.bz2 linux-stable-3904d2afad4ccf9ec7dbe9b7096ee5f9acde3a00.zip |
net/mlx5e: Improve the MTU change shortcut
Normally, the MTU change requires reopening the channels, but it can be
skipped if the new MTU doesn't change any of the queue parameters and if
MTU is not used in the data path.
The shortcut is applicable to the non-linear mode of striding RQ,
because the only thing affected by MTU is the queue length. As ethtool
sets the queue length in packets, but striding RQ length is defined in
strides or bytes, we estimate the RQ length to be at least as big as the
requested number of MTU-sized packets, that's why it depends on MTU.
Improve the shortcut by actually checking whether the RQ length stayed
the same, instead of an intermediate step in the calculation.
As MTU also affects the SHAMPO parameters, skip the shortcut if SHAMPO
is in use.
Signed-off-by: Maxim Mikityanskiy <maximmi@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en/params.c')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c index 5dd3567d02d8..9a58f8f978b1 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -57,8 +57,8 @@ static u32 mlx5e_rx_get_linear_stride_sz(struct mlx5e_params *params, return roundup_pow_of_two(mlx5e_rx_get_linear_sz_skb(params, false)); } -u8 mlx5e_mpwqe_log_pkts_per_wqe(struct mlx5e_params *params, - struct mlx5e_xsk_param *xsk) +static u8 mlx5e_mpwqe_log_pkts_per_wqe(struct mlx5e_params *params, + struct mlx5e_xsk_param *xsk) { u32 linear_stride_sz = mlx5e_rx_get_linear_stride_sz(params, xsk); |