【发布时间】:2015-10-11 14:19:16
【问题描述】:
我被分配到另一个人编写的内核模块上工作,我现在没有代码并且存在“原子时调度”错误。
据我了解,这是由于在由自旋锁保护的关键部分中休眠造成的。
有什么东西可以帮助我找到源头 - 睡眠发生的关键部分或在睡眠尝试期间获得的自旋锁? (通常任何关于调试自旋锁的好文章推荐都会受到赞赏)。
问候 雷内
【问题讨论】:
-
通常,如果您看到该消息,则会打印堆栈跟踪。那么这有什么问题呢?
-
是的,你是对的,在某些调用跟踪中,有有用的信息,但其中许多只是说:i386_start_kernel -> start_kernel -> rest_init -> cpu_idle -> cpuidle_idle_call
-
现在我明白了 - 不是来自未触发错误的内核的调用跟踪(评论上方)吗?
-
回溯应该加上类似 _schedule 的东西。发布描述问题的完整日志
-
关于核心 - 有可能,检查代码
标签: debugging linux-kernel spinlock