c - 绕过 softlockup_threshold

标签 c linux module linux-kernel kernel

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

我的问题是,有什么办法可以绕过这个吗?即它可以篡改阈值吗? 或者它可以强制调度并稍后继续工作吗? (为了将计时器设置为 0)。

先谢谢你, 帕诺斯

最佳答案

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

关于c - 绕过 softlockup_threshold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13368226/

相关文章:

linux - 使用 SED 提取数据范围

linux - 多人项目上的 SVN 补丁/差异管理

javascript - Appcelerator Titanium 中适用于 Android 平台的 Ti.Barcode 模块? (扫码机)

c - linux,C,如何取消一个定时器?

c - 在不修改参数的情况下将指针传递给函数?

javascript - Emscripten 中的 "Big"整数

c - InterlockedBitTestAndReset64() 未定义

c - 为什么 child 的 getppid() 返回 1

python - 你可以在 Python 中为导入的模块定义别名吗?

Linux 内核检查 VID/PID 号?