Re: [PATCH net-next 00/12] Add tc-mqprio and tc-taprio support for preemptible traffic classes

From: Ferenc Fejes
Date: Sun Feb 19 2023 - 04:50:29 EST


Hi Vladimir!

On Sat, 2023-02-18 at 17:20 +0200, Vladimir Oltean wrote:
> On Fri, Feb 17, 2023 at 01:21:14AM +0200, Vladimir Oltean wrote:
> > The last RFC in August 2022 contained a proposal for the UAPI of
> > both
> > TSN standards which together form Frame Preemption (802.1Q and
> > 802.3):
> > https://patchwork.kernel.org/project/netdevbpf/cover/20220816222920.1952936-1-vladimir.oltean@xxxxxxx/
> >
> > It wasn't clear at the time whether the 802.1Q portion of Frame
> > Preemption
> > should be exposed via the tc qdisc (mqprio, taprio) or via some
> > other
> > layer (perhaps also ethtool like the 802.3 portion).
> >
> > So the 802.3 portion got submitted separately and finally was
> > accepted:
> > https://patchwork.kernel.org/project/netdevbpf/cover/20230119122705.73054-1-vladimir.oltean@xxxxxxx/
> >
> > leaving the only remaining question: how do we expose the 802.1Q
> > bits?
> >
> > This series proposes that we use the Qdisc layer, through separate
> > (albeit very similar) UAPI in mqprio and taprio, and that both
> > these
> > Qdiscs pass the information down to the offloading device driver
> > through
> > the common mqprio offload structure (which taprio also passes).
> >
> > Implementations are provided for the NXP LS1028A on-board Ethernet
> > (enetc, felix).
> >
> > Some patches should have maybe belonged to separate series, leaving
> > here
> > only patches 09/12 - 12/12, for ease of review. That may be true,
> > however due to a perceived lack of time to wait for the
> > prerequisite
> > cleanup to be merged, here they are all together.
> >
> > Vladimir Oltean (12):
> >   net: enetc: rename "mqprio" to "qopt"
> >   net: mscc: ocelot: add support for mqprio offload
> >   net: dsa: felix: act upon the mqprio qopt in taprio offload
> >   net: ethtool: fix __ethtool_dev_mm_supported() implementation
> >   net: ethtool: create and export ethtool_dev_mm_supported()
> >   net/sched: mqprio: simplify handling of nlattr portion of
> > TCA_OPTIONS
> >   net/sched: mqprio: add extack to mqprio_parse_nlattr()
> >   net/sched: mqprio: add an extack message to mqprio_parse_opt()
> >   net/sched: mqprio: allow per-TC user input of FP adminStatus
> >   net/sched: taprio: allow per-TC user input of FP adminStatus
> >   net: mscc: ocelot: add support for preemptible traffic classes
> >   net: enetc: add support for preemptible traffic classes
> >
> >  drivers/net/dsa/ocelot/felix_vsc9959.c        |  44 ++++-
> >  drivers/net/ethernet/freescale/enetc/enetc.c  |  31 ++-
> >  drivers/net/ethernet/freescale/enetc/enetc.h  |   1 +
> >  .../net/ethernet/freescale/enetc/enetc_hw.h   |   4 +
> >  drivers/net/ethernet/mscc/ocelot.c            |  51 +++++
> >  drivers/net/ethernet/mscc/ocelot.h            |   2 +
> >  drivers/net/ethernet/mscc/ocelot_mm.c         |  56 ++++++
> >  include/linux/ethtool_netlink.h               |   6 +
> >  include/net/pkt_sched.h                       |   1 +
> >  include/soc/mscc/ocelot.h                     |   6 +
> >  include/uapi/linux/pkt_sched.h                |  17 ++
> >  net/ethtool/mm.c                              |  24 ++-
> >  net/sched/sch_mqprio.c                        | 182
> > +++++++++++++++---
> >  net/sched/sch_mqprio_lib.c                    |  14 ++
> >  net/sched/sch_mqprio_lib.h                    |   2 +
> >  net/sched/sch_taprio.c                        |  65 +++++--
> >  16 files changed, 459 insertions(+), 47 deletions(-)
> >
> > --
> > 2.34.1
> >
>
> Seeing that there is no feedback on the proposed UAPI, I'd be tempted
> to resend this, with just the modular build fixed (export the
> ethtool_dev_mm_supported() symbol).
>
> Would anyone hate me for doing this, considering that the merge
> window
> is close? Does anyone need some time to take a closer look at this,
> or
> think about a better alternative?

Do you have the iproute2 part? Sorry if I missed it, but it would be
nice to see how is that UAPI exposed for the config tools. Is there any
new parameter for mqprio/taprio?

Best,
Ferenc