mbox series

[net-next,00/10] mlxsw: Support for shared buffers in Spectrum-2

Message ID 20190220193141.16498-1-idosch@mellanox.com
Headers show
Series mlxsw: Support for shared buffers in Spectrum-2 | expand

Message

Ido Schimmel Feb. 20, 2019, 7:32 p.m. UTC
Petr says:

Spectrum-2 will be configured with a different set of pools than
Spectrum-1, their sizes will be larger, and the individual quotas will
be different as well. It is therefore necessary to make the shared
buffer module aware of this dependence on chip type, and adjust the
individual tables.

In patch #1, introduce a structure for keeping per-chip immutable and
default values.

In patch #2, structures for keeping current values of SBPM and SBPR
(pool configuration and port-pool quota) are allocated dynamically to
support varying pool counts.

In patches #3 to #7, uses of individual shared buffer configuration
tables are migrated from global definitions to fields in struct
mlxsw_sp_sb_vals, which was introduced above.

Up until this point, the actual configuration is still the one suitable
for Spectrum-1. In patch #8 Spectrum-2 configuration is added.

In patch #9, port headroom configuration is changed to take into account
current recommended value for a 100-Gbps port, and the split factor.

In patch #10, requests for overlarge headroom are rejected. This avoids
potential chip freeze should such overlarge requests be made.

Petr Machata (10):
  mlxsw: spectrum: Add struct mlxsw_sp_sb_vals
  mlxsw: spectrum_buffers: Allocate prs & pms dynamically
  mlxsw: spectrum_buffers: Keep pool descriptors in mlxsw_sp_sb_vals
  mlxsw: spectrum_buffers: Keep mlxsw_sp_sb_pms in mlxsw_sp_sb_vals
  mlxsw: spectrum_buffers: Keep mlxsw_sp_sb_prs in mlxsw_sp_sb_vals
  mlxsw: spectrum_buffers: Keep mlxsw_sp_sb_cm in sb_vals
  mlxsw: spectrum_buffers: Keep mlxsw_sp_sb_mm in sb_vals
  mlxsw: spectrum_buffers: Add Spectrum-2 shared buffer configuration
  mlxsw: spectrum_buffers: Update port headroom configuration
  mlxsw: spectrum_buffers: Reject overlarge headroom size requests

 .../net/ethernet/mellanox/mlxsw/resources.h   |   2 +
 .../net/ethernet/mellanox/mlxsw/spectrum.c    |  15 +-
 .../net/ethernet/mellanox/mlxsw/spectrum.h    |   6 +
 .../mellanox/mlxsw/spectrum_buffers.c         | 312 ++++++++++++++----
 4 files changed, 267 insertions(+), 68 deletions(-)

Comments

David Miller Feb. 21, 2019, 11:58 p.m. UTC | #1
From: Ido Schimmel <idosch@mellanox.com>
Date: Wed, 20 Feb 2019 19:32:10 +0000

> Petr says:
> 
> Spectrum-2 will be configured with a different set of pools than
> Spectrum-1, their sizes will be larger, and the individual quotas will
> be different as well. It is therefore necessary to make the shared
> buffer module aware of this dependence on chip type, and adjust the
> individual tables.
> 
> In patch #1, introduce a structure for keeping per-chip immutable and
> default values.
> 
> In patch #2, structures for keeping current values of SBPM and SBPR
> (pool configuration and port-pool quota) are allocated dynamically to
> support varying pool counts.
> 
> In patches #3 to #7, uses of individual shared buffer configuration
> tables are migrated from global definitions to fields in struct
> mlxsw_sp_sb_vals, which was introduced above.
> 
> Up until this point, the actual configuration is still the one suitable
> for Spectrum-1. In patch #8 Spectrum-2 configuration is added.
> 
> In patch #9, port headroom configuration is changed to take into account
> current recommended value for a 100-Gbps port, and the split factor.
> 
> In patch #10, requests for overlarge headroom are rejected. This avoids
> potential chip freeze should such overlarge requests be made.

Series applied, thanks.