Subject: Re: [PATCH net] net: phy: fix phylib's dual eee_enabled

From: Herve Codina <[email-masked]>
Date: Tue, 7 Jan 2025 14:40:48 +0100

Hi,

On Thu, 14 Nov 2024 10:33:27 +0000
"Russell King (Oracle)" <[email-masked]> wrote:

> phylib has two eee_enabled members. Some parts of the code are using
> phydev->eee_enabled, other parts are using phydev->eee_cfg.eee_enabled.
> This leads to incorrect behaviour as their state goes out of sync.
> ethtool --show-eee shows incorrect information, and --set-eee sometimes
> doesn't take effect.
> 
> Fix this by only having one eee_enabled member - that in eee_cfg.
> 
> Fixes: 49168d1980e2 ("net: phy: Add phy_support_eee() indicating MAC support EEE")
> Signed-off-by: Russell King (Oracle) <[email-masked]>
> ---
>  drivers/net/phy/phy-c45.c    | 4 +---
>  drivers/net/phy/phy_device.c | 4 ++--
>  include/linux/phy.h          | 2 --
>  3 files changed, 3 insertions(+), 7 deletions(-)
> 

I observed a regression with this patch applied.

My system is based on a i.MX8MP soc with a TI DP83867 ethernet PHY and was
working with the kernel v6.12 release.

Using the v6.13-rc6 kernel leads to a low ethernet bandwidth.

I used to perform SCP transfers at around 6MB/s on my setup and after moving
to the last v6.13-rc6 kernel, the bandwidth dropped to 70KB/s.

A git bisect identified the commit 41ffcd95015f ("net: phy: fix phylib's dual
eee_enabled").

With this patch applied, the issue is present. Without the patch, the issue
is not present. Also if I add the 'eee-broken-100tx' device-tree property in
the PHY node, the issue is not present anymore.

Didn't investigated more the issue but the patch introduced a regression on
my system.

Best regards,
Hervé