我们有一个系统(Ubuntu 18.04),其中有几个 Intel X710 4 端口网卡(Inteli40e
驱动程序 2.1.14-k)。连接到其中一个端口的是一个以 100Mbit/s 速率自动协商的设备,该卡支持该速率,并按预期工作,直到设备重新启动。此时,链路保持连接状态(ip link
并ethtool
显示为已连接),但没有流量流动。
igb
这不是特定的端口或 NIC,但在 1gbit NIC(驱动程序)上不会发生这种情况。我们可以通过物理重新安装电缆来修复它,但是不是通过使用ip link set down/up
或卸载并重新加载整个内核模块。
我们看到的唯一其他症状是当设备重新启动时,ethtool -S
端口上的rx_error
计数将增加 3。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 上应该类似):
如果您使用此驱动程序的接口之一登录,这可能会中断您的连接! :)