如何确定大量 TASKLET IRQ 的来源?

如何确定大量 TASKLET IRQ 的来源?

我有一个 CPU 固定在 100%,但并不总是相同的 CPU。看起来它完全受到 TASKLET IRQ 的打击。我如何追踪他们的来源?我使用的是 Debian 12。这种情况在启动时立即发生,然后再打开 i3 之外的任何面向用户的内容

附加信息:

  • kworker/3:1+pmhtop 显示和之间的使用率为 100% ksoftirqd/3(当 CPU 3 达到最大时 - 该数字始终与最大 CPU 匹配)
  • irqtop -s显示:
fmwk - irqtop - 2023-07-09 09:06:21 -0500
              CPU0   CPU1   CPU2   CPU3   CPU4   CPU5   CPU6   CPU7
  cpuUtil:     2.4    1.0    1.0  100.0    1.4    1.6    1.2    2.6   total CPU utilization %
     %irq:     0.0    0.0    0.0    0.0    0.0    0.0    0.0    0.0   hardware IRQ CPU util%
    %sirq:     0.6    0.0    0.2    3.8    0.0    0.0    0.0    0.0   software IRQ CPU util%
 irqTotal:     144     62    649   1296     76    111     99     63   total hardware IRQs
s   TIMER:       8      2     44     29     13     21      8     15
s  NET_RX:       0      0      0      0      1      0      0      0
s TASKLET:       0      0      0 331119      0      0      0      0
s   SCHED:     122     42    105     19     46     75     59     33
s     RCU:      17     14     19     22      9     17     13      8
  • 我的XF86RFKill密钥似乎让它移动到另一个CPU。当关闭或打开它时会发生这种情况,因此完整的 rfkill 开/关循环会发生两次,并在所有内容都被杀死并且没有任何内容插入笔记本电脑时继续。
  • 我正在使用带有第 11 代英特尔主板的框架,并且删除所有模块后问题仍然存在
  • 该行为在睡眠/唤醒周期后继续
  • 这种行为通常会在之后继续systemctl reboot
  • 该行为通常不会在冷启动时启动
  • 如果问题尚未发生,则睡眠/唤醒周期或 rfkill 开/关周期似乎不会导致此问题

相关内容