Intel I219 enfrentando ENORME perda de pacote

Intel I219 enfrentando ENORME perda de pacote

Existem algumas discussões e parece que esse problema foi resolvido. No entanto, a literatura é escassa. Então escrevi esta nota e espero que ajude outras pessoas.

Sintoma

A série Intel Ethernet Connection I219, incluindo I219-V e I219-LM, não funciona no Linux, com cerca de 1 Mb/s no speedtest.net e 30-50% de perda de ping na LAN. Este é um problema no kernel, então tanto o Ubuntu quanto o Fedora sofrerão do mesmo problema. Todos os usuários de 4.19 a 5.11 relataram esse problema. Atualizar usando o apt não ajuda.

Detalhes

  • ping de outra máquina
$ ping -i 0.2 -W 0.2 -c 100 -s 1000 192.168.1.2
100 packets transmitted, 56 received, 44% packet loss, time 20195ms
  • informação de dispositivo
# lspci -vvvnn -s 00:1f.6
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (14) I219-V [8086:15fa] (rev 11)
    Subsystem: CLEVO/KAPOK Computer Ethernet Connection (14) I219-V [1558:50e1]
    Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
    Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Latency: 0
    Interrupt: pin A routed to IRQ 129
    Region 0: Memory at 82380000 (32-bit, non-prefetchable) [size=128K]
    Capabilities: [c8] Power Management version 3
        Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
        Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME-
    Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Address: 00000000fee00338  Data: 0000
    Kernel driver in use: e1000e
    Kernel modules: e1000e
# ethtool -i enp0s31f6
driver: e1000e
version: 5.11.0-40-generic
firmware-version: 0.4-4
expansion-rom-version: 
bus-info: 0000:00:1f.6
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes

Responder1

Razão

O gerenciamento de energia desliga o cache/memória do adaptador de rede (consulte [7] para obter mais informações).

Soluções alternativas

  • Então preciso desabilitar o gerenciamento de energia. Os estados de trabalho dos dispositivos Intel são chamados de C-State. Os estados C variam de C0 a Cn. C0 indica um estado ativo (verGuia do usuário Intel/C-State). A primeira solução alternativa é definir o C-State máximo não muito alto [3,4].

    vi /etc/default/grub
    # add intel_idle.max_cstate=1 to GRUB_CMDLINE_LINUX_DEFAULT after 
    "quite splash"
    # so that line looks like
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"
    # then save and execute
    update-grub
    # then reboot, you can confirm this is applied by
    cat /proc/cmdline|grep intel
    cat /sys/module/intel_idle/parameters/max_cstate
    

    Você pode até definir max_cstatecomo 0;alguémfazem isto.

  • Altere um sinalizador sobre o controle de energia do adaptador de rede [5].

    # on my machine the default value is "auto"
    cat /sys/bus/pci/devices/0000\:00\:16.0/power/control
    echo on > /sys/bus/pci/devices/0000\:00\:16.0/power/control
    # check it is "on" now
    cat /sys/bus/pci/devices/0000\:00\:16.0/power/control
    

Literaturas

  1. https://bugzilla.redhat.com/show_bug.cgi?id=1652865Este é um relatório de janeiro de 2019. ele está usando o kernel 4.29. Nenhuma solução foi fornecida.

  2. https://bugzilla.kernel.org/show_bug.cgi?id=213651propõe

    • descarregar mei * (Nao funciona para mim)
    • Configurações do BIOS -> Gerenciamento do sistema -> Capacidade Intel AMT, mude de "Restringir acesso MEBx" para "Desativado" (Nao funciona para mim-- meu BIOS não tem essa escolha)
  3. https://bugzilla.kernel.org/show_bug.cgi?id=213377é exatamente o mesmo problema. Eles propõem

    • inicializando o(s) mesmo(s) kernel(s) com "intel_idle.max_cstate=1" (para obter instruções, consulteComo definir intel_idle.max_cstate=1) (quase funciona- a velocidade de download e a perda de pacotes são fixas, mas o upload é zero)
  4. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1927925

    • Eles afirmam que a solução em [3] funciona
    • O comentário nº 93 explica por que esse bug acontece, mas é muito especializado; Não consigo entender completamente.
  5. https://bugs.launchpad.net/ubuntu/+source/linux-oem-5.10/+bug/1930754

    • The trick is to set the boot kernel parameter "pcie_aspm=off" in '/etc/default/grub'
      Like this:
      GRUB_CMDLINE_LINUX_DEFAULT="splash pcie_aspm=off"
      After that run;
      update-grub
      
      (Nao funciona para mim)
    • Eles confirmam que as soluções em [2] não funcionam.
    • echo on | sudo tee /sys/bus/pci/devices/0000\:00\:16.0/power/control(quase funciona- a velocidade de download e a perda de pacotes são fixas, mas o upload é zero)
  6. Rede cabeada extremamente lenta

    • O solicitante trabalhou muito, inclusive relatando quecompilar o driver nós mesmos é impossível
    • Nenhuma das respostas funciona para mim.

informação relacionada