From: Ido Schimmel <ido...@mellanox.com> Petr says:
In Spectrum ASICs, the shared buffer is an area of memory where packets are kept until they can be transmitted. There are two resources associated with shared buffer size: cap_total_buffer_size and cap_guaranteed_shared_buffer. So far, mlxsw has been using the former as a limit when validating shared buffer pool size configuration. However, the total size also includes headrooms and reserved space, which really cannot be used for shared buffer pools. Patch #1 mends this and has mlxsw use the guaranteed size. To configure default pool sizes, mlxsw has historically hard-coded one or two smallish pools, and one "main" pool that took most of the shared buffer (that would be pool 0 on ingress and pool 4 on egress). During the development of Spectrum-2, it became clear that the shared buffer size keeps shrinking as bugs are identified and worked around. In order to prevent having to tweak the size of pools 0 and 4 to catch up with updates to values reported by the FW, patch #2 changes the way these pools are set. Instead of hard-coding a fixed value, the main pool now takes whatever is left from the guaranteed size after the smaller pool(s) are taken into account. Petr Machata (2): mlxsw: spectrum: Use guaranteed buffer size as pool size limit mlxsw: spectrum_buffers: Calculate the size of the main pool .../net/ethernet/mellanox/mlxsw/resources.h | 4 +- .../mellanox/mlxsw/spectrum_buffers.c | 53 +++++++++++++------ .../ethernet/mellanox/mlxsw/spectrum_qdisc.c | 3 +- 3 files changed, 42 insertions(+), 18 deletions(-) -- 2.21.0