1. 22 Feb, 2019 38 commits
  2. 21 Feb, 2019 2 commits
    • David S. Miller's avatar
      Merge branch 'mlxsw-Support-for-shared-buffers-in-Spectrum-2' · 2fb44dd0
      David S. Miller authored
      Ido Schimmel says:
      
      ====================
      mlxsw: Support for shared buffers in Spectrum-2
      
      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.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2fb44dd0
    • Petr Machata's avatar
      mlxsw: spectrum_buffers: Reject overlarge headroom size requests · bb6c346c
      Petr Machata authored
      cap_max_headroom_size holds maximum headroom size supported.
      Overstepping that limit might under certain conditions lead to ASIC
      freeze.
      
      Query and store the value, and add mlxsw_sp_sb_max_headroom_cells() for
      obtaining the stored value. In __mlxsw_sp_port_headroom_set(), reject
      requests where the total port buffer is larger than the advertised
      maximum.
      Signed-off-by: default avatarPetr Machata <petrm@mellanox.com>
      Signed-off-by: default avatarIdo Schimmel <idosch@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bb6c346c