diff mbox series

[net] mlxsw: spectrum_buffers: Set a minimum quota for CPU port traffic

Message ID 20180315124956.32719-1-idosch@mellanox.com
State Accepted, archived
Delegated to: David Miller
Headers show
Series [net] mlxsw: spectrum_buffers: Set a minimum quota for CPU port traffic | expand

Commit Message

Ido Schimmel March 15, 2018, 12:49 p.m. UTC
In commit 9ffcc3725f09 ("mlxsw: spectrum: Allow packets to be trapped
from any PG") I fixed a problem where packets could not be trapped to
the CPU due to exceeded shared buffer quotas. The mentioned commit
explains the problem in detail.

The problem was fixed by assigning a minimum quota for the CPU port and
the traffic class used for scheduling traffic to the CPU.

However, commit 117b0dad2d54 ("mlxsw: Create a different trap group list
for each device") assigned different traffic classes to different
packet types and rendered the fix useless.

Fix the problem by assigning a minimum quota for the CPU port and all
the traffic classes that are currently in use.

Fixes: 117b0dad2d54 ("mlxsw: Create a different trap group list for each device")
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Reported-by: Eddie Shklaer <eddies@mellanox.com>
Tested-by: Eddie Shklaer <eddies@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
---
Please consider the patch for -stable. Thanks!
---
 drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

David Miller March 17, 2018, 9:35 p.m. UTC | #1
From: Ido Schimmel <idosch@mellanox.com>
Date: Thu, 15 Mar 2018 14:49:56 +0200

> In commit 9ffcc3725f09 ("mlxsw: spectrum: Allow packets to be trapped
> from any PG") I fixed a problem where packets could not be trapped to
> the CPU due to exceeded shared buffer quotas. The mentioned commit
> explains the problem in detail.
> 
> The problem was fixed by assigning a minimum quota for the CPU port and
> the traffic class used for scheduling traffic to the CPU.
> 
> However, commit 117b0dad2d54 ("mlxsw: Create a different trap group list
> for each device") assigned different traffic classes to different
> packet types and rendered the fix useless.
> 
> Fix the problem by assigning a minimum quota for the CPU port and all
> the traffic classes that are currently in use.
> 
> Fixes: 117b0dad2d54 ("mlxsw: Create a different trap group list for each device")
> Signed-off-by: Ido Schimmel <idosch@mellanox.com>
> Reported-by: Eddie Shklaer <eddies@mellanox.com>
> Tested-by: Eddie Shklaer <eddies@mellanox.com>
> Acked-by: Jiri Pirko <jiri@mellanox.com>
> ---
> Please consider the patch for -stable. Thanks!

Applied and queued up for -stable, thank you.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c
index 93728c694e6d..0a9adc5962fb 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_buffers.c
@@ -385,13 +385,13 @@  static const struct mlxsw_sp_sb_cm mlxsw_sp_sb_cms_egress[] = {
 
 static const struct mlxsw_sp_sb_cm mlxsw_sp_cpu_port_sb_cms[] = {
 	MLXSW_SP_CPU_PORT_SB_CM,
+	MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 0),
+	MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 0),
+	MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 0),
+	MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 0),
+	MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 0),
 	MLXSW_SP_CPU_PORT_SB_CM,
-	MLXSW_SP_CPU_PORT_SB_CM,
-	MLXSW_SP_CPU_PORT_SB_CM,
-	MLXSW_SP_CPU_PORT_SB_CM,
-	MLXSW_SP_CPU_PORT_SB_CM,
-	MLXSW_SP_CPU_PORT_SB_CM,
-	MLXSW_SP_SB_CM(10000, 0, 0),
+	MLXSW_SP_SB_CM(MLXSW_PORT_MAX_MTU, 0, 0),
 	MLXSW_SP_CPU_PORT_SB_CM,
 	MLXSW_SP_CPU_PORT_SB_CM,
 	MLXSW_SP_CPU_PORT_SB_CM,