【问题标题】:Kernel panic seems to be unrelated to the changes内核恐慌似乎与更改无关
【发布时间】:2010-05-01 04:29:06
【问题描述】:

我在 Linux 内核 2.4(家庭作业)中对 sched.c 进行了更改,现在系统进入内核崩溃状态。奇怪的是:它似乎通过了很多启动检查和初始化,并且只在最后出现恐慌,显示以下堆栈跟踪:

update_process_times
do_timer
timer_interrupt
handle_IRQ_event
do_IRQ
call_do_IRQ
do)wp_page
handle_mm_fault
do_page_fault
do_sigaction
sys_rt_sigaction
do_page_fault
error_code

错误是:“在中断处理程序中 - 不同步”

我知道没有任何代码很难判断,但是任何人都可以做出有根据的猜测来为我指明正确的方向吗?

【问题讨论】:

  • 不是没有代码,或者至少是对您的更改内容的最小描述。

标签: linux linux-kernel panic


【解决方案1】:

在调试内核问题时,我可以给你我个人的口头禅:“总是你的错。”

我经常看到由于覆盖我正在工作的地方之外的内存而导致的问题——例如,如果我为硬件提供了一个不正确的 DMA 地址。您可能会以某种方式拧紧锁;如果您看到超时,在这种情况下这似乎是可能的:由于挂起,忘记锁定的锁导致超时发生。

对我来说,update_process_times 中的恐慌可能表明任务结构指针有问题......但我真的不知道。

请记住,内核中的事情经常在故障发生之前很久就出错了,因此代码中任何地方的错误都可能是罪魁祸首,即使它看起来不应该产生影响。如果可以的话,我建议逐步添加或删除您的代码并检查问题,看看您是否可以隔离它。

【讨论】:

  • 看起来我们不小心删除了 sched.h 中的某些内容我们将更改重新插入到新版本中,现在它可以工作了。感谢您的建议,现在我想投票关闭此线程。它似乎太分散注意力,对任何人都没有任何帮助。
猜你喜欢
  • 2010-12-16
  • 2013-12-12
  • 2020-01-28
  • 2012-02-08
  • 2015-12-11
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多