首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Linux卡在CPU软锁中?

Linux卡在CPU软锁中?
EN

Stack Overflow用户
提问于 2013-02-28 21:52:42
回答 1查看 23.8K关注 0票数 8

我的系统是一个CentOS 6.3 (运行内核版本的2.6.32-279.el6.x86_64)。

我有一个可加载的内核模块,它是一个管理PCIe卡的驱动程序。如果在操作系统启动和运行时使用insmod手动插入驱动程序,则驱动程序将成功加载并运行。

但是,如果我尝试使用rpm安装驱动程序,然后重新启动系统,则在启动期间,操作系统会为所有CPU内核发出以下“软锁”消息,但在我的驱动程序创建的一个线程中,除了一个处于“软锁”状态的内核之外。

代码语言:javascript
运行
复制
BUG: soft lockup - CPU#X stuck for 67s! [migration/8:36]
.......(same above message for all cores except one)
BUG: soft lockup - CPU#10 stuck for 67s! [mydriver_thread/8:36]
(one core is locked up in one of the threads in my driver).

我在网上搜索了相当多的关于这个内核msg / bug的信息,并且有很多关于它的帖子,没有关于是什么原因或者如何调试的帖子。如能就下列问题提供任何帮助,我们将不胜感激:

  1. 我无法登录到系统中,我认为这是因为所有内核都处于“软锁”状态,因此不能从shell提示符触发内核转储。我启用了SysRq,并试图使用SysRq键组合键触发内核转储,但没有成功。系统似乎没有响应键盘(甚至没有响应CapsLock按钮)。对于在这种情况下如何触发内核转储,有什么建议吗?
  2. 我可以想象我的驱动线程可能会导致“软锁”。但是,为什么“迁移”线程(内核线程)仅仅因为我的驱动程序而处于“软锁”中呢?
  3. 从浏览网络,“迁移”线程用于将任务从一个cpu转移到另一个cpu。有人能帮我理解一下这条线到底做了什么吗?以及它如何受到其他线程的影响,如果有的话。
EN

回答 1

Stack Overflow用户

发布于 2016-06-14 12:36:12

我的桌面上也有一个类似的问题。它会非常频繁地软锁-大约一天一次。

原来是因为我用的是英特尔的哈斯韦尔。看来,Haswell/Broadwell系列英特尔处理器存在一个错误,可能导致系统不稳定。这个错误是在一个微码更新中修复的。

检查CentOS是否提供了一个英特尔微码包,并安装它。确保将grub配置为在加载initramfs之前将其作为初始的ramdisk加载。

就我个人而言,我通过引导进入Windows并运行BIOS更新来升级我的微码。您可以通过比较更新前后的grep 'microcode' /proc/cpuinfo输出来检查micrcode是否实际被更新。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15146372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档