Re: [PATCH net-next 00/13] Add tc-taprio support for queueMaxSDU

Vinicius Costa Gomes
2022-09-14T21:47:16Z

Vladimir Oltean <vladimir.oltean@nxp.com> writes:

> Michael and Xiaoliang will probably be aware that the tc-taprio offload
> mode supported by the Felix DSA driver has limitations surrounding its
> guard bands.
>
> The initial discussion was at:
> https://lore.kernel.org/netdev/c7618025da6723418c56a54fe4683bd7@walle.cc/
>
> with the latest status being that we now have a vsc9959_tas_guard_bands_update()
> method which makes a best-guess attempt at how much useful space to
> reserve for packet scheduling in a taprio interval, and how much to
> reserve for guard bands.
>
> IEEE 802.1Q actually does offer a tunable variable (queueMaxSDU) which
> can determine the max MTU supported per traffic class. In turn we can
> determine the size we need for the guard bands, depending on the
> queueMaxSDU. This way we can make the guard band of small taprio
> intervals smaller than one full MTU worth of transmission time, if we
> know that said traffic class will transport only smaller packets.
>
> Allow input of queueMaxSDU through netlink into tc-taprio, offload it to
> the hardware I have access to (LS1028A), and deny non-default values to
> everyone else.
>
> First 3 patches are some cleanups I made while figuring out what exactly
> gets called for taprio software mode, and what gets called for offload
> mode.
>
> Vladimir Oltean (13):
> net/sched: taprio: remove redundant FULL_OFFLOAD_IS_ENABLED check in
> taprio_enqueue
> net/sched: taprio: stop going through private ops for dequeue and peek
> net/sched: taprio: add extack messages in taprio_init

Indeed. I think the first three patches can be in a separate series.

> net/sched: taprio: allow user input of per-tc max SDU
> net: dsa: felix: offload per-tc max SDU from tc-taprio
> net: enetc: cache accesses to &priv->si->hw
> net: enetc: offload per-tc max SDU from tc-taprio
> net: dsa: hellcreek: deny tc-taprio changes to per-tc max SDU
> net: dsa: sja1105: deny tc-taprio changes to per-tc max SDU
> tsnep: deny tc-taprio changes to per-tc max SDU
> igc: deny tc-taprio changes to per-tc max SDU
> net: stmmac: deny tc-taprio changes to per-tc max SDU
> net: am65-cpsw: deny tc-taprio changes to per-tc max SDU
>
> drivers/net/dsa/hirschmann/hellcreek.c | 5 +
> drivers/net/dsa/ocelot/felix_vsc9959.c | 20 +-
> drivers/net/dsa/sja1105/sja1105_tas.c | 6 +-
> drivers/net/ethernet/engleder/tsnep_tc.c | 6 +-
> drivers/net/ethernet/freescale/enetc/enetc.c | 28 ++-
> drivers/net/ethernet/freescale/enetc/enetc.h | 12 +-
> .../net/ethernet/freescale/enetc/enetc_pf.c | 25 ++-
> .../net/ethernet/freescale/enetc/enetc_qos.c | 70 +++----
> drivers/net/ethernet/intel/igc/igc_main.c | 6 +-
> .../net/ethernet/stmicro/stmmac/stmmac_tc.c | 6 +-
> drivers/net/ethernet/ti/am65-cpsw-qos.c | 6 +-
> include/net/pkt_sched.h | 1 +
> include/uapi/linux/pkt_sched.h | 11 +
> net/sched/sch_taprio.c | 194 +++++++++++++-----
> 14 files changed, 283 insertions(+), 113 deletions(-)
>
> --
> 2.34.1
>

Cheers,
--
Vinicius