All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Russell King (Oracle)" <linux@armlinux.org.uk>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>,
	Andrew Lunn <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>,
	linux-arm-kernel@lists.infradead.org,
	linux-stm32@st-md-mailman.stormreply.com, netdev@vger.kernel.org,
	Ong Boon Leong <boon.leong.ong@intel.com>,
	Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH net-next 01/10] net: stmmac: fix TSO support when some channels have TBS available
Date: Sun, 29 Mar 2026 10:40:43 +0100	[thread overview]
Message-ID: <acjzmxY9xmBInSwm@shell.armlinux.org.uk> (raw)
In-Reply-To: <E1w6bKj-0000000ELtf-3md9@rmk-PC.armlinux.org.uk>

On Sat, Mar 28, 2026 at 09:36:41PM +0000, Russell King (Oracle) wrote:
> According to the STM32MP25xx manual, which is dwmac v5.3, TBS (time
> based scheduling) is not permitted for channels which have hardware
> TSO enabled. Intel's commit 5e6038b88a57 ("net: stmmac: fix TSO and
> TBS feature enabling during driver open") concurs with this, but it
> is incomplete.
> 
> This commit avoids enabling TSO support on the channels which have
> TBS available, which, as far as the hardware is concerned, means we
> do not set the TSE bit in the DMA channel's transmit control register.
> 
> However, the net device's features apply to all queues(channels), which
> means these channels may still be handed TSO skbs to transmit, and the
> driver will pass them to stmmac_tso_xmit(). This will generate the
> descriptors for TSO, even though the channel has the TSE bit clear.
> 
> Fix this by checking whether the queue(channel) has TBS available,
> and if it does, fall back to software GSO support.

This is sufficient for the immediate issue of fixing the patch below,
but I think there's another issue that also needs fixing here.

TSO requires the hardware to support checksum offload, and there is
a comment in the driver:

        /* DWMAC IPs can be synthesized to support tx coe only for a few tx
         * queues. In that case, checksum offloading for those queues that don't
         * support tx coe needs to fallback to software checksum calculation.
         *
         * Packets that won't trigger the COE e.g. most DSA-tagged packets will
         * also have to be checksummed in software.
         */

So, it seems at the very least we need to add a check (in a subsequent
patch) for priv->plat->tx_queues_cfg[queue].coe_unsupported to
stmmac_channel_tso_permitted().

I'm also wondering about the stmmac_has_ip_ethertype() thing, which
checks whether the skb can be checksummed by the hardware, and how that
interacts with TSO, and whether that's yet another hole that needs
plugging.

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!


  reply	other threads:[~2026-03-29  9:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-28 21:36 [PATCH net-next 00/10] net: stmmac: TSO fixes/cleanups Russell King (Oracle)
2026-03-28 21:36 ` [PATCH net-next 01/10] net: stmmac: fix TSO support when some channels have TBS available Russell King (Oracle)
2026-03-29  9:40   ` Russell King (Oracle) [this message]
2026-03-29 14:03     ` Andrew Lunn
2026-03-29 17:42     ` Jakub Kicinski
2026-03-29 18:23       ` Russell King (Oracle)
2026-03-28 21:36 ` [PATCH net-next 02/10] net: stmmac: add TSO check for header length Russell King (Oracle)
2026-03-28 21:36 ` [PATCH net-next 03/10] net: stmmac: move TSO VLAN tag insertion to core code Russell King (Oracle)
2026-03-29  9:09   ` Russell King (Oracle)
2026-03-28 21:36 ` [PATCH net-next 04/10] net: stmmac: always enable channel TSO when supported Russell King (Oracle)
2026-03-28 21:37 ` [PATCH net-next 05/10] net: stmmac: fix .ndo_fix_features() Russell King (Oracle)
2026-03-28 21:37 ` [PATCH net-next 06/10] net: stmmac: simplify GSO/TSO test in stmmac_xmit() Russell King (Oracle)
2026-03-29  9:17   ` Russell King (Oracle)
2026-03-28 21:37 ` [PATCH net-next 07/10] net: stmmac: split out gso features setup Russell King (Oracle)
2026-03-28 21:37 ` [PATCH net-next 08/10] net: stmmac: make stmmac_set_gso_features() more readable Russell King (Oracle)
2026-03-28 21:37 ` [PATCH net-next 09/10] net: stmmac: add warning when TSO is requested but unsupported Russell King (Oracle)
2026-03-28 21:37 ` [PATCH net-next 10/10] net: stmmac: move "TSO supported" message to stmmac_set_gso_features() Russell King (Oracle)
2026-03-29  0:10 ` [PATCH net-next 00/10] net: stmmac: TSO fixes/cleanups Russell King (Oracle)
2026-03-29 18:11 ` Jakub Kicinski
2026-03-29 18:51   ` Russell King (Oracle)
2026-03-30 23:42     ` Jakub Kicinski

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=acjzmxY9xmBInSwm@shell.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=alexandre.torgue@foss.st.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=andrew@lunn.ch \
    --cc=boon.leong.ong@intel.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-stm32@st-md-mailman.stormreply.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.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.