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

From: Vladimir Oltean
Date: Sat Feb 18 2023 - 10:20:38 EST


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?