에 따르면 lshw
다음을 얻습니다.
제품: AR8121/AR8113/AR8114 기가비트 또는 고속 이더넷
공급업체: Qualcomm Atheros
드라이버=ATL1E 드라이버 버전=1.0.0.7-NAPI(linux-5.4부터)
가능하다면 인터럽트 병합 링 버퍼 및 기타 크기를 조정하는 방법을 찾고 싶습니다. 제거
하지만 무엇을 사용하려고 해도 ethtool
해당 기능이 지원되지 않는다는 메시지가 반환됩니다(매우 제한적이기 때문일 가능성이 높습니다).atl1e_ethtool(*1))
이러한 설정을 명령하기 위한 매개변수는atl1e_param.c, 더 아래로 스크롤하면 atl1e_check_options 루틴을 찾을 수 있습니다."유효한 사용자 입력이 있는지 모든 명령줄 인수를 확인하세요."그리고 이에 따라 기본 하드코딩된 매개변수를 수정합니다.
모듈이 이러한 시작 명령줄 인수를 지원할 것이라고 추론합니다.atl1e.param_name=value
하지만…
하지만 허용되는 param_names 목록에 대한 단서를 찾을 수 없습니다.
누군가 내가 그것들을 찾는 것을 도와줄 수 있나요?
1: 나는 출신이기 때문에무료 BSD 드라이버저것"에일 드라이버가 지원하는 모든 LOM은 수신 및 전송을 위한 TCP/UDP/IP 체크섬 오프로드, TSO(TCP Segmentation Offload), 하드웨어 VLAN 태그 스트립/삽입 기능, WOL(Wake on LAN), 인터럽트 병합/중재 메커니즘 및 64 기능을 갖추고 있습니다. -비트 멀티캐스트 해시 필터."
답변1
나는 atl1e 소스 코드를 통해 길을 찾았고 거기에서 잘못된 코드 주석을 발견했기 때문에 더 중요한 것은 이 기능이 지구상에서 전혀 문서화되지 않았기 때문에 답변으로 다음을 게시하고 이를 수락할 것입니다.
무엇:
Linux ATL1E 드라이버는 최적이 아닌 ethtool에서 지원하지 않는 것으로 알려진 기타 조정을 활성화하기 위해 일부 매개변수를 허용합니다.
- tx_desc_cnt:전송 설명 수: 32 <= 값 <= 1020 : 기본값 128
지원되지 않는 를 사용하여 ethtool -G tx <value>
tx 링 항목 수를 변경하려는 경우.
< MyOpinion > 홈 라우터/데스크탑 LAN에 대한 기본값은 너무 높습니다. 이 세트를 유지하면 커널 크래시 덤프 크기가 불합리하게 늘어나는 것은 물론, 자신도 모르게 RAM이 낭비됩니다. 적어도 절반 정도입니다. </내 생각>
- rx_mem_size:rx 버퍼 메모리 크기(KB): 8 <= 값 <= 1024 : 기본값 256
지원되지 않는 를 사용하여 ethtool -G rx <value>
수신 링 버퍼 크기를 변경하려는 경우.
<MyOpinion> rx overlimit를 줄이기 위해 기본값에서 늘리고 싶은데...글쎄...그럴 수도 있겠지만...어쩐지 그 양이 눈에 띄지 않습니다. 그러나... 이를 늘리면 네트워크 대기 시간이 크게 늘어납니다. </MyOpinion>
- 매체 유형:미디어 유형 선택: 0 <= 값 <= 4 : 기본값 0
0 - 지원되는 모든 속도에서 자동 협상
1 - 100Mbps 전이중에서만 링크
2 - 100Mbps 반이중에서만 링크
3 - 10Mbps 전이중에서만 링크
4 - 10Mbps 반이중에서만 링크
지원되지 않는 장치를 사용하여 ethtool -s advertise <value>
광고된 속도와 이중 방식을 강제 하려는 사용자를 위한 것입니다.
< MyOpinion > 기본 자동 협상에 문제가 있는 사용자만이 이 매개변수가 null 이외의 값을 갖기를 원할 것입니다. </MyOpinion >
- int_mod_timer,인터럽트 미디엄 타이머(2 µs 단위): 50 <= 값 <= 65000 : 기본값 100
지원되지 않는 ethtool -C [rx/tx]-usecs <value>
병합 설정을 변경 하려는 사용자를 위한 것입니다.
<나의 의견>이것시스템에 가장 큰 영향을 미치는 설정입니다. 일반적인 워크로드(네트워크 트래픽)를 실행하여 다시 벤치마킹했습니다... 왜냐하면... 공짜 점심은 없기 때문입니다... 값이 높을수록 NET_RX/TX 소프트웨어 중단이 줄어들고 IRQ 서비스에 소요되는 시간이 줄어듭니다... 그러나 . ..네트워크 대기 시간이 길어집니다. </내 생각>
그리고… ? 그게 다입니다. 여러분, 이 운전자에게 더 이상 기대할 수는 없습니다. 체크섬 오프로드?Toso? 아, 뭐... 신경쓰지 마세요!
어떻게:
부팅 명령줄에 문자열을 추가하기만 하면 드라이버를 커널에서 빌드하든 모듈로 빌드하든 상관없이 작동합니다.
atl1e.<any_one of above parameter_name>=<value>
좋아요, 네트워크 카드가 몇 개 있나요? 문제 없습니다. 단지 배열일 뿐입니다.
atl1e.<any_one of above parameter_name>=<value_for_NIC0>,<value_for_NIC1>,…
글쎄, 당신은 커널 명령줄을 싫어하고 이 드라이버를 모듈로 구축하고 modprobe를 사용하고 싶습니까? 그러면 간단하게:
modprobe atl1e <any_one of above parameter_name>=<value_for_NIC0>,<value_for_NIC1>,…
추신.:MSI 기능
해당 하드웨어에는 MSI 기능이 있어야 하지만
일부 심각한 핫스팟에서는 때때로 하드웨어에 심각한 문제가 발생하기 때문에 일부 패치가 적용되어 이 기능을 비활성화하고 특정 IRQ로 대체되었습니다.
내 하드웨어로 인해 내 NIC는 내 사운드 카드 중 하나와 IRQ를 공유합니다! 호레스코 참고!
간단히 패치를 되돌리고 다시 테스트했습니다. 음...지난 10년 동안 MSI가 활성화된 상태에서 모든 것이 원활하게 실행되었습니다. 필요에 따라 더 많은 관련 정보를 제공하겠습니다.
결론적으로:
나는 이 글을 쓰는 시점에서 해당 하드웨어가 노후화에 가까워지는 것 이상의 일을 하고 있다는 것을 알고 있습니다... (이 줄의 저자도 마찬가지입니다...) 따라서... 이 Tl;Dr 답변은 다음과 같은 경우에는 도움이 되지 않습니다. 여기 많은 사람들이 도움을 줍니다.
나는 이 글을 읽을 만큼 용감한 사람에게 도움을 주고 싶습니다.
- 커널의 이상한 점을 맹목적으로 신뢰하지 마십시오! 자신의 시스템을 벤치마크, 벤치마크, 벤치마킹하세요. 그 어떤 커널 개발자보다도 여러분이 더 잘 알고 있을 것입니다.
- 너무 멍청해지면 ethtool을 절대 믿지 마세요지원되지 않는 작업심판. 드라이버를 편집하는 많은 회사는 ethtool 도우미 제공과 문서화에 덜 신경을 씁니다. 따라서... 코드를 자세히 살펴보세요.뜻이있는 곳에 길이있다!