[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200522081948.167-1-irusskikh@marvell.com>
Date: Fri, 22 May 2020 11:19:36 +0300
From: Igor Russkikh <irusskikh@...vell.com>
To: <netdev@...r.kernel.org>
CC: "David S . Miller" <davem@...emloft.net>,
Mark Starovoytov <mstarovoitov@...vell.com>,
Jakub Kicinski <kuba@...nel.org>,
Igor Russkikh <irusskikh@...vell.com>
Subject: [PATCH v2 net-next 00/12] net: atlantic: QoS implementation
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
Powered by blists - more mailing lists