[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180228094507.22354-1-jiri@resnulli.us>
Date: Wed, 28 Feb 2018 10:44:57 +0100
From: Jiri Pirko <jiri@...nulli.us>
To: netdev@...r.kernel.org
Cc: nogahf@...lanox.com, yuvalm@...lanox.com, davem@...emloft.net,
idosch@...lanox.com, mlxsw@...lanox.com, jhs@...atatu.com,
xiyou.wangcong@...il.com, kubakici@...pl
Subject: [patch net-next 00/10] mlxsw: Offload multi-queue RED support
From: Jiri Pirko <jiri@...lanox.com>
Nogah says:
Support a two level hierarchy of offloaded qdiscs in mlxsw, with sch_prio
being the root qdisc and sch_red as the children.
+----------+
| sch_prio |
+----+-----+
|
|
+----------------------------------+
| | |
| | |
| | |
+---v---+ +----v---+ +-----v--+
|sch_red| |sch_red | |sch_red |
+-------+ +--------+ +--------+
When setting sch_prio as the root qdisc on a physical port, mlxsw will
offload it. When adding it with sch_red as a child qdisc, it will offload
it as well.
Relocating child qdisc or connecting them to more then one child will
result in unoffloading them. Relocating child qdisc more then once is
highly unrecommended and might cause a miss match between the kernel
configuration and the offloaded one. The offloaded configuration will be
aligned with the one shown in the show command.
Changing the priomap parameter of sch_prio might cause a band that its
configuration was changed and it has offloaded sch_red set on it, to lose
some stats data as if sch_red was unoffloaded and offloaded again. However,
it won't affect the data on this band that will have sch_red continuously.
Patch 1 adds support for setting RED as the child of root qdisc.
Patches 2-4 add support for RED bstasts for offloaded child qdiscs.
Patches 5-6 handle backlog related changes for offloaded child qdiscs.
Patches 7-8 update PRIO in mlxsw to be able to have RED as child on its
bands.
Patch 9 adds offload handles for PRIO graft operations. In mlxsw it will
cause the driver to stop offloading the child in question.
Nogah Frankel (10):
mlxsw: spectrum: qdiscs: Support qdisc per tclass
mlxsw: spectrum: Add priority counters
mlxsw: spectrum: qdiscs: Add priority map per qdisc
mlxsw: spectrum: qdiscs: Collect stats for sch_red based on priomap
mlxsw: spectrum: qdiscs: Update backlog handling of a child qdiscs
net: sch: Don't warn on missmatching qlen and backlog for offloaded
qdiscs
mlxsw: spectrum: Update sch_prio stats to include sch_red related
drops
mlxsw: spectrum: qdiscs: prio: Delete child qdiscs when removing bands
net: sch: prio: Add offload ability for grafting a child
mlxsw: spectrum: qdiscs: prio: Handle graft command
drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 10 +
drivers/net/ethernet/mellanox/mlxsw/spectrum.h | 3 +
.../net/ethernet/mellanox/mlxsw/spectrum_qdisc.c | 206 ++++++++++++++++++---
include/net/pkt_cls.h | 8 +
net/sched/sch_api.c | 7 +-
net/sched/sch_prio.c | 45 ++++-
6 files changed, 244 insertions(+), 35 deletions(-)
--
2.14.3
Powered by blists - more mailing lists