diff mbox series

[net] stmmac: Revert "stmmac: align RX buffers"

Message ID 20210820183002.457226-1-maz@kernel.org (mailing list archive)
State Accepted
Delegated to: Netdev Maintainers
Headers show
Series [net] stmmac: Revert "stmmac: align RX buffers" | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present fail Series targets non-next tree, but doesn't contain any Fixes tags
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net
netdev/subject_prefix success Link
netdev/cc_maintainers warning 4 maintainers not CCed: mcoquelin.stm32@gmail.com joabreu@synopsys.com linux-stm32@st-md-mailman.stormreply.com linux-arm-kernel@lists.infradead.org
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 21 this patch: 21
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 11 lines checked
netdev/build_allmodconfig_warn success Errors and warnings before: 21 this patch: 21
netdev/header_inline success Link

Commit Message

Marc Zyngier Aug. 20, 2021, 6:30 p.m. UTC
This reverts commit a955318fe67e ("stmmac: align RX buffers"),
which breaks at least one platform (Nvidia Jetson-X1), causing
packet corruption. This is 100% reproducible, and reverting
the patch results in a working system again.

Given that it is "only" a performance optimisation, let's
return to a known working configuration until we can have a
good understanding of what is happening here.

Cc: Matteo Croce <mcroce@linux.microsoft.com>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Cc: Alexandre Torgue <alexandre.torgue@foss.st.com>
Link: https://lore.kernel.org/netdev/871r71azjw.wl-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Jakub Kicinski Aug. 20, 2021, 9:46 p.m. UTC | #1
On Fri, 20 Aug 2021 19:30:02 +0100 Marc Zyngier wrote:
> This reverts commit a955318fe67e ("stmmac: align RX buffers"),
> which breaks at least one platform (Nvidia Jetson-X1), causing
> packet corruption. This is 100% reproducible, and reverting
> the patch results in a working system again.
> 
> Given that it is "only" a performance optimisation, let's
> return to a known working configuration until we can have a
> good understanding of what is happening here.

Seems reasonable. Hopefully it wont discourage Matteo from revisiting
the optimization. Applied, thanks!
Marc Zyngier Aug. 21, 2021, 9:50 a.m. UTC | #2
On Fri, 20 Aug 2021 22:46:10 +0100,
Jakub Kicinski <kuba@kernel.org> wrote:
> 
> On Fri, 20 Aug 2021 19:30:02 +0100 Marc Zyngier wrote:
> > This reverts commit a955318fe67e ("stmmac: align RX buffers"),
> > which breaks at least one platform (Nvidia Jetson-X1), causing
> > packet corruption. This is 100% reproducible, and reverting
> > the patch results in a working system again.
> > 
> > Given that it is "only" a performance optimisation, let's
> > return to a known working configuration until we can have a
> > good understanding of what is happening here.
> 
> Seems reasonable. Hopefully it wont discourage Matteo from revisiting
> the optimization. Applied, thanks!

That's my hope too. As I pointed out at the end of the towards the end
of the discussion I linked to, this buys us time to work out exactly
where is the gap in our understanding of the buffer allocation for
this particular driver.

Once we clearly understand why it fails on some systems and not some
others (which on its own could cover a multitude of sins), I'd be glad
to see this optimisation brought back in, and I'm willing to help with
it.

Thanks,

	M.
diff mbox series

Patch

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac.h b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
index fcdb1d20389b..43eead726886 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac.h
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac.h
@@ -339,9 +339,9 @@  static inline bool stmmac_xdp_is_enabled(struct stmmac_priv *priv)
 static inline unsigned int stmmac_rx_offset(struct stmmac_priv *priv)
 {
 	if (stmmac_xdp_is_enabled(priv))
-		return XDP_PACKET_HEADROOM + NET_IP_ALIGN;
+		return XDP_PACKET_HEADROOM;
 
-	return NET_SKB_PAD + NET_IP_ALIGN;
+	return 0;
 }
 
 void stmmac_disable_rx_queue(struct stmmac_priv *priv, u32 queue);