From: Vinicius Costa Gomes <vinicius.gomes@intel.com>
To: Kurt Kanzenbach <kurt@linutronix.de>,
Tony Nguyen <anthony.l.nguyen@intel.com>,
Przemek Kitszel <przemyslaw.kitszel@intel.com>
Cc: Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
"Loktionov, Aleksandr" <aleksandr.loktionov@intel.com>,
intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
Kurt Kanzenbach <kurt@linutronix.de>
Subject: Re: [Intel-wired-lan] [PATCH iwl-net v3] igc: Restore default Qbv schedule when changing channels
Date: Mon, 05 Jan 2026 14:39:43 -0800 [thread overview]
Message-ID: <87y0mbwuog.fsf@intel.com> (raw)
In-Reply-To: <20251120-igc_mqprio_channels-v3-1-ce7d6f00720d@linutronix.de>
Kurt Kanzenbach <kurt@linutronix.de> writes:
> The Multi-queue Priority (MQPRIO) and Earliest TxTime First (ETF) offloads
> utilize the Time Sensitive Networking (TSN) Tx mode. This mode is always
> coupled to IEEE 802.1Qbv time aware shaper (Qbv). Therefore, the driver
> sets a default Qbv schedule of all gates opened and a cycle time of
> 1s. This schedule is set during probe.
>
> However, the following sequence of events lead to Tx issues:
>
> - Boot a dual core system
> igc_probe():
> igc_tsn_clear_schedule():
> -> Default Schedule is set
> Note: At this point the driver has allocated two Tx/Rx queues, because
> there are only two CPUs.
>
> - ethtool -L enp3s0 combined 4
> igc_ethtool_set_channels():
> igc_reinit_queues()
> -> Default schedule is gone, per Tx ring start and end time are zero
>
> - tc qdisc replace dev enp3s0 handle 100 parent root mqprio \
> num_tc 4 map 3 3 2 2 0 1 1 1 3 3 3 3 3 3 3 3 \
> queues 1@0 1@1 1@2 1@3 hw 1
> igc_tsn_offload_apply():
> igc_tsn_enable_offload():
> -> Writes zeros to IGC_STQT(i) and IGC_ENDQT(i), causing Tx to stall/fail
>
> Therefore, restore the default Qbv schedule after changing the number of
> channels.
>
> Furthermore, add a restriction to not allow queue reconfiguration when
> TSN/Qbv is enabled, because it may lead to inconsistent states.
>
> Fixes: c814a2d2d48f ("igc: Use default cycle 'start' and 'end' values for queues")
> Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
> ---
> Changes in v3:
> - Adjust commit message and comments (Aleksandr)
> - Link to v2: https://lore.kernel.org/r/20251118-igc_mqprio_channels-v2-1-c32563dede2f@linutronix.de
>
> Changes in v2:
> - Explain abbreviations (Aleksandr)
> - Only clear schedule if no error happened (Aleksandr)
> - Add restriction to avoid inconsistent states (Vinicius)
> - Target net tree (Vinicius)
> - Link to v1: https://lore.kernel.org/r/20251107-igc_mqprio_channels-v1-1-42415562d0f8@linutronix.de
> ---
Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Cheers,
--
Vinicius
prev parent reply other threads:[~2026-01-05 22:39 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-20 8:18 [Intel-wired-lan] [PATCH iwl-net v3] igc: Restore default Qbv schedule when changing channels Kurt Kanzenbach
2025-11-20 8:18 ` Kurt Kanzenbach
2025-11-20 8:47 ` [Intel-wired-lan] " Loktionov, Aleksandr
2025-11-20 8:47 ` Loktionov, Aleksandr
2025-12-29 14:50 ` Avigail Dahan
2026-01-05 22:39 ` Vinicius Costa Gomes [this message]
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=87y0mbwuog.fsf@intel.com \
--to=vinicius.gomes@intel.com \
--cc=aleksandr.loktionov@intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=anthony.l.nguyen@intel.com \
--cc=bigeasy@linutronix.de \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=kuba@kernel.org \
--cc=kurt@linutronix.de \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=przemyslaw.kitszel@intel.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.