From: Kurt Kanzenbach <kurt@linutronix.de>
To: Vladimir Oltean <vladimir.oltean@nxp.com>, netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Claudiu Manoil <claudiu.manoil@nxp.com>,
Vinicius Costa Gomes <vinicius.gomes@intel.com>,
Jacob Keller <jacob.e.keller@intel.com>,
Gerhard Engleder <gerhard@engleder-embedded.com>,
Horatiu Vultur <horatiu.vultur@microchip.com>,
Siddharth Vadapalli <s-vadapalli@ti.com>,
Roger Quadros <rogerq@kernel.org>
Subject: Re: [PATCH v2 net-next 15/15] net/sched: taprio: only calculate gate mask per TXQ for igc, stmmac and tsnep
Date: Thu, 26 Jan 2023 14:38:31 +0100 [thread overview]
Message-ID: <87v8ktza94.fsf@kurt> (raw)
In-Reply-To: <20230126125308.1199404-16-vladimir.oltean@nxp.com>
[-- Attachment #1: Type: text/plain, Size: 1939 bytes --]
On Thu Jan 26 2023, Vladimir Oltean wrote:
> There are 2 classes of in-tree drivers currently:
>
> - those who act upon struct tc_taprio_sched_entry :: gate_mask as if it
> holds a bit mask of TXQs
>
> - those who act upon the gate_mask as if it holds a bit mask of TCs
>
> When it comes to the standard, IEEE 802.1Q-2018 does say this in the
> second paragraph of section 8.6.8.4 Enhancements for scheduled traffic:
>
> | A gate control list associated with each Port contains an ordered list
> | of gate operations. Each gate operation changes the transmission gate
> | state for the gate associated with each of the Port's traffic class
> | queues and allows associated control operations to be scheduled.
>
> In typically obtuse language, it refers to a "traffic class queue"
> rather than a "traffic class" or a "queue". But careful reading of
> 802.1Q clarifies that "traffic class" and "queue" are in fact
> synonymous (see 8.6.6 Queuing frames):
>
> | A queue in this context is not necessarily a single FIFO data structure.
> | A queue is a record of all frames of a given traffic class awaiting
> | transmission on a given Bridge Port. The structure of this record is not
> | specified.
>
> i.o.w. their definition of "queue" isn't the Linux TX queue.
>
> The gate_mask really is input into taprio via its UAPI as a mask of
> traffic classes, but taprio_sched_to_offload() converts it into a TXQ
> mask.
>
> The breakdown of drivers which handle TC_SETUP_QDISC_TAPRIO is:
>
> - hellcreek, felix, sja1105: these are DSA switches, it's not even very
> clear what TXQs correspond to, other than purely software constructs.
> For felix and sja1105, I can confirm that only the mqprio
> configuration with 8 TCs and 1 TXQ per TC makes sense. So it's fine to
> convert these to a gate mask per TC.
Same for hellcreek. It has 8 TCs and the 1:1 mapping is used. So,
Acked-by: Kurt Kanzenbach <kurt@linutronix.de> # hellcreek
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]
next prev parent reply other threads:[~2023-01-26 13:38 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-26 12:52 [PATCH v2 net-next 00/15] ENETC mqprio/taprio cleanup Vladimir Oltean
2023-01-26 12:52 ` [PATCH v2 net-next 01/15] net: enetc: simplify enetc_num_stack_tx_queues() Vladimir Oltean
2023-01-26 12:52 ` [PATCH v2 net-next 02/15] net: enetc: allow the enetc_reconfigure() callback to fail Vladimir Oltean
2023-01-26 12:52 ` [PATCH v2 net-next 03/15] net: enetc: recalculate num_real_tx_queues when XDP program attaches Vladimir Oltean
2023-01-26 12:52 ` [PATCH v2 net-next 04/15] net: enetc: ensure we always have a minimum number of TXQs for stack Vladimir Oltean
2023-01-26 12:52 ` [PATCH v2 net-next 05/15] net/sched: mqprio: refactor nlattr parsing to a separate function Vladimir Oltean
2023-01-26 12:52 ` [PATCH v2 net-next 06/15] net/sched: mqprio: refactor offloading and unoffloading to dedicated functions Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 07/15] net/sched: move struct tc_mqprio_qopt_offload from pkt_cls.h to pkt_sched.h Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 08/15] net/sched: mqprio: allow offloading drivers to request queue count validation Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 09/15] net/sched: mqprio: add extack messages for " Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 10/15] net: enetc: request mqprio to validate the queue counts Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 11/15] net: enetc: act upon the requested mqprio queue configuration Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 12/15] net/sched: taprio: pass mqprio queue configuration to ndo_setup_tc() Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 13/15] net: enetc: act upon mqprio queue config in taprio offload Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 14/15] net/sched: taprio: validate that gate mask does not exceed number of TCs Vladimir Oltean
2023-01-26 12:53 ` [PATCH v2 net-next 15/15] net/sched: taprio: only calculate gate mask per TXQ for igc, stmmac and tsnep Vladimir Oltean
2023-01-26 13:38 ` Kurt Kanzenbach [this message]
2023-01-26 19:21 ` Gerhard Engleder
2023-01-26 16:46 ` [PATCH v2 net-next 00/15] ENETC mqprio/taprio cleanup Jakub Kicinski
2023-01-26 21:13 ` Vladimir Oltean
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87v8ktza94.fsf@kurt \
--to=kurt@linutronix.de \
--cc=claudiu.manoil@nxp.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=gerhard@engleder-embedded.com \
--cc=horatiu.vultur@microchip.com \
--cc=jacob.e.keller@intel.com \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=rogerq@kernel.org \
--cc=s-vadapalli@ti.com \
--cc=vinicius.gomes@intel.com \
--cc=vladimir.oltean@nxp.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.