如何在 Linux 中终止 IRQ 进程?

如何在 Linux 中终止 IRQ 进程?

我不能通过或irq/${nnn}-nvidia来杀死。有人如何杀死或停止这些进程吗?kill -9pkill -f -9

irq 使用 100% CPU

(如果相关的话,我正在使用 Ubuntu 16.04。)

答案1

正如@hobbs 所解释的,它是一个内核线程。更广阔的视角如下:

IRQ 处理在任何操作系统中都是有问题的,因为中断可能随时到达。即使内核正在处理复杂的任务并且资源不一致(指针指向无效地址等),中断也可能到达。这个问题可以通过锁来解决,即在内核处于可中断、一致的状态之前不允许中断处理程序运行。使用锁的缺点是过多的锁会使系统变慢且效率低下。

因此,该问题的最优解是这样的:

  1. 内核中断处理程序尽可能短。
  2. 他们唯一的工作是将所有相关的中断数据移动到临时缓冲区中
  3. 一些“后台”线程在此缓冲区上连续工作,并代表中断处理程序执行实际工作。

这些“后台”线程是中断处理程序内核线程。

  • 您可以将它们视为top正常流程。
  • 但是,它们显示为好像使用零内存。
  • 是的,这是真的,因为没有真正的用户空间内存属于它们

它们本质上是在后台运行的内核线程。

您无法杀死内核线程:它们完全由内核管理。如果你能杀死它,你的 nvidia 驱动程序中的 irq/142 处理程序将不再存在:如果你的显卡发送中断,则没有任何东西可以处理它。结果可能是冻结,但您的视频肯定无法再播放。

您系统中的问题是该中断处理程序获取了大量 CPU 资源。有很多潜在的原因:

  • 由于某种原因,硬件(您的视频卡)发送了如此多的中断,以至于您的 CPU 无法处理所有中断。
  • 硬件有问题。
  • 司机是越野车。

了解 Nvidia 驱动程序的质量后,不幸的是,最有可能的是有缺陷的驱动程序。

解决方案是以某种方式重置该驱动程序。一些想法,按残酷程度排序:

  • 它是否在后台运行某些 3D 加速进程?例如,谷歌地球?如果是,请停止或杀死它。
  • 从 X 切换回字符控制台 (alt/ctrl/f1),然后再切换回 (alt/ctrl/f7)。然后大部分视频将重新初始化。
  • 重新启动 X(正常退出,或键入 alt/ctrl/backspace 来终止 X 服务器)。
  • 杀死 X(killall -9 Xorg)。如果您从角色控制台执行此操作,效果会更好。

如果你杀掉 X 并且仍然看到这个内核线程,你可以尝试删除 Nvidia 内核模块(你可以在 给出的列表中看到它lsmod,然后你可以使用 删除它rmmod)。重新启动 X 会insmod自动重置硬件。

如果这些都不起作用,您需要重新启动。如果普通的重新启动不起作用,您可以使用额外的残酷手段来执行此操作:使用 alt/printscreen/s ,然后使用 alt/printscreen/b 。


扩展:作为临时解决方法,您可以尝试为该线程提供非常低的优先级(renice +20 -p 1135)。然后它仍然会运行,但对您的系统性能的影响较小。

答案2

你不能。它不是一个进程,而是一个内核线程。你无法杀死它,如果你成功了,只会让你的系统(更加)无法使用。

答案3

您可能已被黑客攻击,他们正在运行垃圾邮件机器人、交易机器人甚至挖矿。进入防火墙,更改 root 密码,卸载任何 Openssh 实例并升级内核。我刚刚升级到下一个版本。

请务必阻止传出 ssh。然后在对等点尝试连接时观察 ufw.log(网络中其他被黑节点的列表)。运行升级时请注意存储库列表。您可能会注意到桌面的“用户名”文件作为列出的子域。因为当您连接时,它们会压缩并过滤您工作站的文件。

然后深入研究...我正在寻找杀死存储库的凭据。

相关内容