九游(ninegame)官网

服务器 2025-11-05

KunTai R722服务器网卡异常打印问题

一、现网描述

1.1 环境描述


设备型号:KunTai R722

主板型号:S920X00-2*7260

BMC芯片:1711版

iBMC Version:3.03.00.35

BIOS Version:1.91

CPLD Version :6.08

二、故障描述

2.1故障现象

多台R722 系统下出现网卡异常打印

5cac2a66a9d571a59e85e00bff70e2d8.png

三、问题分析

3.1排查思路

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

9cbc02b585a88d2f7ee42d996f159171.png

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

15ec3e2bd38a0750caab110611d823fc.png

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

2d2a9cad339d6d89594037fa2943fce9.png

df0145176b57478e993629889a4c8c56.png

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

c7195a79f36eda11e0edd9170b8684a5.png

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

bf877bd4674aa6c472e60abc058538ac.png

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

a1dddcbb90960d3004f8afba7a5fba3e.png

系统日志分析

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

24f043006d1e2da69f124cc959de8e92.png

分析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的所有位被使用完。

96c96562d0bd45d65739a5b0be7f9b9d.png

bc78b8fd5cbef6e8eea6b38ab2a90c1d.png

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

50e695047b8e3aefe11d87c64670bb48.png

3.2原因分析

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

查询兼容性配套表,确认升级固件版本到:14.32.1010,升级驱动版本到:24.07-0.6.1

升级影响:驱动&固件升级需要重启服务器生效。



四、问题解决

4.1解决办法

升级固件版本到:14.32.1010,升级驱动版本到:24.07-0.6.1