diff mbox series

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

Message ID 20210820183002.457226-1-maz@kernel.org
State New
Headers show
Series [net] stmmac: Revert "stmmac: align RX buffers" | expand

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.

-- 
Without deviation from the norm, progress is not possible.
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);