• 金年会诚信至上

    服务器 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