Bug 201081
Summary: | r8169 link negotiation limited to 10Mbit/Half duplex after resume from suspend | ||
---|---|---|---|
Product: | Drivers | Reporter: | Neil MacLeod (neil) |
Component: | Network | Assignee: | drivers_network (drivers_network) |
Status: | RESOLVED CODE_FIX | ||
Severity: | normal | CC: | hkallweit1 |
Priority: | P1 | ||
Hardware: | x86-64 | ||
OS: | Linux | ||
Kernel Version: | 4.19-rc1-4.19-rc4 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Attachments: |
dmesg before suspend
ethtool eth0 before suspend dmesg after resume ethtool eth0 after resume dmesg 4.19-rc4: power on, suspend/resume, then reset. |
Description
Neil MacLeod
2018-09-10 19:29:42 UTC
Created attachment 278431 [details]
dmesg before suspend
Created attachment 278433 [details]
ethtool eth0 before suspend
Created attachment 278435 [details]
dmesg after resume
Created attachment 278437 [details]
ethtool eth0 after resume
Still an issue with 4.19-rc4. I'm able to reset the interface after resuming from suspend and and the driver will correctly negotiate 1000Mbps/Full duplex: LibreELEC (community): devel-20180917030540-#0917-g56eae68 (Generic.x86_64) LibreELEC:~ # uname -a Linux LibreELEC 4.19.0-rc4 #1 SMP Sun Sep 16 22:35:06 BST 2018 x86_64 GNU/Linux LibreELEC:~ # ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Link partner advertised pause frame use: Symmetric Receive-only Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000033 (51) drv probe ifdown ifup Link detected: yes Suspend, then resume... LibreELEC:~ # ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half Link partner advertised pause frame use: No Link partner advertised auto-negotiation: No Link partner advertised FEC modes: Not reported Speed: 10Mb/s Duplex: Half Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000033 (51) drv probe ifdown ifup Link detected: yes LibreELEC:~ # ethtool -r eth0 LibreELEC:~ # ethtool eth0 Settings for eth0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Link partner advertised pause frame use: Symmetric Receive-only Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 1000Mb/s Duplex: Full Port: MII PHYAD: 0 Transceiver: internal Auto-negotiation: on Supports Wake-on: pumbg Wake-on: g Current message level: 0x00000033 (51) drv probe ifdown ifup Link detected: yes LibreELEC:~ # exit Connection to revo closed. Testing on Acer Aspire Revo 3700 with LibreELEC. Created attachment 278575 [details]
dmesg 4.19-rc4: power on, suspend/resume, then reset.
dmesg 4.19-rc4:
[ 18.197295] power on (1000Mbps/full)
[ 64.414282] suspend/resume (10Mbps/half)
[ 109.854914] reset (1000Mbps/full)
Strange that the link partner advertised modes are reported with 10/half only, and that the link partner doesn't advertise autoneg after resume. To get more clarity on who's to blame: Could you please check whether you face the same issue when using a different link partner? And what's the current link partner type/model? Also worth a try: Could you please check with the latest linux-next kernel? I have been testing against a Netgear 10/100/1000 GS608 v3 8-port unmanaged switch. After your suggestion I connected the Revo 3700 into a Netgear GS105e managed switch using a different CAT5e cable - the result is the same as with the GS608v3, only 10/half advertised after resume. I also tried connecting the Revo 3700 to a Netgear DGND4000 router but again the same result, only 10/half advertised after resume. So that's three different switches/routers, with 2 different CAT5e cables, all with the same result - only 10/half advertised after resuming. This only started happening after a2965f12fde696d3754347bd48a7149b8de45b21. Prior to that all is fine. The Revo 3700 into GS608 can suspend/resume without a problem with 4.18.8, but not 4.19-rc1+. I'll give linux-next a try. Unfortunately linux-next[1] is no different[2] When bootig with linux-next: 1) First power on: [ 16.914298] r8169 0000:03:00.0 eth0: Link is Up - 1Gbps/Full - flow control rx/tx 2) After suspend then resume: [ 108.754361] r8169 0000:03:00.0 eth0: Link is Up - 10Mbps/Half - flow control off So unfortunately it's the same as 4.19-rc1-4.19-rc4. 1. https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=f8dcd02792146c5047419ff4c856651acd04f7c6 2. http://ix.io/1mTi (dmesg) Fixed with 10bc6a6042c9 ("r8169: fix autoneg issue on resume with RTL8168E"). Should soon appear in the stable kernel. Many thanks - confirming this is fixed in 4.19-rc6. |