On Tue, Oct 17, 2023 at 09:03:01PM +0800, Jijie Shao wrote:
on 2023/7/31 17:10, Jijie Shao wrote:
on 2023/7/30 2:23, Andrew Lunn wrote:
Now i wounder if you are fixing the wrong thing. Maybe you should be fixing the PHY so it does not report up and then down? You say 'very snall intervals', which should in fact be 1 second. So is the PHY reporting link for a number of poll intervals? 1min to 10 minutes?
Andrew
Yes, according to the log records, the phy polls every second, but the link status changes take time. Generally, it takes 10 seconds for the phy to detect link down, but occasionally it takes several minutes to detect link down,
What PHY driver is this?
It is not so clear what should actually happen with auto-neg turned off. With it on, and the link going down, the PHY should react after about 1 second. It is not supposed to react faster than that, although some PHYs allow fast link down notification to be configured.
Have you checked 802.3 to see what it says about auto-neg off and link down detection?
I personally would not suppress this behaviour in the MAC driver. Otherwise you are going to have funny combinations of special cases of a feature which very few people actually use, making your maintenance costs higher.
Andrew
Hi Andrew, We've rewritten the commit log to explain this problem, Would you please take some time to review that?
The following is the new commit log: This patch is to correct a wrong log info "link down/up" in hns3 driver. When setting autoneg off without changing speed and duplex, the link should be not changed. However in hns3 driver, it print link down/up once incorrectly. We trace the phy machine state and find the phy change form PHY_UP to PHY_RUNNING. No other state of PHY occurs during this process. MDIO trace also indicate the link is on. The wrong log info and mdio trace are showed as followed:
[ 843.720783][ T367] hns3 0000:35:00.0 eth1: set link(phy): autoneg=0, speed=10, duplex=1 [ 843.736087][ T367] hns3 0000:35:00.0 eth1: link down [ 843.773506][ T17] RTL8211F Gigabit Ethernet mii-0000:35:00.0:02: PHY state change UP -> RUNNING [ 844.674668][ T31] hns3 0000:35:00.0 eth1: link up
I still think this is totally valid and correct.
When you turn auto-neg off the link partner is going to react to that, it might drop the link. After a while, the link partner will give up trying to perform auto-neg and might fall back to 10/Half. At which point, the link might allow traffic flow. However, in this example, you have a duplex mis-match, so it might not work correctly.
Turning off auto-neg is something you need to do at both ends, and you need to then force both ends to the same settings. Link down is expected. I would actually be suppressed if no link down events were reported.
Andrew