5

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".

Below are 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.

$ 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 are the results of the nestat -i and netstat -s commands (on my network at home) :

$ 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

$ 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:

Yann C.
  • 51
  • 1
  • 5
  • Might there be a need to break the network down into discrete sectors and bridges to improve network performance? This link from SE might be a good starting point and or this site – graham Jun 08 '21 at 15:14
  • 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). – Yann C. Jun 08 '21 at 16:20
  • 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... – FedKad Jun 08 '21 at 18:33
  • 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. – Yann C. Jun 09 '21 at 07:55
  • I'm having the same problem. Download speed very slow on Ubuntu 20.04 but when I tried a different distro it was fast. – Martin Zeltin Jun 22 '21 at 10:20
  • 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. – user1676531 Jul 08 '21 at 11:18

2 Answers2

4

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.

hendrik
  • 41
  • 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... :( – Yann C. Jun 16 '21 at 14:07
  • 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? – hendrik Jun 17 '21 at 06:14
0

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).