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:
Created attachment 1073 [details] 龙蜥默认kdump设置选项
Created attachment 1074 [details] 推荐kdump配置
这个问题触发kdump失败的原因是: 龙蜥默认ISO安装界面启用kdump后如果使用自动配置生成的crashkernel存在问题【见附件:龙蜥默认kdump设置选项】。导致kdump触发失败。 在大内存服务器机器推荐手动配置crashkernel=1024M。目前发现512M有些保守,偶尔在kdump过程中出现oom(内存不足的情况),详细配置方法【见附件:推荐kdump配置】。 结论: 非内核或kdump工具bug。属于参数配置问题。建议使用手动配置crashkernel参数。
echo c > /proc/sysrq-trigger 触发死机是预期行为, 目前内核cmdline的crashkernel参数如下: crashkernel=0M-2G:0M,2G-8G:192M,8G-:256M, 建议安装时根据机器内存情况手动配置kdump要保留的内存
在操作系统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安装的同学分析下手动配置失败的原因。
需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适
这个问题不是内核的问题。请上(In reply to wangzhe from comment #6) > 需要龙芯的内核同学看下8.9的龙芯内核 crashkernel 参数如何配置合适 首先这个问题与内核没有任何关系。明显是ISO安装的问题。 crashkernel 参数配置是用户行为。目前龙蜥既然支持ISO安装过程中配置该参数,个人认为是应该进行修复的,如果不支持安装过程中配置我们完全可以像欧拉系统那样手动配置grub.cfg。
(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
(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设置,内核部分需要内核来修改
(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,所以目前不确定如何修改。
(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