绕过softlockup_threshold

时间:2012-11-13 20:27:53

标签: c linux module linux-kernel kernel

我开发了一个内核模块,它工作繁重,当然需要时间。 问题是模块使用CPU的时间超过20秒 结果是引发了softlockup_threshold的BUG。

我的问题是,有没有办法绕过这个?即它能篡改门槛吗? 或者它可以强制安排并在以后继续工作吗? (为了将计时器设置为0)。

提前谢谢你, 帕诺斯

2 个答案:

答案 0 :(得分:3)

使用新内核,你可以调整/ proc / sys / kernel / watchdog_thresh(旧的内核使用/ proc / sys / kernel / softlockup_thresh,我认为)。但是不鼓励这样做,因为阻塞20秒意味着你的代码有问题,你应该产生CPU,例如通过调用cond_resched()。

答案 1 :(得分:1)

你可以尝试让CPU产生一段时间,如果这是可以接受的,那么你应该看看schedule()这里有一篇关于Sleeping in the Kernel的好文章