Bug 10322

Summary: e1000 is not auto-negotiating to 1GB full duplex speed even there is 1GB speed availble
Product: Drivers Reporter: Steven Liu (lqs_xting)
Component: NetworkAssignee: Jesse Brandeburg (jbrandeb)
Status: CLOSED INSUFFICIENT_DATA    
Severity: normal CC: alan, jbrandeb, lqs_xting
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.23 Subsystem:
Regression: No Bisected commit-id:

Description Steven Liu 2008-03-25 07:29:56 UTC
Latest working kernel version: 2.6.23.9
Earliest failing kernel version: 2.6.21
Distribution:
Hardware Environment: e1000 with 82571 chip
Software Environment: CentOS 4.5
Problem Description:
We have a machine with the e1000(82571) driver which could not detect the correct link mode with a switch supports 1000 Mbps/s. I just find that the ethtool can't support 10 Mbps/s Half and 1000 Mbps/s Full mode. Therefore, the e1000 code should be fixed by add all modes at the 216 lines in e1000_ethtool.c. It is as follow:

hw->autoneg_advertised |= ecmd->advertising |
                         ADVERTISED_TP |
                         ADVERTISED_Autoneg;


Steps to reproduce:
1. Add a entry ' ETHTOOL_OPTS="autoneg on" ' in the /etc/sysconfig/network-scripts/ifcfg-eth0;
2. Run '/etc/init.d/network restart';
3. Run 'ethtool eth0', it displays the speed is 100 Mbps/s. But the real link mode should be 1000 Mbps/s
Comment 1 Anonymous Emailer 2008-03-25 12:37:29 UTC
Reply-To: akpm@linux-foundation.org


(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).


On Tue, 25 Mar 2008 07:29:56 -0700 (PDT)
bugme-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=10322
> 
>            Summary: e1000 is not auto-negotiating to 1GB full duplex speed
>                     even there is 1GB speed availble
>            Product: Drivers
>            Version: 2.5
>      KernelVersion: 2.6.23
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Network
>         AssignedTo: jgarzik@pobox.com
>         ReportedBy: lqs_xting@sohu.com
>                 CC: lqs_xting@sohu.com
> 
> 
> Latest working kernel version: 2.6.23.9
> Earliest failing kernel version: 2.6.21

err, according to this, we had the bug in 2.6.21 and then fixed it in
2.6.23.9, so this is a report of an already fixed bug ;)

Can you please clarify the version numbers here?

> Distribution:
> Hardware Environment: e1000 with 82571 chip
> Software Environment: CentOS 4.5
> Problem Description:
> We have a machine with the e1000(82571) driver which could not detect the
> correct link mode with a switch supports 1000 Mbps/s. I just find that the
> ethtool can't support 10 Mbps/s Half and 1000 Mbps/s Full mode. Therefore,
> the
> e1000 code should be fixed by add all modes at the 216 lines in
> e1000_ethtool.c. It is as follow:
> 
> hw->autoneg_advertised |= ecmd->advertising |
>                          ADVERTISED_TP |
>                          ADVERTISED_Autoneg;
> 
> 
> Steps to reproduce:
> 1. Add a entry ' ETHTOOL_OPTS="autoneg on" ' in the
> /etc/sysconfig/network-scripts/ifcfg-eth0;
> 2. Run '/etc/init.d/network restart';
> 3. Run 'ethtool eth0', it displays the speed is 100 Mbps/s. But the real link
> mode should be 1000 Mbps/s
Comment 2 Auke Kok 2008-03-25 15:12:32 UTC
Andrew Morton wrote:
>> Hardware Environment: e1000 with 82571 chip
>> Software Environment: CentOS 4.5
>> Problem Description:
>> We have a machine with the e1000(82571) driver which could not detect the
>> correct link mode with a switch supports 1000 Mbps/s. I just find that the
>> ethtool can't support 10 Mbps/s Half and 1000 Mbps/s Full mode. Therefore,
>> the
>> e1000 code should be fixed by add all modes at the 216 lines in
>> e1000_ethtool.c. It is as follow:
>>
>> hw->autoneg_advertised |= ecmd->advertising |
>>                          ADVERTISED_TP |
>>                          ADVERTISED_Autoneg;
>>
>>
>> Steps to reproduce:
>> 1. Add a entry ' ETHTOOL_OPTS="autoneg on" ' in the
>> /etc/sysconfig/network-scripts/ifcfg-eth0;
>> 2. Run '/etc/init.d/network restart';
>> 3. Run 'ethtool eth0', it displays the speed is 100 Mbps/s. But the real
>> link
>> mode should be 1000 Mbps/s

a bit moot because 82571 support is moving to e1000e and thus I will (probably)
not fix this bug. all 82571 support will be removed from e1000 from 2.6.26 onwards.

Please re-test against e1000e from 2.6.25-rc5 - if the bug is still in that driver
then we need to look at it again. Either that or reproduce against an 8254x adapter?

Auke
Comment 3 Steven Liu 2008-03-25 20:38:47 UTC
Today, I re-test e1000 and e1000e with 2.6.25-rc5. The problem is still existed.
My hardware is "Ethernet controller: Intel Corporation 82573E Gigabit Ethernet Controller (Copper) (rev 03)".  If I disable the autoneg option for the e1000e driver, the e1000e hardware can negotiate with my 1000 baseT/Full switch. Test result is as follow:

-bash-3.00# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Full 
                                100baseT/Half 100baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbag
        Wake-on: g
        Current message level: 0x00000001 (1)
        Link detected: yes


I don't think it is related to which type of Ethernet. The ethtool always gets rid of two advertised link modes when setting 'autoneg on'. Because it works fine if I fix it as above code. Actually, we need to integrate the e1000e driver in our product. I had fixed it in our distribution. The correct result is as follow:
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full 
                                1000baseT/Full 
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full 
                                100baseT/Half 100baseT/Full
                                1000baseT/Full 
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbag
        Wake-on: g
        Current message level: 0x00000001 (1)
        Link detected: yes
Comment 4 Steven Liu 2008-03-25 22:40:37 UTC
>>err, according to this, we had the bug in 2.6.21 and then fixed it in
>>2.6.23.9, so this is a report of an already fixed bug ;)
>>
>>Can you please clarify the version numbers here?

Sorry, I test on 2.6.21 firstly. There is no the Latest working kernel version up till now. I don't know how to commit a patch for this bug though I had fixed it.
Comment 5 Jesse Brandeburg 2008-10-06 12:37:58 UTC
I think this bug no longer exists can you retest with e1000e and 2.6.27-rc8?
Comment 6 Alan 2010-01-19 17:03:34 UTC
No response, closing