调试ftl,总是出现softlockup
搜索了一些资料,也调试了softlockup的bug,现总结一下。
原理:1. linux softlockup检测机制:启动watchdog进程,用硬件定时器检测该进程;watchdog运行时发现前后时间大于系统所设置的
softlockup时间,则认为出现
softlockup
2.某个线程长期占有cpu而不释放(通常是自己的线程)
解决思路:1.主要在自己代码中检查 2.检查报告点的函数(可能存在while)3.检查影响报告点的其他函数(
可能存在while
)