设备型号:KunTai R722
主板型号:S920X00-2*7260
BMC芯片:1711版
iBMC Version:3.03.00.35
BIOS Version:1.91
CPLD Version :6.08
多台R722 系统下出现网卡异常打印

查看current_event当前告警信息,设备当前无告警。

查看sel事件记录,近期无异常打印。

查看RAID_Controller_Info.txt日志,当前RAID卡状态正常,硬盘状态正常。


分析fdm_output诊断日志,无异常打印。

分析systemcom.tar串口日志,发现大量网卡异常打印,无其他异常记录。

查看netcard_info.txt日志,服务器所搭载两块sp333网卡均已正常识别,工作正常,但当前固件版本14.31.1014较低。

系统日志分析
message日志打印,mlx5_core 0000:83:00.0: cmd_work_handler:844:(pid 1765737): failed to allocate command entry,网卡端口分配命令入口失败。

分析mlx5驱动代码逻辑。
驱动在执行cmd exec的时候,会去调用alloc ent,找到cmd->bitmask中最近为1的位,并调用clear bit清除为0;cmd传到固件执行完以后,要去释放command entry,调用free ent,将对应位重新标志为1。所以出现command entry allocate 失败问题,有两种可能性:
① 当cmd在传到固件,不断未能执行完,而不断有cmd exec执行,被积压,导致cmd->bitmask的位使用完,cmd->bitmask所有位被置为了0。alloc ent无法申请到cmd->bitmask中的标识位。
② cmd exec执行完后,未能调用free ent,导致cmd->bitmask的所有位被使用完。


进一步深入分析驱动代码,发现当前现场所使用的inbox 5.0-0版本驱动在申请index逻辑中与其他版本并无较大差异,但在驱动异常处理检查逻辑处存在缺陷,该版本驱动逻辑在pci channel offline或dev->state为真的情况下即会释放index,此问题在驱动版本5.8-1.1.2代码中已修复,新版本代码中异常处理检查项更多,且会在上层调用中统一释放index。

综上,服务器硬件状态正常,当前设备OS下出现异常打印原因为当前网卡驱动版本5.0-0过低导致,此异常打印频繁出现可能影响网络服务,需要升级网卡驱动与固件至配套推荐版本解决,此解决方案在其他局点已经验证成功。
查询兼容性配套表,确认升级固件版本到:14.32.1010,升级驱动版本到:24.07-0.6.1
升级影响:驱动&固件升级需要重启服务器生效。
升级固件版本到:14.32.1010,升级驱动版本到:24.07-0.6.1