Linux Debug: Gigabit ethernet throughput is just up to 100Mb

0

I'm working with yocto using kernel 3.12.61-rt81. An ethernet port was implemented to RGMII mode to catch up gigabit ethernet. However, it starts communicate with the others, its throughput is always below expectation.

$iperf - s
Interval       Transfer     Bandwidth
0.0-10.0 sec   211 MBytes   176 Mbits/sec

$iperf - c <IP>
Interval       Transfer     Bandwidth
0.0-10.0 sec   101 MBytes   83.6 Mbits/sec

By using ethtool, I observer exactly setting as below:

Settings for eth1:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Supported pause frame use: Symmetric
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
        Advertised pause frame use: Symmetric
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 2
        Transceiver: external
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000000 (0)

        Link detected: yes

Either I try to change speed to 10-100-1000 or duplex from half to full, eth1 can't work with 10-half/full too. It looks like throughput limitation is 100Mb. After check overall hardware setting by reading register, I feel hardware setting (dtb, phy) is probably fine.

I'm wondering how can I do to debug something wrong happening? Thank you.

linux
ethernet
asked on Stack Overflow Oct 3, 2019 by Jean

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0