| From c2b74b33185282fe398ca2e0aca54019a1a47a63 Mon Sep 17 00:00:00 2001 |
| From: Eugenia Emantayev <eugenia@mellanox.com> |
| Date: Wed, 22 Mar 2017 11:44:14 +0200 |
| Subject: [PATCH] net/mlx5e: Fix small packet threshold |
| |
| commit cbad8cddb6ed7ef3a5f0a9a70f1711d4d7fb9a8f upstream. |
| |
| RX packet headers are meant to be contained in SKB linear part, |
| and chose a threshold of 128. |
| It turns out this is not enough, i.e. for IPv6 packet over VxLAN. |
| In this case, UDP/IPv4 needs 42 bytes, GENEVE header is 8 bytes, |
| and 86 bytes for TCP/IPv6. In total 136 bytes that is more than |
| current 128 bytes. In this case expand header flow is reached. |
| The warning in skb_try_coalesce() caused by a wrong truesize |
| was already fixed here: |
| commit 158f323b9868 ("net: adjust skb->truesize in pskb_expand_head()"). |
| Still, we prefer to totally avoid the expand header flow for performance reasons. |
| Tested regular TCP_STREAM with iperf for 1 and 8 streams, no degradation was found. |
| |
| Fixes: 461017cb006a ("net/mlx5e: Support RX multi-packet WQE (Striding RQ)") |
| Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com> |
| Signed-off-by: Saeed Mahameed <saeedm@mellanox.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h |
| index f4953e68a8e4..c7126b0ee606 100644 |
| --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h |
| +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h |
| @@ -80,7 +80,7 @@ |
| #define MLX5E_VALID_NUM_MTTS(num_mtts) (MLX5_MTT_OCTW(num_mtts) <= U16_MAX) |
| |
| #define MLX5_UMR_ALIGN (2048) |
| -#define MLX5_MPWRQ_SMALL_PACKET_THRESHOLD (128) |
| +#define MLX5_MPWRQ_SMALL_PACKET_THRESHOLD (256) |
| |
| #define MLX5E_PARAMS_DEFAULT_LRO_WQE_SZ (64 * 1024) |
| #define MLX5E_PARAMS_DEFAULT_RX_CQ_MODERATION_USEC 0x10 |
| -- |
| 2.12.0 |
| |