Intel I219에서 엄청난 패키지 손실이 발생함

Intel I219에서 엄청난 패키지 손실이 발생함

몇 가지 논의가 있으며 이 문제가 해결된 것 같습니다. 그러나 문헌은 적다. 그래서 나는 이 글을 썼고, 그것이 다른 사람들에게 도움이 되기를 바랍니다.

징후

I219-V 및 I219-LM을 포함한 Intel 이더넷 연결 I219 시리즈는 speedtest.net에서 약 1Mb/s이고 LAN 내에서 핑 손실이 30-50%로 Linux에서 작동하지 않습니다. 이는 커널의 문제이므로 Ubuntu와 Fedora 모두 동일한 문제를 겪게 됩니다. 4.19부터 5.11까지의 사용자는 모두 이 문제를 보고했습니다. apt를 사용하여 업데이트해도 도움이 되지 않습니다.

세부

  • 다른 컴퓨터에서 ping
$ 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
  • 장치 정보
# 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

답변1

이유

전원 관리는 네트워크 어댑터의 캐시/메모리를 종료합니다(자세한 내용은 [7] 참조).

해결 방법

  • 그래서 전원 관리를 비활성화해야 합니다. Intel 장치의 작업 상태를 C-State라고 합니다. C 상태의 범위는 C0에서 Cn까지입니다. C0은 활성 상태를 나타냅니다(참조:인텔 사용자 가이드/C-State). 첫 번째 해결 방법은 최대 C-State를 그다지 높지 않게 설정하는 것입니다[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
    

    max_cstate0으로 설정할 수도 있습니다 .누구이 작업을 수행.

  • 네트워크 어댑터의 전원 제어에 대한 플래그를 변경합니다[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
    

문학

  1. https://bugzilla.redhat.com/show_bug.cgi?id=16528652019년 1월 보고서입니다. 4.29 커널을 사용하고 있습니다. 솔루션이 제공되지 않았습니다.

  2. https://bugzilla.kernel.org/show_bug.cgi?id=213651제안하다

    • 메이* 언로드(나에게는 작동하지 않습니다)
    • BIOS 설정 -> 시스템 관리 -> Intel AMT 기능을 "MEBx 액세스 제한"에서 "비활성화"(나에게는 작동하지 않습니다-- 내 BIOS에는 이 선택 항목이 없습니다)
  3. https://bugzilla.kernel.org/show_bug.cgi?id=213377정확히 같은 문제입니다. 그들은 제안한다

    • "intel_idle.max_cstate=1"을 사용하여 동일한 커널 부팅(지침은 참조)intel_idle.max_cstate=1 설정 방법) (거의 작동-- 다운로드 속도 및 패키지 손실은 수정되었지만 업로드는 0입니다.)
  4. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1927925

    • 그들은 [3]의 솔루션이 작동한다고 주장합니다.
    • 댓글 #93에서는 이 버그가 발생하는 이유를 설명하지만 너무 전문적입니다. 나는 완전히 이해할 수 없습니다.
  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
      
      (나에게는 작동하지 않습니다)
    • 그들은 [2]의 솔루션이 작동하지 않음을 확인했습니다.
    • echo on | sudo tee /sys/bus/pci/devices/0000\:00\:16.0/power/control(거의 작동-- 다운로드 속도 및 패키지 손실은 수정되었지만 업로드는 0입니다.)
  6. 유선 네트워크가 매우 느림

    • 질문자는 다음을 보고하는 것을 포함하여 많은 작업을 수행했습니다.드라이버를 스스로 컴파일하는 것은 불가능합니다
    • 나에게 맞는 답변은 없습니다.

관련 정보