Score:3

Wired network extremely slow

no flag

At my office, we recently buy twenty laptops Dell Latitude 5420 under Ubuntu 20.04 and we have a big problem with ethernet connexion, download is extremly slow (but upload is good).

Edit : The problem is only on this laptop series, only with integrated ethernet and only on Ubuntu (see the tests below). Wifi is working perfectly, Ethernet is working perfectly too if we install Windows on this laptops and we don't have problems if we use an Ethernet USB adapter or a dockstation with ethernet on it.

Hardware side, the laptops are equipped with integrated network cards : Intel "Ethernet Connection I219-LM".

Here is the tests I made :

Conditions of the tests performed at my home :

  • Type of internet connection used: VDSL2+
  • Download speed : 40,43 Mbps
  • Upload speed : 5,70 Mbps

Conditions of the tests performed at my office :

  • Type of internet connection used: Optical fiber
  • Download speed : 756,21 Mbps
  • Upload speed : 337,64 Mbps

Here are the tests I performed:

  • Ubuntu 20.04.1 LTS "Out Of The box"

    • Result after installation = Slow Ethernet (@home = download : 0,89 Mbps / upload : 4,82 Mbps)
    • Kernel version after installation = 5.6.0-1032-oem
    • Ethernet driver version after installation = Intel e1000e 3.2.6-k
    • Kernel version after update = 5.10.0-1029-oem
    • Ethernet driver version after update = Intel e1000e 5.10.0-1029-oem (driver included in the kernel)
    • Result after update = Slow Ethernet (@ home = download : 0,57 Mbps / upload : 4,61 Mbps)
  • Ubuntu 20.04.2 LTS "install from USB"

    • Result after installation = Slow Ethernet (@home = download : 0,89 Mbps / upload : 4,82 Mbps) (@office = download : 6,36 Mbps / upload : 327,99 Mbps)
    • Kernel version after installation = 5.8.0-43-generic
    • Ethernet driver version after installation = Intel e1000e 3.2.6-k
    • Kernel version after update = 5.8.0-55-generic
    • Ethernet driver version after update = Intel e1000e 3.2.6-k
    • Result after update = Slow Ethernet (@home = download : 0,68 Mbps / upload : 4,52 Mbps) (@office = download : 5,31 Mbps / upload : 411,82 Mbps)
    • Unsuccessful attempts to manually install the 3.8.4 and 3.8.7 driver = Errors during driver compilation
  • Ubuntu 20.04.2 LTS "live session from USB"

    • Result on live session = Ethernet "a little less" slow (@home = download : 15,60 Mbps / upload : 4,41 Mbps)
    • Kernel version = 5.8.0-43-generic
    • Ethernet driver version = Intel e1000e 3.2.6-k
  • Ubuntu 18.04 LTS "install from USB"

    • Result after installation = Card seen by the system but not claimed
    • Kernel version = 5.4.0-74-generic
    • Ethernet driver version = None
    • Kernel version after update = 5.4.0-74-generic
    • Ethernet driver version after update = None
    • Ethernet driver version after manual installation = 3.8.4-NAPI (downloaded from the Intel site)
    • Result after update = Ethernet ok (@home = download : 40,29 Mbps / upload : 5,37 Mbps)
  • Ubuntu 20.04.1 LTS "install from Dell recovery iso" (downloaded from the Dell OS Recovery Tool software)

    • Result after installation = Slow Ethernet (@home = download : 0,87 Mbps / upload : 4,73 Mbps)
    • Kernel version after installation = 5.6.0-1032-oem
    • Ethernet driver version after installation = Intel e1000e 3.2.6-k
    • Kernel version after update = 5.10.0-1029-oem
    • Ethernet driver version after update = Intel e1000e 5.10.0-1029-oem (driver included in the kernel)
    • Result after update = Slow Ethernet (@home = download : 0,56 Mbps / upload : 4,49 Mbps)
    • Unsuccessful attempts to manually install the 3.8.4 and 3.8.7 driver = Errors during driver compilation with kernels 5.6.0-1032-oem and 5.10.0-1029-oem
  • Ubuntu 21.04 "install from USB"

    • Result after installation = Slow Ethernet (@office = download : 1,52 Mbps / upload : 400,58 Mbps)
    • Kernel version after installation = 5.11.0-16-generic
    • Ethernet driver version after installation = 5.11.0-16-generic (driver included in the kernel)
    • Kernel version after update = 5.11.0-18-generic
    • Ethernet driver version after update = 5.11.0-18-generic (driver included in the kernel)
    • Result after update = Slow Ethernet (@office = download : 2,22 Mbps / upload : 410,05 Mbps)
  • Windows 10 Professionnel (release 21H1)

    • Result after installation = Ethernet ok (@office = download : 850,12 Mbps / upload : 519,30 Mbps)

So, as we can see after all these tests, we can already exclude a hardware problem (the problem is present on 5 or 6 laptops tested out of the 20 laptops received) and the bandwidth is perfect on Ubuntu 18.04 once the Intel drivers are manually installed and on Windows.

At first, I think the solution would be to be able to install a more recent version of the "Intel e1000e" driver but when I try to compile it on the Ubuntu installed from the "Dell ISO", I get these errors (sorry for the French language) :

  • On kernel 5.6.0-1032-oem (from Dell ISO) :
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo make
*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but
*** the signing key cannot be found. Module signing has been
*** disabled for this build.
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.6.0-1032-oem »
  CC [M]  /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o
In file included from /home/administrateur/Téléchargements/e1000e-3.8.7/src/e1000.h:14,
                 from /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.c:30:
/home/administrateur/Téléchargements/e1000e-3.8.7/src/kcompat.h:825:2: error: #error UTS_UBUNTU_RELEASE_ABI is too large...
  825 | #error UTS_UBUNTU_RELEASE_ABI is too large...
      |  ^~~~~
make[2]: *** [scripts/Makefile.build:276 : /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o] Erreur 1
make[1]: *** [Makefile:1707 : /home/administrateur/Téléchargements/e1000e-3.8.7/src] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.6.0-1032-oem »
make: *** [Makefile:73 : default] Erreur 2
  • On kernel 5.10.0-1029-oem (from Dell ISO) :
administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo make
*** The target kernel has CONFIG_MODULE_SIG_ALL enabled, but
*** the signing key cannot be found. Module signing has been
*** disabled for this build.
make[1] : on entre dans le répertoire « /usr/src/linux-headers-5.10.0-1029-oem »
  CC [M]  /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o
In file included from /home/administrateur/Téléchargements/e1000e-3.8.7/src/e1000.h:14,
                 from /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.c:30:
/home/administrateur/Téléchargements/e1000e-3.8.7/src/kcompat.h:825:2: error: #error UTS_UBUNTU_RELEASE_ABI is too large...
  825 | #error UTS_UBUNTU_RELEASE_ABI is too large...
      |  ^~~~~
make[2]: *** [scripts/Makefile.build:287 : /home/administrateur/Téléchargements/e1000e-3.8.7/src/netdev.o] Erreur 1
make[1]: *** [Makefile:1849 : /home/administrateur/Téléchargements/e1000e-3.8.7/src] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-5.10.0-1029-oem »
make: *** [Makefile:73 : default] Erreur 2

After reinstalling Ubuntu from the official ISO (not the Dell one) and disabled SecureBoot, I finally successfully installed the new Intel e1000e driver... but... the problem is still here...

  • On kernel 5.8.0-43-generic (from official Ubuntu ISO)

    • Result after 3.8.7 driver update = Slow Ethernet (@home = download : 0,16 Mbps / upload : 2,38 Mbps)
  • On kernel 5.8.0-55-generic (from official Ubuntu ISO)

    • Result after 3.8.7 driver update = Slow Ethernet (@home = download : 1.00 Mbps / upload : 5.13 Mbps)

I confess that I am completely lost... Do you have any idea where it could come from?

In the meantime, here is the result of the lshw -C network order, don't hesitate to ask me for the results of other orders, I will post them.

administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ sudo lshw -C network
  *-network:1
       description: Ethernet interface
       produit: Ethernet Connection (13) I219-LM
       fabricant: Intel Corporation
       identifiant matériel: 1f.6
       information bus: pci@0000:00:1f.6
       nom logique: enp0s31f6
       version: 20
       numéro de série: 38:14:28:0f:32:1a
       taille: 1Gbit/s
       capacité: 1Gbit/s
       bits: 32 bits
       horloge: 33MHz
       fonctionnalités: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
       configuration : autonegotiation=on broadcast=yes driver=e1000e driverversion=3.8.7-NAPI duplex=full firmware=0.8-4 ip=192.168.1.31 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
       ressources : irq:147 mémoire:a2300000-a231ffff

Thank you in advance for your help ! :)

Yann

Update

Here is the result of the nestat -i and netstat -s commands (on my network at home) :

administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ netstat -i
Table d'interfaces noyau
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
enp0s31f  1500    29522    448    361 0         30261      0      0      0 BMRU
lo       65536     4572      0      0 0          4572      0      0      0 LRU
wlp0s20f  1500     7350      0    672 0           563      0      0      0 BMRU

administrateur@administrateur-Latitude-5420:~/Téléchargements/e1000e-3.8.7/src$ netstat -s
Ip:
    Forwarding: 2
    50727 total packets received
    6 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    49394 incoming packets delivered
    43118 requests sent out
    20 outgoing packets dropped
    542 dropped because of missing route
Icmp:
    67 ICMP messages received
    0 input ICMP message failed
    Histogramme d'entrée ICMP
        destination unreachable: 67
    762 ICMP messages sent
    0 ICMP messages failed
    Histogramme de sortie ICMP
        destination unreachable: 762
IcmpMsg:
        InType3: 67
        OutType3: 762
Tcp:
    545 active connection openings
    0 passive connection openings
    4 failed connection attempts
    5 connection resets received
    3 connections established
    29486 segments received
    40360 segments sent out
    861 segments retransmitted
    1 bad segments received
    290 resets sent
Udp:
    11379 packets received
    1452 packets to unknown port received
    0 packet receive errors
    11028 packets sent
    0 receive buffer errors
    0 send buffer errors
    IgnoredMulti: 5760
UdpLite:
TcpExt:
    218 TCP sockets finished time wait in fast timer
    164 delayed acks sent
    Quick ack mode was activated 36 times
    7910 packet headers predicted
    6247 acknowledgments not containing data payload received
    10413 predicted acknowledgments
    TCPSackRecovery: 140
    Detected reordering 1 times using SACK
    6 congestion windows recovered without slow start after partial ack
    TCPLostRetransmit: 100
    490 fast retransmits
    48 retransmits in slow start
    TCPTimeouts: 95
    TCPLossProbes: 300
    TCPLossProbeRecovery: 30
    TCPSackRecoveryFail: 7
    TCPDSACKOldSent: 40
    TCPDSACKOfoSent: 5
    TCPDSACKRecv: 193
    93 connections reset due to unexpected data
    1 connections reset due to early user close
    3 connections aborted due to timeout
    TCPDSACKIgnoredOld: 1
    TCPDSACKIgnoredNoUndo: 109
    TCPSackShifted: 790
    TCPSackMerged: 1396
    TCPSackShiftFallback: 320
    TCPRcvCoalesce: 1208
    TCPOFOQueue: 1950
    TCPOFOMerge: 5
    TCPChallengeACK: 1
    TCPSYNChallenge: 1
    TCPAutoCorking: 157
    TCPSynRetrans: 43
    TCPOrigDataSent: 27241
    TCPHystartDelayDetect: 13
    TCPHystartDelayCwnd: 421
    TCPKeepAlive: 612
    TCPDelivered: 27555
    TCPAckCompressed: 187
    TcpTimeoutRehash: 95
    TcpDuplicateDataRehash: 3
IpExt:
    InMcastPkts: 2913
    OutMcastPkts: 260
    InBcastPkts: 5760
    OutBcastPkts: 2
    InOctets: 25001747
    OutOctets: 37878931
    InMcastOctets: 857652
    OutMcastOctets: 17502
    InBcastOctets: 5995183
    OutBcastOctets: 108
    InNoECTPkts: 52735
MPTcpExt:
24601 avatar
in flag
Might there be a need to break the network down into discrete sectors and bridges to improve network performance? [This link](https://unix.stackexchange.com/a/653/345853) from SE might be a good starting point and or [this site](https://networkengineering.stackexchange.com/questions)
Yann C. avatar
no flag
I just updated the original post with the results of `netstat -i` and `netstat -s` commands But I don't understand your question, like I said in my (long) post, I've tested on two networks (home and office) and we don't have any problems with other computers (we have 100+ laptops on our network) and this problem appear only with this new model Dell Latitude 5420 and under Ubuntu only (not on Windows).
FedKad avatar
cn flag
Can you do a quick test using the wireless interface? So that the problem can be isolated to the Ethernet interface or to the network stack of Ubuntu...
Yann C. avatar
no flag
Hi, I just edited the original post with this (I forgot to mention it, sorry) : `The problem is only on this laptop series, only with integrated ethernet and only on Ubuntu (see the tests below). Wifi is working perfectly, Ethernet is working perfectly too if we install Windows on this laptops and we don't have problems if we use an Ethernet USB adapter or a dockstation with ethernet on it.`
in flag
I'm having the same problem. Download speed very slow on Ubuntu 20.04 but when I tried a different distro it was fast.
Score:3
us flag

Finally, somebody who has exactly the same issue. I have filed a bug on launchpad: e1000e extremly slow.

Can you comment there too? Or +1 it or something? Workaround is there too.

The trick is to disable aspm with pcie_aspm=off as a kernel option in /etc/default/grub, like this:

GRUB_CMDLINE_LINUX_DEFAULT="splash pcie_aspm=off"

After that run:

update-grub

pcie_aspm is some sort of power management thingie which probably puts my network controller to sleep or something, and putting a USB memory stick in the laptop somehow wakes it up.

Yann C. avatar
no flag
Hi @hendrik, finally I'm not alone with this problem ! Unfortunatly, when I change the GRUB setting like you mention it, it doesn't change anything, the problem is still here... :(
hendrik avatar
us flag
hmm you describe exactly the same problem as I have. I am almost 100% sure this fix should help you too. Did you reboot your system with the new kernel setting? Did you check in /boot/grub/grub.cfg if the new setting pcie_aspm=off really is there after the reboot?
Score:0
pe flag

Try this

sudo ethtool -C enp0s31f rx-usecs 6000

ethtool is not persistence, so you need to run again every reboot (or create a startup script for that).

Score:0
ar flag

Mind try this work around:

https://bugzilla.kernel.org/show_bug.cgi?id=213651

If it also work around, then we know they are likely to share the same root cause.

Score:0
us flag

I have fiber. Last week I was getting 900Mbps up and down. This week, I'm getting around 80 Mbps. This is with my laptop connected directly to the AT&T fiber modem. I called in AT&T, who measured 950 Mbps. The service tech connected his meter (to speedtest.net) to the cable that's connected to the fiber modem, and gets 950 Mbps. When I plug it into my laptop, I'm getting only 80 Mbps on speedtest.net.

I tried the pcie_aspm change, rebooted, and still the same 80 Mbps.

I then tried:

% /usr/bin/sudo ethtool -s enp61s0 speed 1000

and now the speed is 905/850Mbps!

Why did the speed get set to 100Mbps? How do I make 1000Mbps permanent?

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.