2021-08-23 14:40:57

by Michael Riesch

[permalink] [raw]
Subject: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
"net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
unbalanced pm_runtime_enable warnings.

In the commit to be reverted, support for power management was
introduced to the Rockchip glue code. Later, power management support
was introduced to the stmmac core code, resulting in multiple
invocations of pm_runtime_{enable,disable,get_sync,put_sync}.

The multiple invocations happen in rk_gmac_powerup and
stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
stmmac_{dvr_remove, suspend}, respectively, which are always called
in conjunction.

Signed-off-by: Michael Riesch <[email protected]>
---
drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c | 9 ---------
1 file changed, 9 deletions(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 280ac0129572..ed817011a94a 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -21,7 +21,6 @@
#include <linux/delay.h>
#include <linux/mfd/syscon.h>
#include <linux/regmap.h>
-#include <linux/pm_runtime.h>

#include "stmmac_platform.h"

@@ -1529,9 +1528,6 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv)
return ret;
}

- pm_runtime_enable(dev);
- pm_runtime_get_sync(dev);
-
if (bsp_priv->integrated_phy)
rk_gmac_integrated_phy_powerup(bsp_priv);

@@ -1540,14 +1536,9 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv)

static void rk_gmac_powerdown(struct rk_priv_data *gmac)
{
- struct device *dev = &gmac->pdev->dev;
-
if (gmac->integrated_phy)
rk_gmac_integrated_phy_powerdown(gmac);

- pm_runtime_put_sync(dev);
- pm_runtime_disable(dev);
-
phy_power_on(gmac, false);
gmac_clk_enable(gmac, false);
}
--
2.17.1


2021-08-23 16:45:26

by Jakub Kicinski

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

On Mon, 23 Aug 2021 16:37:54 +0200 Michael Riesch wrote:
> In the commit to be reverted, support for power management was
> introduced to the Rockchip glue code. Later, power management support
> was introduced to the stmmac core code, resulting in multiple
> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.

Can we get a Fixes tag? I.e. reference to the earliest commit where
the warning can be triggered?

> The multiple invocations happen in rk_gmac_powerup and
> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
> stmmac_{dvr_remove, suspend}, respectively, which are always called
> in conjunction.

2021-08-25 08:14:46

by Michael Riesch

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi Jakub,

On 8/23/21 6:44 PM, Jakub Kicinski wrote:
> On Mon, 23 Aug 2021 16:37:54 +0200 Michael Riesch wrote:
>> In the commit to be reverted, support for power management was
>> introduced to the Rockchip glue code. Later, power management support
>> was introduced to the stmmac core code, resulting in multiple
>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>
> Can we get a Fixes tag? I.e. reference to the earliest commit where
> the warning can be triggered?

Of course :-)

Fixes: 5ec55823438e850c91c6b92aec93fb04ebde29e2 ("net: stmmac: add
clocks management for gmac driver")

This commit introduces power management support to the stmmac core
(stmmac_{dvr_probe, dvr_remove, suspend, resume}).

Best regards,
Michael

>> The multiple invocations happen in rk_gmac_powerup and
>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>> in conjunction.

2021-08-25 09:53:22

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Mon, 23 Aug 2021 16:37:54 +0200 you wrote:
> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
> unbalanced pm_runtime_enable warnings.
>
> In the commit to be reverted, support for power management was
> introduced to the Rockchip glue code. Later, power management support
> was introduced to the stmmac core code, resulting in multiple
> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>
> [...]

Here is the summary with links:
- net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings
https://git.kernel.org/netdev/net/c/2d26f6e39afb

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


2021-08-29 17:52:00

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi,

On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
<[email protected]> wrote:
>
> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
> unbalanced pm_runtime_enable warnings.
>
> In the commit to be reverted, support for power management was
> introduced to the Rockchip glue code. Later, power management support
> was introduced to the stmmac core code, resulting in multiple
> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>
> The multiple invocations happen in rk_gmac_powerup and
> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
> stmmac_{dvr_remove, suspend}, respectively, which are always called
> in conjunction.
>
> Signed-off-by: Michael Riesch <[email protected]>

I just found that Ethernet stopped working on my RK3399 devices,
and I bisected it down to this patch.

The symptom I see is no DHCP responses, either because the request
isn't getting sent over the wire, or the response isn't getting
received. The PHY seems to be working correctly.


ChenYu

2021-08-30 08:00:06

by Michael Riesch

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi ChenYu,

On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
> Hi,
>
> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
> <[email protected]> wrote:
>>
>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>> unbalanced pm_runtime_enable warnings.
>>
>> In the commit to be reverted, support for power management was
>> introduced to the Rockchip glue code. Later, power management support
>> was introduced to the stmmac core code, resulting in multiple
>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>
>> The multiple invocations happen in rk_gmac_powerup and
>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>> in conjunction.
>>
>> Signed-off-by: Michael Riesch <[email protected]>
>
> I just found that Ethernet stopped working on my RK3399 devices,
> and I bisected it down to this patch.

Oh dear. First patch in a kernel release for a while and I already break
things.

Cc: Sasha as this patch has just been applied to 5.13-stable.

> The symptom I see is no DHCP responses, either because the request
> isn't getting sent over the wire, or the response isn't getting
> received. The PHY seems to be working correctly.

Unfortunately I don't have any RK3399 hardware. Is this a custom
board/special hardware or something that is readily available in the
shops? Maybe this is a good reason to buy a RK3399 based single-board
computer :-)

I am working on the RK3568 EVB1 and have not encountered faulty
behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
whether I can be much of help in this matter, but in case you want to
discuss this further please do not hesitate to contact me off-list.

> ChenYu

Best regards,
Michael

2021-08-30 13:51:24

by Punit Agrawal

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi Michael,

Michael Riesch <[email protected]> writes:

> Hi ChenYu,
>
> On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
>> Hi,
>>
>> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
>> <[email protected]> wrote:
>>>
>>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>>> unbalanced pm_runtime_enable warnings.
>>>
>>> In the commit to be reverted, support for power management was
>>> introduced to the Rockchip glue code. Later, power management support
>>> was introduced to the stmmac core code, resulting in multiple
>>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>>
>>> The multiple invocations happen in rk_gmac_powerup and
>>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>>> in conjunction.
>>>
>>> Signed-off-by: Michael Riesch <[email protected]>
>>
>> I just found that Ethernet stopped working on my RK3399 devices,
>> and I bisected it down to this patch.
>
> Oh dear. First patch in a kernel release for a while and I already break
> things.

I am seeing the same failure symptoms reported by ChenYu on my RockPro64
with v5.14. Reverting the revert i.e., 2d26f6e39afb ("net: stmmac:
dwmac-rk: fix unbalanced pm_runtime_enable warnings") brings back the
network.

> Cc: Sasha as this patch has just been applied to 5.13-stable.
>
>> The symptom I see is no DHCP responses, either because the request
>> isn't getting sent over the wire, or the response isn't getting
>> received. The PHY seems to be working correctly.
>
> Unfortunately I don't have any RK3399 hardware. Is this a custom
> board/special hardware or something that is readily available in the
> shops? Maybe this is a good reason to buy a RK3399 based single-board
> computer :-)

Not sure about the other RK3399 boards but RockPro64 is easily
available.

> I am working on the RK3568 EVB1 and have not encountered faulty
> behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
> whether I can be much of help in this matter, but in case you want to
> discuss this further please do not hesitate to contact me off-list.

I tried to look for the differences between RK3568 and RK3399 but the
upstream device tree doesn't seem to carry a gmac node in the device
tree for EK3568 EVB1. Do you have a pointer for the dts you're using?

Also, other than the warning "Unbalanced pm_runtime_enable!" do you
notice any other ill-effects without your patch?

If this affects all RK3399 boards as ChenYu suggests quite a few users
are going to miss the network once they upgrade.

Punit

[...]

2021-08-30 14:17:54

by Michael Riesch

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi Punit,

On 8/30/21 3:49 PM, Punit Agrawal wrote:
> Hi Michael,
>
> Michael Riesch <[email protected]> writes:
>
>> Hi ChenYu,
>>
>> On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
>>> Hi,
>>>
>>> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
>>> <[email protected]> wrote:
>>>>
>>>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>>>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>>>> unbalanced pm_runtime_enable warnings.
>>>>
>>>> In the commit to be reverted, support for power management was
>>>> introduced to the Rockchip glue code. Later, power management support
>>>> was introduced to the stmmac core code, resulting in multiple
>>>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>>>
>>>> The multiple invocations happen in rk_gmac_powerup and
>>>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>>>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>>>> in conjunction.
>>>>
>>>> Signed-off-by: Michael Riesch <[email protected]>
>>>
>>> I just found that Ethernet stopped working on my RK3399 devices,
>>> and I bisected it down to this patch.
>>
>> Oh dear. First patch in a kernel release for a while and I already break
>> things.
>
> I am seeing the same failure symptoms reported by ChenYu on my RockPro64
> with v5.14. Reverting the revert i.e., 2d26f6e39afb ("net: stmmac:
> dwmac-rk: fix unbalanced pm_runtime_enable warnings") brings back the
> network.
>
>> Cc: Sasha as this patch has just been applied to 5.13-stable.
>>
>>> The symptom I see is no DHCP responses, either because the request
>>> isn't getting sent over the wire, or the response isn't getting
>>> received. The PHY seems to be working correctly.
>>
>> Unfortunately I don't have any RK3399 hardware. Is this a custom
>> board/special hardware or something that is readily available in the
>> shops? Maybe this is a good reason to buy a RK3399 based single-board
>> computer :-)
>
> Not sure about the other RK3399 boards but RockPro64 is easily
> available.

I was thinking to get one of those anyway ;-)

>> I am working on the RK3568 EVB1 and have not encountered faulty
>> behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
>> whether I can be much of help in this matter, but in case you want to
>> discuss this further please do not hesitate to contact me off-list.
>
> I tried to look for the differences between RK3568 and RK3399 but the
> upstream device tree doesn't seem to carry a gmac node in the device
> tree for EK3568 EVB1. Do you have a pointer for the dts you're using?

The gmac nodes have been added recently and should enter 5.15-rc1. Until
then, you can check out the dts from linux-rockchip/for-next [0].

> Also, other than the warning "Unbalanced pm_runtime_enable!" do you
> notice any other ill-effects without your patch?

No, not as such.

Best regards,
Michael

> If this affects all RK3399 boards as ChenYu suggests quite a few users
> are going to miss the network once they upgrade.>
> Punit
>
> [...]
>

[0]
https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/log/?h=for-next

2021-08-30 16:05:03

by Chen-Yu Tsai

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi,

On Mon, Aug 30, 2021 at 3:57 PM Michael Riesch
<[email protected]> wrote:
>
> Hi ChenYu,
>
> On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
> > Hi,
> >
> > On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
> > <[email protected]> wrote:
> >>
> >> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
> >> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
> >> unbalanced pm_runtime_enable warnings.
> >>
> >> In the commit to be reverted, support for power management was
> >> introduced to the Rockchip glue code. Later, power management support
> >> was introduced to the stmmac core code, resulting in multiple
> >> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
> >>
> >> The multiple invocations happen in rk_gmac_powerup and
> >> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
> >> stmmac_{dvr_remove, suspend}, respectively, which are always called
> >> in conjunction.
> >>
> >> Signed-off-by: Michael Riesch <[email protected]>
> >
> > I just found that Ethernet stopped working on my RK3399 devices,
> > and I bisected it down to this patch.
>
> Oh dear. First patch in a kernel release for a while and I already break
> things.
>
> Cc: Sasha as this patch has just been applied to 5.13-stable.
>
> > The symptom I see is no DHCP responses, either because the request
> > isn't getting sent over the wire, or the response isn't getting
> > received. The PHY seems to be working correctly.
>
> Unfortunately I don't have any RK3399 hardware. Is this a custom
> board/special hardware or something that is readily available in the
> shops? Maybe this is a good reason to buy a RK3399 based single-board
> computer :-)

I hit this on an ROC-RK3399-PC first, then bisected it on a NanoPi M4V2.
They both should be easy to get from their respective vendors. AFAIK
all the RK3399 devices have pretty much the same setup for Ethernet.

BTW, Don't get the Nanopi in the M4V2 variant. Get the original M4, or
the M4B (but the WiFi on the M4B doesn't seem to work lately).

> I am working on the RK3568 EVB1 and have not encountered faulty
> behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
> whether I can be much of help in this matter, but in case you want to
> discuss this further please do not hesitate to contact me off-list.

My gut is telling me (without looking at the code) that maybe the GRF
access was not going through, and so the RGMII delays and stuff weren't
set properly, hence no traffic getting to/from the PHY. Otherwise there
were no error messages. I don't think I'll be able to squeeze out more
cycles to track down what actually went wrong though.


Regards
ChenYu

2021-08-30 19:23:26

by Sasha Levin

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

On Mon, Aug 30, 2021 at 09:57:51AM +0200, Michael Riesch wrote:
>Hi ChenYu,
>
>On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
>> Hi,
>>
>> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
>> <[email protected]> wrote:
>>>
>>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>>> unbalanced pm_runtime_enable warnings.
>>>
>>> In the commit to be reverted, support for power management was
>>> introduced to the Rockchip glue code. Later, power management support
>>> was introduced to the stmmac core code, resulting in multiple
>>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>>
>>> The multiple invocations happen in rk_gmac_powerup and
>>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>>> in conjunction.
>>>
>>> Signed-off-by: Michael Riesch <[email protected]>
>>
>> I just found that Ethernet stopped working on my RK3399 devices,
>> and I bisected it down to this patch.
>
>Oh dear. First patch in a kernel release for a while and I already break
>things.
>
>Cc: Sasha as this patch has just been applied to 5.13-stable.

I'll drop it for now, thanks for letting me know!

--
Thanks,
Sasha

2021-09-14 01:31:23

by Ivan Babrou

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Is it possible to revert the patch from the 5.14 and 5.15 as well?
I've tried upgrading my rockpro64 board from 5.13 to 5.15-rc1 and
ended up bisecting the issue to this commit like the others. It would
be nice to spare others from this exercise.

2021-09-14 10:09:36

by Michael Riesch

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hello Ivan,

On 9/14/21 3:10 AM, Ivan Babrou wrote:
> Is it possible to revert the patch from the 5.14 and 5.15 as well?
> I've tried upgrading my rockpro64 board from 5.13 to 5.15-rc1 and
> ended up bisecting the issue to this commit like the others. It would
> be nice to spare others from this exercise.

For what it is worth we believe that there is a different issue with the
dwmac-rk driver that was obscured by calling pm_runtime_get_sync()
early. Investigation in progress -- I hope that we can achieve a proper
solution before we have to revert the revert.

Best regards,
Michael

2021-09-14 13:43:50

by Sebastian Döring

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi Michael,

I guess looking for a better or more ideal solution sounds good, but
sorry if this is impertinent, as it's coming from a mostly uninvolved
3rd party: This is affects a kernel that is labeled as "stable". It
seems extremely unacceptable to break ethernet support for boards like
the rockpro64, which are used largely in a headless fashion, when the
offending commit has already been identified.

I don't expect a stable kernel release to completely break my hardware
and then see people not immediately applying a workaround patch. It
seems strange. I'm not fond of having to fix things through serial
console and hunting through mailing lists to figure out what's going
on. I'd only expect this for -rc kernels.

Just my two cents.

Best regards,
Sebastian

Am Di., 14. Sept. 2021 um 12:09 Uhr schrieb Michael Riesch
<[email protected]>:
>
> Hello Ivan,
>
> On 9/14/21 3:10 AM, Ivan Babrou wrote:
> > Is it possible to revert the patch from the 5.14 and 5.15 as well?
> > I've tried upgrading my rockpro64 board from 5.13 to 5.15-rc1 and
> > ended up bisecting the issue to this commit like the others. It would
> > be nice to spare others from this exercise.
>
> For what it is worth we believe that there is a different issue with the
> dwmac-rk driver that was obscured by calling pm_runtime_get_sync()
> early. Investigation in progress -- I hope that we can achieve a proper
> solution before we have to revert the revert.
>
> Best regards,
> Michael

2021-09-17 10:55:25

by Qu Wenruo

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings



On 2021/8/30 22:10, Michael Riesch wrote:
> Hi Punit,
>
> On 8/30/21 3:49 PM, Punit Agrawal wrote:
>> Hi Michael,
>>
>> Michael Riesch <[email protected]> writes:
>>
>>> Hi ChenYu,
>>>
>>> On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
>>>> Hi,
>>>>
>>>> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
>>>> <[email protected]> wrote:
>>>>>
>>>>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>>>>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>>>>> unbalanced pm_runtime_enable warnings.
>>>>>
>>>>> In the commit to be reverted, support for power management was
>>>>> introduced to the Rockchip glue code. Later, power management support
>>>>> was introduced to the stmmac core code, resulting in multiple
>>>>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>>>>
>>>>> The multiple invocations happen in rk_gmac_powerup and
>>>>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>>>>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>>>>> in conjunction.
>>>>>
>>>>> Signed-off-by: Michael Riesch <[email protected]>
>>>>
>>>> I just found that Ethernet stopped working on my RK3399 devices,
>>>> and I bisected it down to this patch.
>>>
>>> Oh dear. First patch in a kernel release for a while and I already break
>>> things.
>>
>> I am seeing the same failure symptoms reported by ChenYu on my RockPro64
>> with v5.14. Reverting the revert i.e., 2d26f6e39afb ("net: stmmac:
>> dwmac-rk: fix unbalanced pm_runtime_enable warnings") brings back the
>> network.
>>
>>> Cc: Sasha as this patch has just been applied to 5.13-stable.
>>>
>>>> The symptom I see is no DHCP responses, either because the request
>>>> isn't getting sent over the wire, or the response isn't getting
>>>> received. The PHY seems to be working correctly.
>>>
>>> Unfortunately I don't have any RK3399 hardware. Is this a custom
>>> board/special hardware or something that is readily available in the
>>> shops? Maybe this is a good reason to buy a RK3399 based single-board
>>> computer :-)
>>
>> Not sure about the other RK3399 boards but RockPro64 is easily
>> available.
>
> I was thinking to get one of those anyway ;-)
>
>>> I am working on the RK3568 EVB1 and have not encountered faulty
>>> behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
>>> whether I can be much of help in this matter, but in case you want to
>>> discuss this further please do not hesitate to contact me off-list.
>>
>> I tried to look for the differences between RK3568 and RK3399 but the
>> upstream device tree doesn't seem to carry a gmac node in the device
>> tree for EK3568 EVB1. Do you have a pointer for the dts you're using?
>
> The gmac nodes have been added recently and should enter 5.15-rc1. Until
> then, you can check out the dts from linux-rockchip/for-next [0].

Do you have the upstream commit?

As I compiled v5.15-rc1 and still can't get the ethernet work.

Not sure if it's my Uboot->systemd-boot->customer kernel setup not
passing the device tree correctly or something else...

Thanks,
Qu

>
>> Also, other than the warning "Unbalanced pm_runtime_enable!" do you
>> notice any other ill-effects without your patch?
>
> No, not as such.
>
> Best regards,
> Michael
>
>> If this affects all RK3399 boards as ChenYu suggests quite a few users
>> are going to miss the network once they upgrade.>
>> Punit
>>
>> [...]
>>
>
> [0]
> https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/log/?h=for-next
>
> _______________________________________________
> linux-arm-kernel mailing list
> [email protected]
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

2021-09-17 13:08:16

by Qu Wenruo

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings



On 2021/9/17 15:18, Punit Agrawal wrote:
> Hi Qu,
>
> Qu Wenruo <[email protected]> writes:
>
>> On 2021/8/30 22:10, Michael Riesch wrote:
>>> Hi Punit,
>>> On 8/30/21 3:49 PM, Punit Agrawal wrote:
>>>> Hi Michael,
>>>>
>>>> Michael Riesch <[email protected]> writes:
>>>>
>>>>> Hi ChenYu,
>>>>>
>>>>> On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
>>>>>> <[email protected]> wrote:
>>>>>>>
>>>>>>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>>>>>>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>>>>>>> unbalanced pm_runtime_enable warnings.
>>>>>>>
>>>>>>> In the commit to be reverted, support for power management was
>>>>>>> introduced to the Rockchip glue code. Later, power management support
>>>>>>> was introduced to the stmmac core code, resulting in multiple
>>>>>>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>>>>>>
>>>>>>> The multiple invocations happen in rk_gmac_powerup and
>>>>>>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>>>>>>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>>>>>>> in conjunction.
>>>>>>>
>>>>>>> Signed-off-by: Michael Riesch <[email protected]>
>>>>>>
>>>>>> I just found that Ethernet stopped working on my RK3399 devices,
>>>>>> and I bisected it down to this patch.
>>>>>
>>>>> Oh dear. First patch in a kernel release for a while and I already break
>>>>> things.
>>>>
>>>> I am seeing the same failure symptoms reported by ChenYu on my RockPro64
>>>> with v5.14. Reverting the revert i.e., 2d26f6e39afb ("net: stmmac:
>>>> dwmac-rk: fix unbalanced pm_runtime_enable warnings") brings back the
>>>> network.
>>>>
>>>>> Cc: Sasha as this patch has just been applied to 5.13-stable.
>>>>>
>>>>>> The symptom I see is no DHCP responses, either because the request
>>>>>> isn't getting sent over the wire, or the response isn't getting
>>>>>> received. The PHY seems to be working correctly.
>>>>>
>>>>> Unfortunately I don't have any RK3399 hardware. Is this a custom
>>>>> board/special hardware or something that is readily available in the
>>>>> shops? Maybe this is a good reason to buy a RK3399 based single-board
>>>>> computer :-)
>>>>
>>>> Not sure about the other RK3399 boards but RockPro64 is easily
>>>> available.
>>> I was thinking to get one of those anyway ;-)
>>>
>>>>> I am working on the RK3568 EVB1 and have not encountered faulty
>>>>> behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
>>>>> whether I can be much of help in this matter, but in case you want to
>>>>> discuss this further please do not hesitate to contact me off-list.
>>>>
>>>> I tried to look for the differences between RK3568 and RK3399 but the
>>>> upstream device tree doesn't seem to carry a gmac node in the device
>>>> tree for EK3568 EVB1. Do you have a pointer for the dts you're using?
>>> The gmac nodes have been added recently and should enter
>>> 5.15-rc1. Until
>>> then, you can check out the dts from linux-rockchip/for-next [0].
>>
>> Do you have the upstream commit?
>>
>> As I compiled v5.15-rc1 and still can't get the ethernet work.
>>
>> Not sure if it's my Uboot->systemd-boot->customer kernel setup not
>> passing the device tree correctly or something else...
>
> For the RK3568 device tree changes, I think the pull request got delayed
> to the next cycle. So likely to land in v5.16.
>
> In case you're after ethernet on RK3399, there's no solution
> yet. Reverting 2d26f6e39afb ("net: stmmac: dwmac-rk: fix unbalanced
> pm_runtime_enable warnings") gets you there in the meanwhile.

Thanks, currently I have seen other distros like ManjaroARM is already
reverting that commit.

But even with that commit reverted, I still get some other strange
network behavior.

The most weird one is distcc, when the RK3399 board is the client and
x86_64 desktop acts as a volunteer, after compiling hundreds of files,
it suddenly no longer work.

All work can no longer be distributed to the same volunteer.


But on RPI CM4 board, the same kernel (both upstream 5.14.2, even the
binary is the same), the same distro (Manjaro ARM), the same distcc
setup, the setup works flawless.


Not sure if this is related, but it looks like a network related
problem, and considering both boards are using the same kernel, just
different ethernet driver, I guess there is something more problematic
here in recent RK3399 code.

Thanks,
Qu
>
> [...]
>

2021-09-17 17:30:09

by Punit Agrawal

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Hi Qu,

Qu Wenruo <[email protected]> writes:

> On 2021/8/30 22:10, Michael Riesch wrote:
>> Hi Punit,
>> On 8/30/21 3:49 PM, Punit Agrawal wrote:
>>> Hi Michael,
>>>
>>> Michael Riesch <[email protected]> writes:
>>>
>>>> Hi ChenYu,
>>>>
>>>> On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
>>>>> Hi,
>>>>>
>>>>> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
>>>>> <[email protected]> wrote:
>>>>>>
>>>>>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>>>>>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>>>>>> unbalanced pm_runtime_enable warnings.
>>>>>>
>>>>>> In the commit to be reverted, support for power management was
>>>>>> introduced to the Rockchip glue code. Later, power management support
>>>>>> was introduced to the stmmac core code, resulting in multiple
>>>>>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>>>>>
>>>>>> The multiple invocations happen in rk_gmac_powerup and
>>>>>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>>>>>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>>>>>> in conjunction.
>>>>>>
>>>>>> Signed-off-by: Michael Riesch <[email protected]>
>>>>>
>>>>> I just found that Ethernet stopped working on my RK3399 devices,
>>>>> and I bisected it down to this patch.
>>>>
>>>> Oh dear. First patch in a kernel release for a while and I already break
>>>> things.
>>>
>>> I am seeing the same failure symptoms reported by ChenYu on my RockPro64
>>> with v5.14. Reverting the revert i.e., 2d26f6e39afb ("net: stmmac:
>>> dwmac-rk: fix unbalanced pm_runtime_enable warnings") brings back the
>>> network.
>>>
>>>> Cc: Sasha as this patch has just been applied to 5.13-stable.
>>>>
>>>>> The symptom I see is no DHCP responses, either because the request
>>>>> isn't getting sent over the wire, or the response isn't getting
>>>>> received. The PHY seems to be working correctly.
>>>>
>>>> Unfortunately I don't have any RK3399 hardware. Is this a custom
>>>> board/special hardware or something that is readily available in the
>>>> shops? Maybe this is a good reason to buy a RK3399 based single-board
>>>> computer :-)
>>>
>>> Not sure about the other RK3399 boards but RockPro64 is easily
>>> available.
>> I was thinking to get one of those anyway ;-)
>>
>>>> I am working on the RK3568 EVB1 and have not encountered faulty
>>>> behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
>>>> whether I can be much of help in this matter, but in case you want to
>>>> discuss this further please do not hesitate to contact me off-list.
>>>
>>> I tried to look for the differences between RK3568 and RK3399 but the
>>> upstream device tree doesn't seem to carry a gmac node in the device
>>> tree for EK3568 EVB1. Do you have a pointer for the dts you're using?
>> The gmac nodes have been added recently and should enter
>> 5.15-rc1. Until
>> then, you can check out the dts from linux-rockchip/for-next [0].
>
> Do you have the upstream commit?
>
> As I compiled v5.15-rc1 and still can't get the ethernet work.
>
> Not sure if it's my Uboot->systemd-boot->customer kernel setup not
> passing the device tree correctly or something else...

For the RK3568 device tree changes, I think the pull request got delayed
to the next cycle. So likely to land in v5.16.

In case you're after ethernet on RK3399, there's no solution
yet. Reverting 2d26f6e39afb ("net: stmmac: dwmac-rk: fix unbalanced
pm_runtime_enable warnings") gets you there in the meanwhile.

[...]

2021-09-17 23:31:59

by Punit Agrawal

[permalink] [raw]
Subject: Re: [PATCH] net: stmmac: dwmac-rk: fix unbalanced pm_runtime_enable warnings

Qu Wenruo <[email protected]> writes:

> On 2021/9/17 15:18, Punit Agrawal wrote:
>> Hi Qu,
>> Qu Wenruo <[email protected]> writes:
>>
>>> On 2021/8/30 22:10, Michael Riesch wrote:
>>>> Hi Punit,
>>>> On 8/30/21 3:49 PM, Punit Agrawal wrote:
>>>>> Hi Michael,
>>>>>
>>>>> Michael Riesch <[email protected]> writes:
>>>>>
>>>>>> Hi ChenYu,
>>>>>>
>>>>>> On 8/29/21 7:48 PM, Chen-Yu Tsai wrote:
>>>>>>> Hi,
>>>>>>>
>>>>>>> On Mon, Aug 23, 2021 at 10:39 PM Michael Riesch
>>>>>>> <[email protected]> wrote:
>>>>>>>>
>>>>>>>> This reverts commit 2c896fb02e7f65299646f295a007bda043e0f382
>>>>>>>> "net: stmmac: dwmac-rk: add pd_gmac support for rk3399" and fixes
>>>>>>>> unbalanced pm_runtime_enable warnings.
>>>>>>>>
>>>>>>>> In the commit to be reverted, support for power management was
>>>>>>>> introduced to the Rockchip glue code. Later, power management support
>>>>>>>> was introduced to the stmmac core code, resulting in multiple
>>>>>>>> invocations of pm_runtime_{enable,disable,get_sync,put_sync}.
>>>>>>>>
>>>>>>>> The multiple invocations happen in rk_gmac_powerup and
>>>>>>>> stmmac_{dvr_probe, resume} as well as in rk_gmac_powerdown and
>>>>>>>> stmmac_{dvr_remove, suspend}, respectively, which are always called
>>>>>>>> in conjunction.
>>>>>>>>
>>>>>>>> Signed-off-by: Michael Riesch <[email protected]>
>>>>>>>
>>>>>>> I just found that Ethernet stopped working on my RK3399 devices,
>>>>>>> and I bisected it down to this patch.
>>>>>>
>>>>>> Oh dear. First patch in a kernel release for a while and I already break
>>>>>> things.
>>>>>
>>>>> I am seeing the same failure symptoms reported by ChenYu on my RockPro64
>>>>> with v5.14. Reverting the revert i.e., 2d26f6e39afb ("net: stmmac:
>>>>> dwmac-rk: fix unbalanced pm_runtime_enable warnings") brings back the
>>>>> network.
>>>>>
>>>>>> Cc: Sasha as this patch has just been applied to 5.13-stable.
>>>>>>
>>>>>>> The symptom I see is no DHCP responses, either because the request
>>>>>>> isn't getting sent over the wire, or the response isn't getting
>>>>>>> received. The PHY seems to be working correctly.
>>>>>>
>>>>>> Unfortunately I don't have any RK3399 hardware. Is this a custom
>>>>>> board/special hardware or something that is readily available in the
>>>>>> shops? Maybe this is a good reason to buy a RK3399 based single-board
>>>>>> computer :-)
>>>>>
>>>>> Not sure about the other RK3399 boards but RockPro64 is easily
>>>>> available.
>>>> I was thinking to get one of those anyway ;-)
>>>>
>>>>>> I am working on the RK3568 EVB1 and have not encountered faulty
>>>>>> behavior. DHCP works fine and I can boot via NFS. Therefore, not sure
>>>>>> whether I can be much of help in this matter, but in case you want to
>>>>>> discuss this further please do not hesitate to contact me off-list.
>>>>>
>>>>> I tried to look for the differences between RK3568 and RK3399 but the
>>>>> upstream device tree doesn't seem to carry a gmac node in the device
>>>>> tree for EK3568 EVB1. Do you have a pointer for the dts you're using?
>>>> The gmac nodes have been added recently and should enter
>>>> 5.15-rc1. Until
>>>> then, you can check out the dts from linux-rockchip/for-next [0].
>>>
>>> Do you have the upstream commit?
>>>
>>> As I compiled v5.15-rc1 and still can't get the ethernet work.
>>>
>>> Not sure if it's my Uboot->systemd-boot->customer kernel setup not
>>> passing the device tree correctly or something else...
>> For the RK3568 device tree changes, I think the pull request got
>> delayed
>> to the next cycle. So likely to land in v5.16.
>> In case you're after ethernet on RK3399, there's no solution
>> yet. Reverting 2d26f6e39afb ("net: stmmac: dwmac-rk: fix unbalanced
>> pm_runtime_enable warnings") gets you there in the meanwhile.
>
> Thanks, currently I have seen other distros like ManjaroARM is already
> reverting that commit.
>
> But even with that commit reverted, I still get some other strange
> network behavior.
>
> The most weird one is distcc, when the RK3399 board is the client and
> x86_64 desktop acts as a volunteer, after compiling hundreds of files,
> it suddenly no longer work.

I haven't seen something like this - but then I am not a heavy user of
the network on the board.

Is it just the network that dies or the whole system freezes? Sometimes
I've seen the board lock up if it's under heavy load.

> All work can no longer be distributed to the same volunteer.
>
>
> But on RPI CM4 board, the same kernel (both upstream 5.14.2, even the
> binary is the same), the same distro (Manjaro ARM), the same distcc
> setup, the setup works flawless.
>
>
> Not sure if this is related, but it looks like a network related
> problem, and considering both boards are using the same kernel, just
> different ethernet driver, I guess there is something more problematic
> here in recent RK3399 code.

If you are only seeing the problem with recent kernels, maybe a bisect
might help narrow things down.

[...]