【问题标题】:Why does the Linux kernel panic pin the CPU at 100%?为什么 Linux 内核恐慌将 CPU 固定在 100%?
【发布时间】:2022-01-11 03:26:34
【问题描述】:

看看以下内容:

qemu-system-x86_64 -kernel /boot/vmlinuz-linux

这将导致内核崩溃,正如预期的那样(没有初始化)。更少的预期是它会导致一个处理器内核旋转,直到 qemu 被杀死。为什么是这样?究竟是什么原因导致内核让 CPU 处于这种状态?

【问题讨论】:

  • 应该在超级用户上询问,stackoverflow 更适合程序员。

标签: linux-kernel panic


【解决方案1】:

为什么 Linux 内核恐慌将 CPU 固定在 100%?

这个循环https://code.woboq.org/linux/linux/kernel/panic.c.html#74

while (1)
    cpu_relax();

【讨论】:

  • 谢谢!你知道为什么要这样做吗?如果内核作为一个程序只是简单地完成执行,到底有什么风险?
  • why exactly this is done this way? 为什么不呢? What exactly is the risk if the kernel as a program was to simply finish execution? 数据损坏?数据删除?
  • “数据损坏?数据删除?”:我忘了硬件需要时间来完成同步到磁盘等工作。谢谢。
  • 不,我不是这个意思。在内核崩溃后继续执行可能会执行一些本不打算在这种情况下运行的代码。因此,它可能跳转到恰好格式化整个硬盘驱动器的指令。可预测的停止比不可预测的要好。
  • 当我说完成执行时,我的意思是停止执行,而不是从以前的地方继续。
猜你喜欢
  • 2013-12-12
  • 1970-01-01
  • 2015-08-30
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-28
  • 2013-06-15
相关资源
最近更新 更多