Atlas 800-3010 Redhat 7.6安装Mellanox驱动后kdump执行失败
2021/09/06
151
问题信息
问题来源 | 产品大类 | 产品子类 | 关键字 |
---|---|---|---|
版本测试 | 安装部署 | 驱动固件 | mlx5_core、 kdump |
问题现象描述
硬件配置:
【版本信息】
BIOS:7.73
IBMC:5.13 004
CPLD(主板):0.04
CPLD(背板):1.02
【硬件信息】:
机型:【Atlas 800-3010】
主板:026NEA10LA000027Y2
背板:029JRY10LA000024Y2
【OS信息】
Redhat 7.6
FusionServer iDriver 3.0.14,mlx5_core(4.7-1.0.0)
问题现象:
安装完手动触发BMC NMI按键,OS卡死,未正常重启,出现错误打印。
串口打印systemd-udevd oom 异常日志:
关键过程、根本原因分析
根本原因分析:
通过串口打印日志观察到,系统卡在了kdump内核的启动流程中:
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-957.el7.x86_64 ro console=ttyS0,115200n8 console=tty0 irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail acpi_no_memhotplug transparent_hugepage=never nokaslr disable_cpu_apicid=0 elfcorehdr=839228K
挂死的位置为 systemd-udevd 加载 Mellanox 驱动 mlx5_core,触发了 OOM 异常。OOM的原因为系统内存不够用,mlx5_core 申请内存失败。
本问题发生的环境为64GB内存,在通过IDriver安装/更新 Mellanox驱动后,更新后的 mlx5_core驱动增加了内存使用量,导致当前164MB不够用,出现kdump内核启动失败问题。
结论、解决方案及效果
通常在加载kdump内核时只需保证能正常启动并收集vmcore到磁盘即可,故其对内存要求很少,并且在内核引导参数中都会禁掉无关的模块,以保证kdump内核功能不受其他模块干扰。
解决方案:
添加如下内容
# vi /etc/sysconfig/kdump
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 rootflags=nofail acpi_no_memhotplug transparent_hugepage=never nokaslr modprobe.blacklist=mlx5_core"
# kdumpctl restart
经验总结、预防措施和规范建议
无
备注
无