임베디드 리눅스 환경에서 NAPI 기능을 테스트하려고합니다. 나는 많은 패킷을 생성하기 위해 'pktgen'을 사용했고 내 네트워크 인터페이스의 인터럽트 카운트를 /proc/interrupts에 확인하려고했습니다.리눅스 NAPI 기능을 테스트하는 방법은 무엇입니까?
인터럽트 카운트가 생성 된 패킷보다 비교적 적다는 것을 알게되었습니다. 또한 'netdev_budget'값을 1에서 1000 (기본값은 300)으로 조정하려고합니다. netdev_budget이 증가 할 때 인터럽트 카운트 감소를 관찰 할 수 있습니다.
그러나 netdev_budget을 늘리는 것이 도움이되지 않습니다. 인터럽트는 netdev_budget 관찰 인터럽트 카운트 (300) 그래서 여기
로 설정과 유사 나의 질의는 다음과 같습니다
NAPI에 'netdev_budget'의 효과는 무엇인가?
인터럽트 카운트의 변화를 관찰하기 위해 조정할 수있는 다른 매개 변수는 무엇입니까?
- 내가 Linux에서 NAPI 기능을 테스트하는 데 사용할 수있는 다른 방법이 있나요? (그렇다 직접 네트워크 드라이버 코드를 찾고에서) 어떤 도움이 많이 appreaciated됩니다
.
미리 감사드립니다.
"썩은 패킷"테스트. napi 폴링에서 인터럽트 모드로 전환하는 동안 정확히 프레임이 도착하지 않을 수 있습니다. 이 프레임은 수신 인터럽트를 트리거하기 위해 다른 프레임이 도착할 때까지 처리되지 않습니다. – sawdust
안녕하세요 @ 톱밥은 힌트를 주셔서 감사합니다. 하지만 대답을 좀 더 자세히 설명해 주시겠습니까? 왜냐하면 내가 패킷/프레임 크기를 증가시키지 않으면 드롭 된 패킷을 볼 수 없기 때문입니다. 그렇다면 '썩은 패킷'이 있는지를 확인하기 위해 정확히해야 할 일은 무엇입니까? – sunisiha
썩은 패킷은 끊어진 패킷이 아닙니다. 지연된 패킷입니다. 이러한 버그를 쉽게 알아보기 위해 시간이 초과 된 패킷을 가져야합니다 (예 : X 초 내에 응답을 기대하며 연결은 활동의 연속과 비활성의 기간에 따라 다릅니다. 문제를 만드는 상황에는 10 개의 지시 사항이 포함됩니다. 그러나 머피의 법칙이 우세하다. 상황을 만드는 것이 어려울 수 있는데, 이는 드라이버가이 버그로 출시되는 이유를 부분적으로 설명합니다. – sawdust