netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 00/12] net: atlantic: QoS implementation
@ 2020-05-22  8:19 Igor Russkikh
  2020-05-22  8:19 ` [PATCH v2 net-next 01/12] net: atlantic: changes for multi-TC support Igor Russkikh
                   ` (12 more replies)
  0 siblings, 13 replies; 18+ messages in thread
From: Igor Russkikh @ 2020-05-22  8:19 UTC (permalink / raw)
  To: netdev; +Cc: David S . Miller, Mark Starovoytov, Jakub Kicinski, Igor Russkikh

This patch series adds support for mqprio rate limiters and multi-TC:
 * max_rate is supported on both A1 and A2;
 * min_rate is supported on A2 only;

This is a joint work of Mark and Dmitry.

To implement this feature, a couple of rearrangements and code
improvements were done, in areas of TC/ring management, allocation
control, etc.

One of the problems we faced is conflicting ptp functionality, which
consumes a whole traffic class due to hardware limitations.
Patches below have a more detailed description on how PTP and multi-TC
co-exist right now.

v2:
 * accommodated review comments (-Wmissing-prototypes and
   -Wunused-but-set-variable findings);
 * added user notification in case of conflicting multi-TC<->PTP
   configuration;
 * added automatic PTP disabling, if a conflicting configuration is
   detected;
 * removed module param, which was used for PTP disabling in v1;

v1: https://patchwork.ozlabs.org/cover/1294380/

Dmitry Bezrukov (4):
  net: atlantic: changes for multi-TC support
  net: atlantic: move PTP TC initialization to a separate function
  net: atlantic: changes for multi-TC support
  net: atlantic: QoS implementation: multi-TC support

Mark Starovoytov (8):
  net: atlantic: per-TC queue statistics
  net: atlantic: make TCVEC2RING accept nic_cfg
  net: atlantic: QoS implementation: max_rate
  net: atlantic: automatically downgrade the number of queues if
    necessary
  net: atlantic: always use random TC-queue mapping for TX on A2.
  net: atlantic: change the order of arguments for TC weight/credit
    setters
  net: atlantic: QoS implementation: min_rate
  net: atlantic: proper rss_ctrl1 (54c0) initialization

 .../ethernet/aquantia/atlantic/aq_ethtool.c   |  74 +++--
 .../ethernet/aquantia/atlantic/aq_filters.c   |  11 +-
 .../net/ethernet/aquantia/atlantic/aq_hw.h    |  20 +-
 .../ethernet/aquantia/atlantic/aq_hw_utils.c  |  26 ++
 .../ethernet/aquantia/atlantic/aq_hw_utils.h  |   2 +
 .../ethernet/aquantia/atlantic/aq_macsec.c    |   2 +-
 .../net/ethernet/aquantia/atlantic/aq_main.c  |  72 ++++-
 .../net/ethernet/aquantia/atlantic/aq_nic.c   | 265 +++++++++++----
 .../net/ethernet/aquantia/atlantic/aq_nic.h   |  27 +-
 .../ethernet/aquantia/atlantic/aq_pci_func.c  |   3 +
 .../net/ethernet/aquantia/atlantic/aq_ptp.c   |  27 +-
 .../net/ethernet/aquantia/atlantic/aq_ring.c  |  19 +-
 .../net/ethernet/aquantia/atlantic/aq_vec.c   |  72 +++--
 .../net/ethernet/aquantia/atlantic/aq_vec.h   |   8 +-
 .../aquantia/atlantic/hw_atl/hw_atl_a0.c      |  10 +-
 .../aquantia/atlantic/hw_atl/hw_atl_b0.c      | 255 ++++++++++-----
 .../aquantia/atlantic/hw_atl/hw_atl_b0.h      |   2 +
 .../atlantic/hw_atl/hw_atl_b0_internal.h      |   6 +-
 .../aquantia/atlantic/hw_atl/hw_atl_llh.c     |  65 +++-
 .../aquantia/atlantic/hw_atl/hw_atl_llh.h     |  32 +-
 .../atlantic/hw_atl/hw_atl_llh_internal.h     | 101 +++++-
 .../aquantia/atlantic/hw_atl2/hw_atl2.c       | 301 +++++++++++++-----
 .../atlantic/hw_atl2/hw_atl2_internal.h       |  12 +-
 .../aquantia/atlantic/hw_atl2/hw_atl2_llh.c   |  36 ++-
 .../aquantia/atlantic/hw_atl2/hw_atl2_llh.h   |  19 +-
 .../atlantic/hw_atl2/hw_atl2_llh_internal.h   | 111 +++++--
 26 files changed, 1197 insertions(+), 381 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2020-05-25 20:09 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-22  8:19 [PATCH v2 net-next 00/12] net: atlantic: QoS implementation Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 01/12] net: atlantic: changes for multi-TC support Igor Russkikh
2020-05-22 17:58   ` Jakub Kicinski
2020-05-22 19:47     ` [EXT] " Mark Starovoytov
2020-05-25 20:09       ` Jakub Kicinski
2020-05-22  8:19 ` [PATCH v2 net-next 02/12] net: atlantic: move PTP TC initialization to a separate function Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 03/12] net: atlantic: changes for multi-TC support Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 04/12] net: atlantic: QoS implementation: " Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 05/12] net: atlantic: per-TC queue statistics Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 06/12] net: atlantic: make TCVEC2RING accept nic_cfg Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 07/12] net: atlantic: QoS implementation: max_rate Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 08/12] net: atlantic: automatically downgrade the number of queues if necessary Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 09/12] net: atlantic: always use random TC-queue mapping for TX on A2 Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 10/12] net: atlantic: change the order of arguments for TC weight/credit setters Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 11/12] net: atlantic: QoS implementation: min_rate Igor Russkikh
2020-05-22  8:19 ` [PATCH v2 net-next 12/12] net: atlantic: proper rss_ctrl1 (54c0) initialization Igor Russkikh
2020-05-22 17:58 ` [PATCH v2 net-next 00/12] net: atlantic: QoS implementation Jakub Kicinski
2020-05-22 21:08   ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).