* net: phy: SMSC LAN8710/LAN8720 high load
@ 2016-01-11 7:41 Teresa Remmet
2016-01-11 8:09 ` Igor Plyatov
2016-01-12 11:33 ` David Laight
0 siblings, 2 replies; 4+ messages in thread
From: Teresa Remmet @ 2016-01-11 7:41 UTC (permalink / raw)
To: Igor Plyatov, David S. Miller; +Cc: Florian Fainelli, netdev, linux-kernel
Hello,
we have noticed load issues on our AM335x boards with a LAN8710 phy while
cpu is idling using 4.4-rc8.
CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
Load average: 1.21 1.16 1.00 1/84 372
We could track this down to the ethernet phy. And bisect the issue to the
following patch:
commit 776829de90c5972895db398993ddfa9417ff8b01
Author: Igor Plyatov <plyatov@gmail.com>
Date: Fri Aug 14 20:11:02 2015 +0300
net: phy: workaround for buggy cable detection by LAN8700 after cable plugging
* Due to HW bug, LAN8700 sometimes does not detect presence of energy in the
Ethernet cable in Energy Detect Power-Down mode (e.g while EDPWRDOWN bit is
set, the ENERGYON bit does not asserted sometimes). This is a common bug of
LAN87xx family of PHY chips.
* The lan87xx_read_status() was improved to acquire ENERGYON bit. Its previous
algorythm still not reliable on 100 % and sometimes skip cable plugging.
Signed-off-by: Igor Plyatov <plyatov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Reverting the commit helped to make the load drop down to:
09:21:01 up 32 min, load average: 0.19, 0.17, 0.14
In both cases no ethernet cable as been connected.
We also struggle with the buggy cable detection issue, but this increase of load
doesn't seem acceptable.
Can someone else with a LAN87xx also reproduce this?
Regards
Teresa
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: net: phy: SMSC LAN8710/LAN8720 high load
2016-01-11 7:41 net: phy: SMSC LAN8710/LAN8720 high load Teresa Remmet
@ 2016-01-11 8:09 ` Igor Plyatov
2016-01-12 11:33 ` David Laight
1 sibling, 0 replies; 4+ messages in thread
From: Igor Plyatov @ 2016-01-11 8:09 UTC (permalink / raw)
To: Teresa Remmet, David S. Miller; +Cc: Florian Fainelli, netdev, linux-kernel
Dear Teresa,
> Hello,
>
> we have noticed load issues on our AM335x boards with a LAN8710 phy while
> cpu is idling using 4.4-rc8.
>
> CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
> Load average: 1.21 1.16 1.00 1/84 372
>
> We could track this down to the ethernet phy. And bisect the issue to the
> following patch:
>
> commit 776829de90c5972895db398993ddfa9417ff8b01
> Author: Igor Plyatov <plyatov@gmail.com>
> Date: Fri Aug 14 20:11:02 2015 +0300
>
> net: phy: workaround for buggy cable detection by LAN8700 after cable plugging
> * Due to HW bug, LAN8700 sometimes does not detect presence of energy in the
> Ethernet cable in Energy Detect Power-Down mode (e.g while EDPWRDOWN bit is
> set, the ENERGYON bit does not asserted sometimes). This is a common bug of
> LAN87xx family of PHY chips.
> * The lan87xx_read_status() was improved to acquire ENERGYON bit. Its previous
> algorythm still not reliable on 100 % and sometimes skip cable plugging.
>
> Signed-off-by: Igor Plyatov <plyatov@gmail.com>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> Reverting the commit helped to make the load drop down to:
>
> 09:21:01 up 32 min, load average: 0.19, 0.17, 0.14
>
> In both cases no ethernet cable as been connected.
>
> We also struggle with the buggy cable detection issue, but this increase of load
> doesn't seem acceptable.
It depends from scenarios of device usage and priorities of device
reliability.
Our device is industrial and work most of the time with Ethernet cable
plugged in.
In our case it is completely unacceptable to have buggy cable detection
and we can easily sacrifice some small CPU time.
Do you need to use device without Ethernet cable for a long time? Is
this critical?
Teresa, maybe you can improve CPU usage.
Try to play with number of cycles and msleep time in the cycle:
/* Wait max 640 ms to detect energy */
for (i = 0; i < 64; i++) {
/* Sleep to allow link test pulses to be sent */
msleep(10);
But you need to keep overall duration >= 640 ms and make many long tests
after modification to be sure in reliable cable detection.
Best wishes.
--
Igor Plyatov
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: phy: SMSC LAN8710/LAN8720 high load
2016-01-11 7:41 net: phy: SMSC LAN8710/LAN8720 high load Teresa Remmet
2016-01-11 8:09 ` Igor Plyatov
@ 2016-01-12 11:33 ` David Laight
2016-01-15 9:18 ` Teresa Remmet
1 sibling, 1 reply; 4+ messages in thread
From: David Laight @ 2016-01-12 11:33 UTC (permalink / raw)
To: 'Teresa Remmet', Igor Plyatov, David S. Miller
Cc: Florian Fainelli, netdev, linux-kernel
From: Teresa Remmet
> Sent: 11 January 2016 07:42
> we have noticed load issues on our AM335x boards with a LAN8710 phy while
> cpu is idling using 4.4-rc8.
>
> CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
> Load average: 1.21 1.16 1.00 1/84 372
The 'Load average' value is mostly meaningless.
It includes any process/thread that is sleeping uninterruptably - even
if the process is never woken (or is only woken for short periods).
If you have a kernel thread that you don't want affected by signals
(exits on some request to the driver) then you end up increasing the
'load average'.
David
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: phy: SMSC LAN8710/LAN8720 high load
2016-01-12 11:33 ` David Laight
@ 2016-01-15 9:18 ` Teresa Remmet
0 siblings, 0 replies; 4+ messages in thread
From: Teresa Remmet @ 2016-01-15 9:18 UTC (permalink / raw)
To: David Laight
Cc: Igor Plyatov, David S. Miller, Florian Fainelli, netdev, linux-kernel
Hello David,
Am Dienstag, den 12.01.2016, 11:33 +0000 schrieb David Laight:
> From: Teresa Remmet
> > Sent: 11 January 2016 07:42
> > we have noticed load issues on our AM335x boards with a LAN8710 phy while
> > cpu is idling using 4.4-rc8.
> >
> > CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
> > Load average: 1.21 1.16 1.00 1/84 372
>
> The 'Load average' value is mostly meaningless.
> It includes any process/thread that is sleeping uninterruptably - even
> if the process is never woken (or is only woken for short periods).
>
> If you have a kernel thread that you don't want affected by signals
> (exits on some request to the driver) then you end up increasing the
> 'load average'.
thank you for your explanation. But I'm still worried that waiting so
long in this function might be a problem.
When I look at the function duration of lan87xx_read_status it takes in
average about 1277869 us. When disabling the the power detect mode the
time drops down to 555.326 us.
As disabling over device tree does not work correct for lan87xx a patch
follows.
Teresa
>
> David
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-01-15 9:20 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-11 7:41 net: phy: SMSC LAN8710/LAN8720 high load Teresa Remmet
2016-01-11 8:09 ` Igor Plyatov
2016-01-12 11:33 ` David Laight
2016-01-15 9:18 ` Teresa Remmet
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).