Bug 8456 - [Anolis8.9][RC1][loongarch64] kdump功能启用,执行崩溃转储功能,机器死机
Summary: [Anolis8.9][RC1][loongarch64] kdump功能启用,执行崩溃转储功能,机器死机
Status: IN_PROGRESS
Alias: None
Product: Anolis OS 8
Classification: Anolis OS
Component: kernel - anck-4.19 (show other bugs) kernel - anck-4.19
Version: 8.9
Hardware: loongarch Linux
: P3-Medium S3-normal
Target Milestone: ---
Assignee: wenlong
QA Contact: shuming
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-07 16:02 UTC by zhangjinglin
Modified: 2024-04-10 16:00 UTC (History)
2 users (show)

See Also:


Attachments
串口信息 (82.03 KB, text/x-log)
2024-03-07 16:02 UTC, zhangjinglin
Details
龙蜥默认kdump设置选项 (384.14 KB, image/png)
2024-03-08 17:22 UTC, wangming01
Details
推荐kdump配置 (637.64 KB, image/png)
2024-03-08 17:22 UTC, wangming01
Details

Note You need to log in before you can comment on or make changes to this bug.
Description zhangjinglin loongson_group 2024-03-07 16:02:50 UTC
Created attachment 1072 [details]
串口信息

Description of problem:
kdump功能启用,执行崩溃转储功能,机器死机

Version-Release number of selected component (if applicable):
软件环境
#内核版本
Linux localhost.localdomain 4.19.190-7.7.an8.loongarch64 #1 SMP Sat Jan 20 16:59:41 CST 2024 loongarch64 loongarch64 loongarch64 GNU/Linux
#系统版本
NAME="Anolis OS"
VERSION="8.9"
ID="anolis"
ID_LIKE="rhel fedora centos"
VERSION_ID="8.9"
PLATFORM_ID="platform:an8"
PRETTY_NAME="Anolis OS 8.9"
ANSI_COLOR="0;31"
HOME_URL="https://openanolis.cn/"

Steps to Reproduce:
1.安装系统,kdump服务启用
2.执行echo c > /proc/sysrq-trigger

Actual results:
机器死机,详细串口信息见附件

Expected results:
触发panic,机器可以正常进入捕获内核,机器不死机

Additional info:
Comment 1 wangming01 loongson_group 2024-03-08 17:22:21 UTC
Created attachment 1073 [details]
龙蜥默认kdump设置选项
Comment 2 wangming01 loongson_group 2024-03-08 17:22:48 UTC
Created attachment 1074 [details]
推荐kdump配置
Comment 3 wangming01 loongson_group 2024-03-08 17:23:05 UTC
这个问题触发kdump失败的原因是:
龙蜥默认ISO安装界面启用kdump后如果使用自动配置生成的crashkernel存在问题【见附件:龙蜥默认kdump设置选项】。导致kdump触发失败。

在大内存服务器机器推荐手动配置crashkernel=1024M。目前发现512M有些保守,偶尔在kdump过程中出现oom(内存不足的情况),详细配置方法【见附件:推荐kdump配置】。

结论: 非内核或kdump工具bug。属于参数配置问题。建议使用手动配置crashkernel参数。
Comment 4 wangzhe 2024-03-14 21:05:53 UTC
echo c > /proc/sysrq-trigger 触发死机是预期行为,
目前内核cmdline的crashkernel参数如下:
crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M,
建议安装时根据机器内存情况手动配置kdump要保留的内存
Comment 5 zhangjinglin loongson_group 2024-03-15 10:04:33 UTC
在操作系统ISO安装过程中采用手动配置的方式参考了【图:推荐kdump配置】配置为1024M,依然存在无法启动捕获内核的问题,

分析发现:

/boot/loader/entries/eecee3ecaec94875a5d36b7bd9c5df90-4.19.190-7.7.an8.loongarch64.conf 文件内容如下:

---
title Anolis OS (4.19.190-7.7.an8.loongarch64) 8.9
version 4.19.190-7.7.an8.loongarch64
linux /vmlinuz-4.19.190-7.7.an8.loongarch64
initrd /initramfs-4.19.190-7.7.an8.loongarch64.img $tuned_initrd
options root=/dev/mapper/ao-root ro resume=/dev/mapper/ao-swap rd.lvm.lv=ao/root rd.lvm.lv=ao/swap rhgb quiet $tuned_params crashkernel=3M-2G:0M,2G-8G:192M,8G-:256M console=ttyS0,115200 loglevel=8
id anolis-20240120090925-4.19.190-7.7.an8.loongarch64
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
---

其中crashkernel=3M-2G:0M,2G-8G:192M,8G-:256M。 所以安装界面手动配置未生效。

手动修改实验:

手动修改/boot/loader/entries/eecee3ecaec94875a5d36b7bd9c5df90-4.19.190-7.7.an8.loongarch64.conf 文件,如下

title Anolis OS (4.19.190-7.7.an8.loongarch64) 8.9
version 4.19.190-7.7.an8.loongarch64
linux /vmlinuz-4.19.190-7.7.an8.loongarch64
initrd /initramfs-4.19.190-7.7.an8.loongarch64.img $tuned_initrd
options root=/dev/mapper/ao-root ro resume=/dev/mapper/ao-swap rd.lvm.lv=ao/root rd.lvm.lv=ao/swap rhgb quiet $tuned_params crashkernel=1024M console=ttyS0,115200 loglevel=8
id anolis-20240120090925-4.19.190-7.7.an8.loongarch64
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel

修改后启动捕获内核正常。可以生成vmcore。

结论: 建议负责ISO安装的同学分析下手动配置失败的原因。
Comment 6 wangzhe 2024-03-15 14:33:17 UTC
需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适
Comment 7 wangming01 loongson_group 2024-03-15 17:01:50 UTC
这个问题不是内核的问题。请上(In reply to wangzhe from comment #6)
> 需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适
首先这个问题与内核没有任何关系。明显是ISO安装的问题。
crashkernel 参数配置是用户行为。目前龙蜥既然支持ISO安装过程中配置该参数,个人认为是应该进行修复的,如果不支持安装过程中配置我们完全可以像欧拉系统那样手动配置grub.cfg。
Comment 8 wenlong loongson_group 2024-04-02 20:44:56 UTC
(In reply to wangming01 from comment #7)
> 这个问题不是内核的问题。请上(In reply to wangzhe from comment #6)
> > 需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适
> 首先这个问题与内核没有任何关系。明显是ISO安装的问题。
> crashkernel
> 参数配置是用户行为。
> 目前龙蜥既然支持ISO安装过程中配置该参数,个人认为是应该进行修复的,如果不支持安装过程中配置我们完全可以像欧拉系统那样手动配置grub.cfg。

在下面pr中进行修复
https://gitee.com/src-anolis-os/kdump-anaconda-addon/pulls/6
Comment 9 wenlong loongson_group 2024-04-08 09:14:33 UTC
(In reply to wenlong from comment #8)
> (In reply to wangming01 from comment #7)
> > 这个问题不是内核的问题。请上(In reply to wangzhe from comment #6)
> > > 需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适
> > 首先这个问题与内核没有任何关系。明显是ISO安装的问题。
> > crashkernel
> > 参数配置是用户行为。
> > 目前龙蜥既然支持ISO安装过程中配置该参数,个人认为是应该进行修复的,如果不支持安装过程中配置我们完全可以像欧拉系统那样手动配置grub.cfg。
> 
> 在下面pr中进行修复
> https://gitee.com/src-anolis-os/kdump-anaconda-addon/pulls/6

该pr仅修改安装时anaconda界面中默认的kdump设置,内核部分需要内核来修改
Comment 10 wangming01 loongson_group 2024-04-10 09:04:58 UTC
(In reply to wenlong from comment #9)
> (In reply to wenlong from comment #8)
> > (In reply to wangming01 from comment #7)
> > > 这个问题不是内核的问题。请上(In reply to wangzhe from comment #6)
> > > > 需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适
> > > 首先这个问题与内核没有任何关系。明显是ISO安装的问题。
> > > crashkernel
> > > 参数配置是用户行为。
> > > 目前龙蜥既然支持ISO安装过程中配置该参数,个人认为是应该进行修复的,如果不支持安装过程中配置我们完全可以像欧拉系统那样手动配置grub.cfg。
> > 
> > 在下面pr中进行修复
> > https://gitee.com/src-anolis-os/kdump-anaconda-addon/pulls/6
> 
> 该pr仅修改安装时anaconda界面中默认的kdump设置,内核部分需要内核来修改

目前内核的spec文件中:未设置crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M,所以目前不确定如何修改。
Comment 11 wenlong loongson_group 2024-04-10 16:00:45 UTC
(In reply to wenlong from comment #8)
> (In reply to wangming01 from comment #7)
> > 这个问题不是内核的问题。请上(In reply to wangzhe from comment #6)
> > > 需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适
> > 首先这个问题与内核没有任何关系。明显是ISO安装的问题。
> > crashkernel
> > 参数配置是用户行为。
> > 目前龙蜥既然支持ISO安装过程中配置该参数,个人认为是应该进行修复的,如果不支持安装过程中配置我们完全可以像欧拉系统那样手动配置grub.cfg。
> 
> 在下面pr中进行修复
> https://gitee.com/src-anolis-os/kdump-anaconda-addon/pulls/6

问题原因已经找到
社区在制作iso过程中使用了8.6分支的anaconda,该版本中将kdum的默认内存写在了代码里,导致安装器在安装时即使配置了kdump内存大小也会被覆盖,导致上述提交无法生效,经与社区讨论,该问题影响可控,暂时先以文档说明的方式,通过手动配置来支持kdump

下一步计划需要社区调整anaconda  a8分支代码,并删除历史补丁
https://gitee.com/src-anolis-os/anaconda/commit/b3400802a37cbecdbce4962a0b3d23548e6c5ed0