Thread (21 messages) 21 messages, 4 authors, 2021-04-14

RE: Regression v5.12-rc3: net: stmmac: re-init rx buffers when mac resume back

From: Joakim Zhang <hidden>
Date: 2021-03-31 11:41:53
Also in: lkml, netdev

-----Original Message-----
From: Jon Hunter <jonathanh@nvidia.com>
Sent: 2021年3月31日 19:29
To: Joakim Zhang <redacted>; Giuseppe Cavallaro
[off-list ref]; Alexandre Torgue [off-list ref];
Jose Abreu [off-list ref]
Cc: netdev@vger.kernel.org; Linux Kernel Mailing List
[off-list ref]; linux-tegra [off-list ref];
Jakub Kicinski [off-list ref]
Subject: Re: Regression v5.12-rc3: net: stmmac: re-init rx buffers when mac
resume back


On 31/03/2021 12:10, Joakim Zhang wrote:

...
quoted
quoted
quoted
quoted
quoted
quoted
quoted
quoted
You mean one of your boards? Does other boards with STMMAC can
work
fine?

We have two devices with the STMMAC and one works OK and the
other
fails.
quoted
quoted
They are different generation of device and so there could be
some architectural differences which is causing this to only be
seen on one
device.
quoted
quoted
quoted
It's really strange, but I also don't know what architectural
differences could
affect this. Sorry.

I realised that for the board which fails after this change is made,
it has the IOMMU enabled. The other board does not at the moment
(although work is in progress to enable). If I add
'iommu.passthrough=1' to cmdline for the failing board, then it
works again. So in my case, the problem is linked to the IOMMU being
enabled.
quoted
quoted
quoted
Does you platform enable the IOMMU?
Hi Jon,

There is no IOMMU hardware available on our boards. But why IOMMU
would affect it during suspend/resume, and no problem in normal mode?
One more add, I saw drivers/iommu/tegra-gart.c(not sure if is this) support
suspend/resume, is it possible iommu resume back after stmmac?


This board is the tegra186-p2771-0000 (Jetson TX2) and uses the
arm,mmu-500 and not the above driver.
OK.
In answer to your question, resuming from suspend does work on this board
without your change. We have been testing suspend/resume now on this board
since Linux v5.8 and so we have the ability to bisect such regressions. So it is
clear to me that this is the change that caused this, but I am not sure why.
Yes, I know this issue is regression caused by my patch. I just want to analyze the potential reasons. Due to the code change only related to the page recycle and reallocate.
So I guess if this page operate need IOMMU works when IOMMU is enabled. Could you help check if IOMMU driver resume before STMMAC? Our common desire is to find the root cause, right?

Best Regards,
Joakim Zhang
Thanks
Jon

--
nvpublic
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help