Re: [PATCH net-next v1 2/2] net: dsa: microchip: add ETS Qdisc support for KSZ9477 series

From: Oleksij Rempel
Date: Mon Mar 06 2023 - 11:37:45 EST


Hi Vladimir,

On Mon, Mar 06, 2023 at 04:06:51PM +0200, Vladimir Oltean wrote:
> Hi Oleksij,
>
> On Mon, Mar 06, 2023 at 01:49:40PM +0100, Oleksij Rempel wrote:
> > + for (band = 0; band < p->bands; ++band) {
> > + /* The KSZ switches utilize a weighted round robin configuration
> > + * where a certain number of packets can be transmitted from a
> > + * queue before the next queue is serviced. For more information
> > + * on this, refer to section 5.2.8.4 of the KSZ8565R
> > + * documentation on the Port Transmit Queue Control 1 Register.
> > + * However, the current ETS Qdisc implementation (as of February
> > + * 2023) assigns a weight to each queue based on the number of
> > + * bytes or extrapolated bandwidth in percentages. Since this
> > + * differs from the KSZ switches' method and we don't want to
> > + * fake support by converting bytes to packets, we have decided
> > + * to return an error instead.
> > + */
> > + if (p->quanta[band]) {
> > + dev_err(dev->dev, "Quanta/weights configuration is not supported.\n");
> > + return -EOPNOTSUPP;
> > + }
>
> So what does the user gain using tc-ets over tc-mqprio? That has a way
> to set up strict prioritization and prio:tc maps as well, and to my
> knowledge mqprio is vastly more popular in non-DCB setups than tc-ets.
> The only thing is that with mqprio, AFAIK, the round robin between TXQs
> belonging to the same traffic class is not weighted.

Do mqprio already supports strict prio mode? net-next was not supporting
this back for two weeks. I do not care what to use, my motivation was based on
following points:
- tc-ets supports strict prio. mqprio need to be extended to do this
- tc-ets refers to IEEE 802.1Q specification, so i feel safe
and do not need to invent new things.
- mqprio automatically creates software queues, but it seems to not
provide any advantage for a typical bridged DSA setup. For example
i can use queue mapping only for traffic from CPU to external DSA port
but can't use multi queue advantages of CPU MAC for same traffic (do I'm
missing something). For bridged traffic i'll need to use HW offloading any
way.

Regards,
Oleksij
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |