I've recently switched to Linux as primary OS on my main system. I'm experiencing weird problems with the Qualcomm Atheros Killer E2200 Gigabit Ethernet controller though. This Ethernet controller is part of my MSI Z87-G45 gaming motherboard.

Problem description
When accessing the public Internet the card caps around 20 to 30 Mbit/s while I've access to a 50Mbit/s connection. Also, when the card caps at this speed I'm experiencing a lot of packet loss.

To give an example: A Steam download caps at 2 to 3MB/s, and when a download is active I experience a lot of packet loss in Mumble (VOIP client) and some other connections tend to drop periodically.

My LAN is capped at 100Mbit/s because of a network switch. But of course, 20 to 30Mbit/s doesn't even come close.

Additional notes

  • When accessing LAN devices, such as my NAS, the full throughput is used and everything seems to work fine. Thus, this problem only occurs when accessing the public Internet.
  • Everything worked fine on my Windows 7 installation, with ~50Mbit/s, and no packet loss or connection drops whatsoever.
  • I do only start noticing packet loss when the WAN connection is 'capped', not with usage below 5Mbit/s.
  • I didn't manually install any additional drivers. The card worked out of the box with a fresh installation, sort of.

System information

$ ~> lspci | grep Killer
03:00.0 Ethernet controller: Qualcomm Atheros Killer E220x Gigabit Ethernet Controller (rev 13)

$ ~> screenfetch -n
 OS: Ubuntu 16.10 yakkety
 Kernel: x86_64 Linux 4.8.0-34-generic
 Uptime: 19h 3m
 Packages: 2388
 Shell: fish
 Resolution: 3200x1097
 DE: Gnome 
 WM: GNOME Shell
 WM Theme: Adwaita, Adapta-Nokto [GTK2], Adapta-Nokto [GTK3]
 Icon Theme: Papirus-Dark
 Font: Cantarell 11
 CPU: Intel Core i5-4670K CPU @ 3.8GHz
 GPU: GeForce GTX 550 Ti
 RAM: 5480MiB / 15991MiB

$ ~> ip -s link
2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 44:8a:5b:24:46:50 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    32490908621 22983929 0       0       0       15751   
    TX: bytes  packets  errors  dropped carrier collsns 
    2694939812 14217026 0       0       0       0 

$ ~> lspci -v | grep Killer -A11
03:00.0 Ethernet controller: Qualcomm Atheros Killer E220x Gigabit Ethernet Controller (rev 13)
    Subsystem: Micro-Star International Co., Ltd. [MSI] Killer E220x Gigabit Ethernet Controller
    Flags: bus master, fast devsel, latency 0, IRQ 30
    Memory at f6100000 (64-bit, non-prefetchable) [size=256K]
    I/O ports at d000 [size=128]
    Capabilities: [40] Power Management version 3
    Capabilities: [58] Express Endpoint, MSI 00
    Capabilities: [c0] MSI: Enable+ Count=1/16 Maskable+ 64bit+
    Capabilities: [d8] MSI-X: Enable- Count=16 Masked-
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [180] Device Serial Number ff-24-46-50-44-8a-5b-ff
    Kernel driver in use: alx
    Kernel modules: alx

$ ~> sudo netstat -s | egrep -i 'loss|retran'
    24 segments retransmited
    TCPLossProbes: 23
    TCPLossProbeRecovery: 1
    TCPSynRetrans: 4

$ ~> sudo ping -s 1 -f -c 1000 -w 5 timvisee.com
PING timvisee.com ( 1(29) bytes of data.
--- timvisee.com ping statistics ---
304 packets transmitted, 157 received, 48% packet loss, time 4990ms
pipe 5, ipg/ewma 16.469/0.000 ms

$ ~> sudo ethtool enp3s0
Settings for enp3s0:
    Supported ports: [ TP ]
    Supported link modes:   10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
    Supported pause frame use: Symmetric Receive-only
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full 
                            100baseT/Half 100baseT/Full 
    Advertised pause frame use: Symmetric
    Advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: Unknown
    Current message level: 0x000060e4 (24804)
                   link ifup rx_err tx_err hw wol
    Link detected: yes

$ ~> modinfo alx | grep version
srcversion:     148031F2236BBDAF23DA652
vermagic:       4.8.0-37-generic SMP mod_unload modversions

Packet loss in Mumble
That the last command shown above states that there are no packet errors and/or drops. Mumble does state something else though. Weird. Mumble connection status

What is causing this problem? The public Internet connection cap and the packets being dropped. And how can I fix it? Is this because there isn't a daemon running on this machine managing application priorities, like on Windows, maybe?

  • 3
    I have a feeling Pilot6 or Chili555 will be able to help you out. – Android Dev Jan 29 '17 at 12:48
  • Please edit your question to add: lspci -nnk | grep 0200 -A2 – chili555 Jan 29 '17 at 14:18
  • @chili555 Thank you for looking into the problem. I've just edited the question to add the output. – Tim Visee Jan 29 '17 at 14:32
  • Is this a DSL connection, or something else? What MTU? What happens if you connect your computer directly to the modem, bypassing the switch/etc? – heynnema Jan 29 '17 at 15:58
  • @heynnema Yes, a vDSL connection to be exact. The MTU is set to 1500 (by default). Connecting my machine to the modem/router directly doesn't seem to make any noticeable difference. I'd like to mention that connectivity worked perfectly fine on Windows without any configuration, except for installing the divers on the disk included with the motherboard (where the Ethernet card is part of), if that might help. – Tim Visee Jan 29 '17 at 17:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.