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 |
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 --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,