[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <51859704-57fd-4913-b09d-9ac58a57f185@bootlin.com>
Date: Thu, 15 Jan 2026 22:35:26 +0100
From: Maxime Chevallier <maxime.chevallier@...tlin.com>
To: "Russell King (Oracle)" <linux@...linux.org.uk>,
Tao Wang <tao03.wang@...izon.auto>
Cc: alexandre.torgue@...s.st.com, andrew+netdev@...n.ch, davem@...emloft.net,
edumazet@...gle.com, horms@...nel.org, kuba@...nel.org,
linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
mcoquelin.stm32@...il.com, netdev@...r.kernel.org, pabeni@...hat.com
Subject: Re: [PATCH net v2] net: stmmac: fix transmit queue timed out after
resume
Hi again,
On 15/01/2026 22:04, Maxime Chevallier wrote:
> Hi,
>
>>
>> I've just run iperf3 in both directions with the kernel I had on the
>> board (based on 6.18.0-rc7-net-next+), and stmmac really isn't looking
>> particularly great - by that I mean, iperf3 *failed* spectacularly.
>>
>> First, running in normal mode (stmmac transmitting, x86 receiving)
>> it's only capable of 210Mbps, which is nowhere near line rate.
>>
>> However, when running iperf3 in reverse mode, it filled the stmmac's
>> receive queue, which then started spewing PAUSE frames at a rate of
>> knots, flooding the network, and causing the entire network to stop.
>> It never recovered without rebooting.
[...]
> Heh, I was able to reproduce something similar on imx8mp, that has an
> imx-dwmac (dwmac 4/5 according to dmesg) :
>
> DUT to x86
>
> Connecting to host 192.168.2.1, port 5201
> [ 5] local 192.168.2.13 port 54744 connected to 192.168.2.1 port 5201
> [ ID] Interval Transfer Bitrate Retr Cwnd
> [ 5] 0.00-1.00 sec 0.00 Bytes 0.00 bits/sec 2 1.41 KBytes
> [ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 1 1.41 KBytes
>
> x86 to DUT :
>
> Reverse mode, remote host 192.168.2.1 is sending
> [ 5] local 192.168.2.13 port 47050 connected to 192.168.2.1 port 5201
> [ ID] Interval Transfer Bitrate
> [ 5] 0.00-1.00 sec 112 MBytes 935 Mbits/sec
> [ 5] 1.00-2.00 sec 112 MBytes 936 Mbits/sec
> [ 5] 2.00-3.00 sec 112 MBytes 936 Mbits/sec
>
> Nothing as bas as what you face, but there's defintely something going
> on there. "good" news is that it worked in v6.19-rc1, I have a bisect
> ongoing.
>
> I'll update once I have homed-in on something.
>
> Maxime
So the bisect results are in, at least for the problem I noticed. It's
not certain yet this is the same problem as Russell, and maybe not the
same as Tao Wang as well...
The culprit commit is :
commit 8409495bf6c907a5bc9632464dbdd8fb619f9ceb (HEAD)
Author: Russell King (Oracle) <rmk+kernel@...linux.org.uk>
Date: Thu Jan 8 17:36:40 2026 +0000
net: stmmac: cores: remove many xxx_SHIFT definitions
We have many xxx_SHIFT definitions along side their corresponding
xxx_MASK definitions for the various cores. Manually using the
shift and mask can be error prone, as shown with the dwmac4 RXFSTS
fix patch.
Convert sites that use xxx_SHIFT and xxx_MASK directly to use
FIELD_GET(), FIELD_PREP(), and u32_replace_bits() as appropriate.
Signed-off-by: Russell King (Oracle) <rmk+kernel@...linux.org.uk>
Link: https://patch.msgid.link/E1vdtw8-00000002Gtu-0Hyu@rmk-PC.armlinux.org.uk
Signed-off-by: Jakub Kicinski <kuba@...nel.org>
Lore link :
https://lore.kernel.org/netdev/E1vdtw8-00000002Gtu-0Hyu@rmk-PC.armlinux.org.uk/
I confirm that iperf3 works perfectly in both directions before this commit,
and I get 0 bits/s when running "iperf3 -c my_host" on the DUT that has stmmac.
Looks like something happened while cleaning-up the macros for the various
definitions.
Unfortunately it's getting late here, I'm not going to dig any further
tonight :(
Thanks,
Maxime
Powered by blists - more mailing lists