Fork me on GitHub

如何增加kasan 出现问题 重启

要通过启动参数启用或配置 Kernel Address Sanitizer (KASAN) 并设置相关的行为,你可以在启动 Linux 内核时添加以下参数:

  1. 启用 KASAN:使用 kasan=1 来启用 KASAN。如果你的内核默认没有启用 KASAN,你需要这个参数。

    kasan=1

  2. 控制 panic 行为:使用 kasan.panic_on_error=1 来设置 KASAN 在检测到错误时触发 panic。如果你希望内核在检测到错误时不立即 panic,而是继续运行,可以使用 kasan.panic_on_error=0

    kasan.panic_on_error=1

  3. 控制错误报告:使用 kasan.fault=reportkasan.fault=panic 来控制 KASAN 在检测到错误时是否只打印报告或同时使内核 panic。默认值是 report

    kasan.fault=panic

  4. 堆栈跟踪收集行为:对于基于软件和硬件标签的 KASAN 模式,你可以使用以下参数来改变堆栈跟踪收集行为:

  • kasan.stacktrace=offkasan.stacktrace=on 来禁用或启用分配和释放堆栈痕迹的收集。

    kasan.stacktrace=on
    
  • kasan.stack_ring_size=<number of entries> 来指定堆栈环的条目数,默认值通常是 32768

  1. 基于硬件标签的 KASAN 模式特有参数:如果你使用的是支持硬件标签的 KASAN 模式(例如在 ARM64 上),你可以使用以下额外的启动参数:
  • kasan.mode=sync, kasan.mode=asynckasan.mode=asymm 来控制 KASAN 配置为同步、异步或非对称的执行模式。

    kasan.mode=async
    
  • kasan.vmalloc=offkasan.vmalloc=on 来禁用或启用 vmalloc 分配的标记。

    kasan.vmalloc=on
    

这些参数可以在启动时通过 grub 配置文件添加到内核命令行中,或者在引导加载器菜单中手动添加。例如,在 GRUB 中,你可以编辑 /etc/default/grub 文件,然后运行 update-grub 来更新配置,并重启以应用更改。

请注意,使用 KASAN 可能会对系统性能有显著影响,因此它通常只在调试内核问题时使用。在生产环境中使用时应该非常谨慎。

posted @ 2024-08-23 17:32  yooooooo  阅读(29)  评论(0编辑  收藏  举报