I am trying to find out what is causing 100% CPU usage after a long period of rendering video (from the csi camera and > 24h) on screen on my Rock 5C with kernel 6.1.43.
It’s not always, it happens on some occasions. When it happens, if i stop the process it usually gets to a normal idle state (0% CPU usage).
But this time even after the process is stopped the 100% CPU (cpu0) remained.
Here is the TOP output info in idle mode after the application is stopped:
Tasks: 197 total, 2 running, 195 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 1.1 sy, 0.0 ni, 87.5 id, 0.0 wa, 0.0 hi, 11.4 si, 0.0 st
MiB Mem : 1973.6 total, 1411.3 free, 206.7 used, 355.6 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 1707.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13 root 20 0 0 0 0 R 100.0 0.0 1051:23 ksoftirqd/0
82624 root 20 0 0 0 0 I 0.3 0.0 0:00.05 kworker/u16:0-devfreq_wq
1 root 20 0 165940 10208 7396 S 0.0 0.5 0:03.47 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.24 kthreadd
3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 netns
10 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
11 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_tasks_rude_kthread
12 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_tasks_trace_kthread
14 root 20 0 0 0 0 I 0.0 0.0 1:54.21 rcu_sched
15 root rt 0 0 0 0 S 0.0 0.0 0:01.08 migration/0
16 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/0
17 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/1
18 root rt 0 0 0 0 S 0.0 0.0 0:00.78 migration/1
19 root 20 0 0 0 0 S 0.0 0.0 0:00.26 ksoftirqd/1
22 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/2
23 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/2
24 root 20 0 0 0 0 S 0.0 0.0 0:00.17 ksoftirqd/2
27 root 20 0 0 0 0 S 0.0 0.0 0:00.00 cpuhp/3
28 root rt 0 0 0 0 S 0.0 0.0 0:00.78 migration/3
29 root 20 0 0 0 0 S 0.0 0.0 0:00.16 ksoftirqd/3
And a dump of interrupts after the application is stopped:
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
9: 0 0 0 0 0 0 0 0 GICv3 25 Level vgic
11: 0 0 0 0 0 0 0 0 GICv3 30 Level kvm guest ptimer
12: 0 0 0 0 0 0 0 0 GICv3 27 Level kvm guest vtimer
13: 20955352 596501 510036 452669 336967 567668 817131 1472803 GICv3 26 Level arch_timer
14: 2575640 1386596 1033443 827104 2215269 1025603 2217351 4503755 GICv3 321 Level rk_timer
20: 0 0 0 0 0 0 0 0 GICv3 455 Edge debug-signal
21: 0 0 0 0 0 0 0 0 GICv3 365 Level debug
22: 0 0 0 0 0 0 0 0 GICv3 429 Level rockchip_thermal
23: 0 0 0 0 0 0 0 0 GICv3 23 Level arm-pmu
24: 0 0 0 0 0 0 0 0 GICv3 425 Level rockchip_usb2phy
25: 1 0 0 0 0 0 0 0 GICv3 423 Level rockchip_usb2phy
26: 2 0 0 0 0 0 0 0 GICv3 424 Level rockchip_usb2phy
29: 10 0 0 0 0 0 0 0 GICv3 118 Level fea10000.dma-controller
30: 0 0 0 0 0 0 0 0 GICv3 119 Level fea10000.dma-controller
31: 0 0 0 0 0 0 0 0 GICv3 120 Level fea30000.dma-controller
32: 0 0 0 0 0 0 0 0 GICv3 121 Level fea30000.dma-controller
33: 5 0 0 0 0 0 0 0 GICv3 122 Level fed10000.dma-controller
34: 0 0 0 0 0 0 0 0 GICv3 123 Level fed10000.dma-controller
35: 0 0 0 0 0 0 0 0 GICv3 142 Level fdab9000.iommu, fdab0000.npu
36: 0 0 0 0 0 0 0 0 GICv3 143 Level fdab9000.iommu, fdab0000.npu
37: 0 0 0 0 0 0 0 0 GICv3 144 Level fdab9000.iommu, fdab0000.npu
38: 0 0 0 0 0 0 0 0 GICv3 150 Level fdb50800.iommu
39: 1342415 0 0 0 0 0 0 0 GICv3 146 Level fdb60f00.iommu, rga3_core0
40: 0 0 0 0 0 0 0 0 GICv3 147 Level fdb70f00.iommu, rga3_core1
41: 0 0 0 0 0 0 0 0 GICv3 162 Level fdb90480.iommu
42: 0 0 0 0 0 0 0 0 GICv3 153 Level fdba0800.iommu
43: 0 0 0 0 0 0 0 0 GICv3 155 Level fdba4800.iommu
44: 0 0 0 0 0 0 0 0 GICv3 157 Level fdba8800.iommu
45: 0 0 0 0 0 0 0 0 GICv3 159 Level fdbac800.iommu
46: 0 0 0 0 0 0 0 0 GICv3 149 Level fdbb0800.iommu, fdbb0000.iep
47: 0 0 0 0 0 0 0 0 GICv3 131 Level fdbdf000.iommu
48: 0 0 0 0 0 0 0 0 GICv3 132 Level fdbdf000.iommu
49: 0 0 0 0 0 0 0 0 GICv3 134 Level fdbef000.iommu
50: 0 0 0 0 0 0 0 0 GICv3 135 Level fdbef000.iommu
51: 0 0 0 0 0 0 0 0 GICv3 128 Level fdc38700.iommu
52: 0 0 0 0 0 0 0 0 GICv3 130 Level fdc48700.iommu
53: 0 0 0 0 0 0 0 0 GICv3 141 Level fdca0000.iommu
54: 0 0 0 0 0 0 0 0 GICv3 164 Level fdcb7f00.iommu
55: 0 0 0 0 0 0 0 0 GICv3 145 Level fdce0800.iommu
56: 3085358 0 0 0 0 0 0 0 GICv3 188 Level fdd97e00.iommu, fdd90000.vop
57: 0 0 0 0 0 0 0 0 GICv3 392 Level dw-hdmi-qp-hpd
58: 0 0 0 0 0 0 0 0 GICv3 201 Level fde80000.hdmi
59: 0 0 0 0 0 0 0 0 GICv3 202 Level dw-hdmi-qp-cec
60: 0 0 0 0 0 0 0 0 GICv3 203 Level fde80000.hdmi
61: 323 0 0 0 0 0 0 0 GICv3 204 Level fde80000.hdmi
62: 250371 0 0 0 0 0 0 0 GICv3 360 Level feb20000.spi
63: 0 0 0 0 0 0 0 0 rockchip_gpio_irq 7 Level rk806
64: 0 0 0 0 0 0 0 0 rk806 0 Edge rk805_pwrkey_fall
65: 0 0 0 0 0 0 0 0 rk806 1 Edge rk805_pwrkey_rise
66: 0 0 0 0 0 0 0 0 rk806 7 Level rk806_vb_low
67: 198156 0 0 0 0 0 0 0 GICv3 266 Level eth0
68: 0 0 0 0 0 0 0 0 GICv3 265 Level eth0
69: 0 0 0 0 0 0 0 0 GICv3 252 Level xhci-hcd:usb1
70: 0 0 0 0 0 0 0 0 GICv3 254 Level xhci-hcd:usb3
71: 66140 0 0 0 0 0 0 0 GICv3 247 Level ehci_hcd:usb5
72: 0 0 0 0 0 0 0 0 GICv3 250 Level ehci_hcd:usb7
73: 0 0 0 0 0 0 0 0 GICv3 248 Level ohci_hcd:usb6
74: 0 0 0 0 0 0 0 0 GICv3 251 Level ohci_hcd:usb8
75: 495490 0 0 0 0 0 0 0 GICv3 349 Level fd880000.i2c
76: 58 0 0 0 0 0 0 0 GICv3 351 Level feaa0000.i2c
77: 40087 0 0 0 0 0 0 0 GICv3 352 Level feab0000.i2c
78: 187 0 0 0 0 0 0 0 GICv3 356 Level fec90000.i2c
79: 3064014 0 0 0 0 0 0 0 GICv3 187 Level rkcifhw
80: 0 0 0 0 0 0 0 0 GICv3 175 Level rockchip-mipi-csi2-hw
81: 0 0 0 0 0 0 0 0 GICv3 176 Level rockchip-mipi-csi2-hw
82: 0 0 0 0 0 0 0 0 GICv3 177 Level rockchip-mipi-csi2-hw
83: 0 0 0 0 0 0 0 0 GICv3 178 Level rockchip-mipi-csi2-hw
84: 0 0 0 0 0 0 0 0 GICv3 179 Level rockchip-mipi-csi2-hw
85: 0 0 0 0 0 0 0 0 GICv3 180 Level rockchip-mipi-csi2-hw
86: 0 0 0 0 0 0 0 0 GICv3 181 Level rockchip-mipi-csi2-hw
87: 0 0 0 0 0 0 0 0 GICv3 182 Level rockchip-mipi-csi2-hw
88: 0 0 0 0 0 0 0 0 GICv3 183 Level rockchip-mipi-csi2-hw
89: 0 0 0 0 0 0 0 0 GICv3 184 Level rockchip-mipi-csi2-hw
90: 0 0 0 0 0 0 0 0 GICv3 185 Level rockchip-mipi-csi2-hw
91: 0 0 0 0 0 0 0 0 GICv3 186 Level rockchip-mipi-csi2-hw
92: 3064014 0 0 0 0 0 0 0 GICv3 163 Level rkisp_hw
93: 1531987 0 0 0 0 0 0 0 GICv3 165 Level rkisp_hw
94: 0 0 0 0 0 0 0 0 GICv3 166 Level rkisp_hw
95: 85157 0 0 0 0 0 0 0 GICv3 235 Level dw-mci
96: 0 0 0 0 0 0 0 0 GICv3 430 Level fec10000.saradc
97: 0 0 0 0 0 0 0 0 GICv3 217 Level i2s
98: 0 0 0 0 0 0 0 0 GICv3 212 Level i2s
99: 0 0 0 0 0 0 0 0 GICv3 148 Level rga2
100: 0 0 0 0 0 0 0 0 GICv3 151 Level fdb50400.vdpu
101: 0 0 0 0 0 0 0 0 GICv3 152 Level fdb50000.vepu
102: 0 0 0 0 0 0 0 0 GICv3 154 Level fdba0000.jpege-core
103: 0 0 0 0 0 0 0 0 GICv3 156 Level fdba4000.jpege-core
104: 0 0 0 0 0 0 0 0 GICv3 158 Level fdba8000.jpege-core
105: 0 0 0 0 0 0 0 0 GICv3 160 Level fdbac000.jpege-core
106: 0 0 0 0 0 0 0 0 GICv3 161 Level fdb90000.jpegd
107: 0 0 0 0 0 0 0 0 GICv3 127 Level fdc38100.rkvdec-core
108: 0 0 0 0 0 0 0 0 GICv3 129 Level fdc48100.rkvdec-core
109: 0 0 0 0 0 0 0 0 GICv3 133 Level fdbd0000.rkvenc-core
110: 0 0 0 0 0 0 0 0 GICv3 136 Level fdbe0000.rkvenc-core
111: 0 0 0 0 0 0 0 0 GICv3 140 Level fdc70000.av1d
113: 1322323 0 0 0 0 0 0 0 GICv3 124 Level fb000000.gpu-mali
114: 1 0 0 0 0 0 0 0 GICv3 125 Level fb000000.gpu-mali
115: 1324704 0 0 0 0 0 0 0 GICv3 126 Level fb000000.gpu-mali
116: 110 0 0 0 0 0 0 0 GICv3 105 Level dmc
117: 12 0 0 0 0 0 0 0 GICv3 237 Level mmc0
IPI0: 11507 24796 22984 22872 30382 56776 31183 27267 Rescheduling interrupts
IPI1: 747075 3932227 1794461 1149139 1442524 1600198 3356632 4208007 Function call interrupts
IPI2: 0 0 0 0 0 0 0 0 CPU stop interrupts
IPI3: 0 0 0 0 0 0 0 0 CPU stop (for crash dump) interrupts
IPI4: 2136533 1534500 700881 495717 635048 515907 1293795 3986583 Timer broadcast interrupts
IPI5: 6512425 1457624 415943 289257 1667133 938907 2933097 1672701 IRQ work interrupts
IPI6: 0 0 0 0 0 0 0 0 CPU wake-up interrupts
In this erratic situation, can anyone spot who may cause the 100% CPU on ksoftirqd/0 ?
Any hints?