From: Kurt Kanzenbach <kurt@linutronix.de>
To: Vladimir Oltean <vladimir.oltean@nxp.com>, netdev@vger.kernel.org
Cc: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Subject: Re: [RFC PATCH net-next 05/15] net/sched: taprio: give higher priority to higher TCs in software dequeue mode
Date: Sat, 28 Jan 2023 13:04:37 +0100 [thread overview]
Message-ID: <87k016vp9m.fsf@kurt> (raw)
In-Reply-To: <20230128010719.2182346-6-vladimir.oltean@nxp.com>
[-- Attachment #1: Type: text/plain, Size: 1169 bytes --]
On Sat Jan 28 2023, Vladimir Oltean wrote:
> Currently taprio iterates over child qdiscs in increasing order of TXQ
> index, therefore giving higher xmit priority to TXQ 0 and lower to TXQ N.
>
> However, to the best of my understanding, we should prioritize based on
> the traffic class, so we should really dequeue starting with the highest
> traffic class and going down from there. We get to the TXQ using the
> tc_to_txq[] netdev property.
>
> TXQs within the same TC have the same (strict) priority, so we should
> pick from them as fairly as we can. Implement something very similar to
> q->curband from multiq_dequeue().
Totally makes sense to me...
>
> Something tells me Vinicius won't like the way in which this patch
> interacts with TXTIME_ASSIST_IS_ENABLED(q->flags) and NICs where TXQ 0
> really has higher priority than TXQ 1....
However, this change may be problematic for i210/i225/i226 NIC(s).
AFAIK the Tx queue priorities for i225/i226 are configurable. Meaning
the default could be adjusted to have Tx queue 4 with higher priority
than 3 and so on. For i210 I don't know. Also Tx Launch Time only works
for the lower queues. Hm.
Thanks,
Kurt
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 861 bytes --]
next prev parent reply other threads:[~2023-01-28 12:04 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-28 1:07 [RFC PATCH net-next 00/15] taprio fixprovements Vladimir Oltean
2023-01-28 1:07 ` [RFC PATCH net-next 01/15] net/sched: taprio: delete peek() implementation Vladimir Oltean
2023-01-28 11:59 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 02/15] net/sched: taprio: continue with other TXQs if one dequeue() failed Vladimir Oltean
2023-01-28 11:59 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 03/15] net/sched: taprio: refactor one skb dequeue from TXQ to separate function Vladimir Oltean
2023-01-28 11:59 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 04/15] net/sched: taprio: avoid calling child->ops->dequeue(child) twice Vladimir Oltean
2023-01-28 12:00 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 05/15] net/sched: taprio: give higher priority to higher TCs in software dequeue mode Vladimir Oltean
2023-01-28 12:04 ` Kurt Kanzenbach [this message]
2023-01-29 13:17 ` Vladimir Oltean
2023-01-31 9:37 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 06/15] net/sched: taprio: calculate tc gate durations Vladimir Oltean
2023-01-28 12:05 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 07/15] net/sched: taprio: rename close_time to end_time Vladimir Oltean
2023-01-28 12:05 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 08/15] net/sched: taprio: calculate budgets per traffic class Vladimir Oltean
2023-01-28 12:05 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 09/15] net/sched: taprio: calculate guard band against actual TC gate close time Vladimir Oltean
2023-01-28 12:05 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 10/15] net/sched: make stab available before ops->init() call Vladimir Oltean
2023-01-28 12:06 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 11/15] net/sched: taprio: warn about missing size table Vladimir Oltean
2023-01-28 12:06 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 12/15] net/sched: keep the max_frm_len information inside struct sched_gate_list Vladimir Oltean
2023-01-28 12:06 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 13/15] net/sched: taprio: automatically calculate queueMaxSDU based on TC gate durations Vladimir Oltean
2023-01-28 12:06 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 14/15] net/sched: taprio: split segmentation logic from qdisc_enqueue() Vladimir Oltean
2023-01-28 12:07 ` Kurt Kanzenbach
2023-01-28 1:07 ` [RFC PATCH net-next 15/15] net/sched: taprio: don't segment unnecessarily Vladimir Oltean
2023-01-28 12:07 ` Kurt Kanzenbach
2023-01-28 12:20 ` [RFC PATCH net-next 00/15] taprio fixprovements Kurt Kanzenbach
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=87k016vp9m.fsf@kurt \
--to=kurt@linutronix.de \
--cc=netdev@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).