Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ecfd2ce1 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

mlx4: change TX coalescing defaults



mlx4 currently uses a too high tx coalescing setting, deferring
TX completion interrupts by up to 128 us.

With the recent skb_orphan() removal in commit 8112ec3b,
performance of a single TCP flow is capped to ~4 Gbps, unless
we increase tcp_limit_output_bytes.

I suggest using 16 us instead of 128 us, allowing a finer control.

Performance of a single TCP flow is restored to previous levels,
while keeping TCP small queues fully enabled with default sysctl.

This patch is also a BQL prereq.

Reported-by: default avatarVimalkumar <j.vimal@gmail.com>
Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Cc: Yevgeny Petrilin <yevgenyp@mellanox.com>
Cc: Or Gerlitz <ogerlitz@mellanox.com>
Acked-by: default avatarAmir Vadai <amirv@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6f0a0986
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -870,7 +870,7 @@ static void mlx4_en_set_default_moderation(struct mlx4_en_priv *priv)
	/* If we haven't received a specific coalescing setting
	/* If we haven't received a specific coalescing setting
	 * (module param), we set the moderation parameters as follows:
	 * (module param), we set the moderation parameters as follows:
	 * - moder_cnt is set to the number of mtu sized packets to
	 * - moder_cnt is set to the number of mtu sized packets to
	 *   satisfy our coelsing target.
	 *   satisfy our coalescing target.
	 * - moder_time is set to a fixed value.
	 * - moder_time is set to a fixed value.
	 */
	 */
	priv->rx_frames = MLX4_EN_RX_COAL_TARGET;
	priv->rx_frames = MLX4_EN_RX_COAL_TARGET;
+1 −1
Original line number Original line Diff line number Diff line
@@ -126,7 +126,7 @@ enum {
#define MLX4_EN_RX_COAL_TIME	0x10
#define MLX4_EN_RX_COAL_TIME	0x10


#define MLX4_EN_TX_COAL_PKTS	16
#define MLX4_EN_TX_COAL_PKTS	16
#define MLX4_EN_TX_COAL_TIME	0x80
#define MLX4_EN_TX_COAL_TIME	0x10


#define MLX4_EN_RX_RATE_LOW		400000
#define MLX4_EN_RX_RATE_LOW		400000
#define MLX4_EN_RX_COAL_TIME_LOW	0
#define MLX4_EN_RX_COAL_TIME_LOW	0