Intel i40e 드라이버에서 디버깅 정보를 얻는 방법

Intel i40e 드라이버에서 디버깅 정보를 얻는 방법

i40e여러 개의 Intel X710 4포트 네트워크 카드(Intel 드라이버 2.1.14-k) 가 포함된 시스템(Ubuntu 18.04)이 있습니다 . 포트 중 하나에 100Mbit/s로 자동 협상하는 장치가 연결되어 있으며, 카드는 해당 속도를 지원하고 장치가 재부팅될 때까지 예상대로 작동합니다. 이 시점에서 링크는 연결된 상태로 유지되지만( 연결된 ip link것으로 ethtool나타남) 트래픽이 흐르지 않습니다.

igb이는 특정 포트나 NIC가 아니지만 1gbit NIC(드라이버)에서는 발생하지 않습니다. 케이블을 물리적으로 다시 연결하면 문제를 해결할 수 있지만아니요ip link set down/up전체 커널 모듈을 사용하거나 언로드하고 다시 로드합니다.

우리가 볼 수 있는 유일한 다른 증상은 장치가 재부팅될 때 ethtool -S포트의 수가 rx_error3씩 증가한다는 것입니다. tcpdump이러한 프레임은 표시되지 않으므로 드라이버가 프레임을 전달하기 전에 해당 프레임이 삭제된 것으로 가정합니다.

그 근본 원인은 장치와 카드 사이의 상호 작용에 있다고 생각하며, 드라이버에서 디버깅 매개 변수를 활성화하여 더 발전할 수 있는지 확인하고 싶습니다. 에서 modinfo i40e:

parm:           debug:Debug level (0=none,...,16=all), Debug mask (0x8XXXXXXX) (uint)

그러나 올바르게 설정하는 방법을 잘 모르겠습니다. 지금까지 나는 시도했다

modprobe i40e debug=0x0000FFFF / debug=16 / debug=0x8000000F / debug=0xFFFFFFFF
insmod /lib/modules/4.15.0-130-generic/kernel/drivers/net/ethernet/intel/i40e/i40e.ko debug=0x0000FFFF

드라이버 소스 코드를 보면 pr_info()호출을 통해 디버그 메시지가 내보내지지만 kern.log/syslog에서 볼 수 있는 것은 인터페이스가 나타날 때 일반적인 dmesg 로깅뿐입니다. 내가 뭐 놓친 거 없니?

답변1

모듈을 먼저 제거하셨나요?

나는 당신이 사용해야한다고 믿습니다

modprobe -r i40e

삭제한 후 매개변수를 사용하여 다시 로드할 수 있습니다. 이 기사가 도움이 되었다고 생각합니다(Ubuntu에서도 비슷할 것입니다).

https://docs.fedoraproject.org/en-US/Fedora/14/html/Deployment_Guide/sec-Setting_Module_Parameters.html

이 드라이버의 인터페이스 중 하나를 사용하여 로그인하면 연결이 끊어질 수 있습니다! :)

관련 정보