sheldon_blogs

Android14 RK3588平台内核异常中断占用CPU问题排查

一、问题:

top 查看各进程状态,发现有1个 ksoftirqd/0 进程占满了1个cpu核,该进程属于内核软中断:

Tasks: 336 total,   2 running, 334 sleeping,   0 stopped,   0 zombie
  Mem:  8037864K total,  3091524K used,  4946340K free,    22008K buffers
 Swap:        0K total,        0K used,        0K free,  1558472K cached
800%cpu   4%user   0%nice  22%sys 667%idle   4%iow   4%irq 100%sirq   0%host
  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS
   13 root         20   0    0    0    0 R  100   0.0   5:03.06 [ksoftirqd/0]
  137 root         20   0    0    0    0 I 14.8   0.0   1:09.74 [kworker/6:5-events]
 7254 root         20   0  10G 4.8M 4.0M R 11.1   0.0   0:00.02 top
  415 audioserver  20   0  78M  16M  14M S  3.7   0.2   0:03.60 android.hardware.audio.service
 7251 root         20   0  10G 3.3M 2.7M S  0.0   0.0   0:00.01 sleep 15
 7236 root         20   0  10G 3.4M 2.7M S  0.0   0.0   0:00.00 sleep 10
 7162 root          4 -16  10G  10M 8.4M S  0.0   0.1   0:00.02 rkuacspeakerfw -r 48000
 7136 root          0 -20    0    0    0 I  0.0   0.0   0:00.00 [kworker/u17:1-blk_crypto_wq]
 6611 root         20   0    0    0    0 I  0.0   0.0   0:00.00 [kworker/5:0-mm_percpu_wq]
 6147 root         20   0    0    0    0 I  0.0   0.0   0:00.00 [kworker/7:0-events_freezable]
 5650 root         20   0    0    0    0 I  0.0   0.0   0:00.07 [kworker/u16:0-ext4-rsv-conversion]
 5407 root          0 -20    0    0    0 I  0.0   0.0   0:00.00 [kworker/7:0H]
 5320 root          0 -20    0    0    0 I  0.0   0.0   0:00.00 [kworker/5:0H]
 5158 root          0 -20    0    0    0 I  0.0   0.0   0:00.00 [kworker/3:0H]
 5157 root          0 -20    0    0    0 I  0.0   0.0   0:00.00 [kworker/2:0H]
 5140 root          0 -20    0    0    0 I  0.0   0.0   0:00.00 [kworker/1:0H]

二、排查

cat /proc/softirqs 查看各cpu上产生中断的类型及增长速度,可发现其中TASKLET在cpu0上狂增:

Every 1.0s: cat /proc/softirqs                                                                  Tue Jan 13 11:28:04 2026

                    CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7
          HI:    1549753          3          1          1          2          0          3          7
       TIMER:      29234      10977      27093      18114      14303      26721      40171      22869
      NET_TX:       7388        630       2655        208        403        225        583        218
      NET_RX:       2851        249      26685         99         18          6          8          6
       BLOCK:      16283          0          0          0       2040       2279       2479       1738
    IRQ_POLL:          0          0          0          0          0          0          0          0
     TASKLET: 1582573396          9        698         17         12        172          4         56
       SCHED:      73971      79150      55899      44047      24094      26002      31753      26999
     HRTIMER:       1187        210        161         66        142         81        212         75
         RCU:     103329      83993      95396      92539      49085      54810      64616      59767

cat /proc/interrupts | sort -rn  找出触发次数最多的中断号:

154:          0          0          0          0          0          0          0          0  rockchip_gpio_irq  10 Level     dhdpcie_host_wake
153:          0          0      37709          0          0          0          0          0   ITS-MSI 285736960 Edge      eth0
152:          0          0          0          0          0          0          0          0  rockchip_gpio_irq  15 Edge      gpio_keys
151:          0          0          0          0          0          0          0          0     GICv3 105 Level     dmc
150:     517804          0          0          0          0          0          0          0     GICv3 126 Level     fb000000.gpu
149:          1          0          0          0          0          0          0          0     GICv3 125 Level     fb000000.gpu
148:     721272          0          0          0          0          0          0          0     GICv3 124 Level     fb000000.gpu
147:          0          0          0          0          0          0          0          0     GICv3 204 Level     fde80000.hdmi
146:          0          0          0          0          0          0          0          0     GICv3 203 Level     fde80000.hdmi
145:          0          0          0          0          0          0          0          0     GICv3 202 Level     dw-hdmi-qp-cec
144:          0          0          0          0          0          0          0          0     GICv3 201 Level     fde80000.hdmi
143:          0          0          0          0          0          0          0          0     GICv3 392 Level     dw-hdmi-qp-hpd
141:          0          0          0          0          0          0          0          0     GICv3 140 Level     fdc70000.av1d
140:          0          0          0          0          0          0          0          0     GICv3 136 Level     fdbe0000.rkvenc-core
139:          0          0          0          0          0          0          0          0     GICv3 133 Level     fdbd0000.rkvenc-core
138:          0          0          0          0          0          0          0          0     GICv3 129 Level     fdc48100.rkvdec-core
137:          0          0          0          0          0          0          0          0     GICv3 127 Level     fdc38100.rkvdec-core
136:          0          0          0          0          0          0          0          0     GICv3 161 Level     fdb90000.jpegd
135:       1222          0          0          0          0          0          0          0     GICv3 160 Level     fdbac000.jpege-core
134:       1222          0          0          0          0          0          0          0     GICv3 158 Level     fdba8000.jpege-core
133:       1222          0          0          0          0          0          0          0     GICv3 156 Level     fdba4000.jpege-core
132:       1222          0          0          0          0          0          0          0     GICv3 154 Level     fdba0000.jpege-core
131:          0          0          0          0          0          0          0          0     GICv3 152 Level     fdb50000.vepu
130:          0          0          0          0          0          0          0          0     GICv3 151 Level     fdb51000.avsd-plus, fdb50400.vdpu
129:          0          0          0          0          0          0          0          0     GICv3 148 Level     rga2
128:          0          0          0          0          0          0          0          0   ITS-MSI 570425352 Edge      PCIe PME
119:       5584          0          0          0          0          0          0          0  rk-pcie-legacy-int   0 Edge      dhdpcie:0004:41:00.0
118:          0          0          0          0          0          0          0          0  rockchip_gpio_irq   0 Edge      bt_default_wake_host_irq
117:          2          0          0          0          0          0          0          0     GICv3 213 Level     i2s
116:          0          0          0          0          0          0          0          0     GICv3 212 Level     i2s
115:          0          0          0          0          0          0          0          0     GICv3 217 Level     i2s
114:          0          0          0          0          0          0          0          0     GICv3  23 Level     arm-pmu
113:      14201          0          0          0          0          0          0          0     GICv3 430 Level     fec10000.saradc
112:      39909          0          0          0          0          0          0          0     GICv3 237 Level     mmc1
111:          0          0          0          0          0          0          0          0     GICv3 235 Level     dw-mci
110:          0          0          0          0          0          0          0          0     GICv3 170 Level     rkisp_hw
109:       1260          0          0          0          0          0          0          0     GICv3 169 Level     rkisp_hw
108:       2522          0          0          0          0          0          0          0     GICv3 167 Level     rkisp_hw
107:          0          0          0          0          0          0          0          0     GICv3 166 Level     rkisp_hw
106:          0          0          0          0          0          0          0          0     GICv3 165 Level     rkisp_hw
105:          0          0          0          0          0          0          0          0     GICv3 163 Level     rkisp_hw
104:          0          0          0          0          0          0          0          0     GICv3 186 Level     rockchip-mipi-csi2-hw
103:          0          0          0          0          0          0          0          0     GICv3 185 Level     rockchip-mipi-csi2-hw
102:          0          0          0          0          0          0          0          0     GICv3 184 Level     rockchip-mipi-csi2-hw
101:          0          0          0          0          0          0          0          0     GICv3 183 Level     rockchip-mipi-csi2-hw
100:          0          0          0          0          0          0          0          0     GICv3 182 Level     rockchip-mipi-csi2-hw
 99:          0          0          0          0          0          0          0          0     GICv3 181 Level     rockchip-mipi-csi2-hw
 98:          0          0          0          0          0          0          0          0     GICv3 180 Level     rockchip-mipi-csi2-hw
 97:          0          0          0          0          0          0          0          0     GICv3 179 Level     rockchip-mipi-csi2-hw
 96:          0          0          0          0          0          0          0          0     GICv3 178 Level     rockchip-mipi-csi2-hw
 95:          0          0          0          0          0          0          0          0     GICv3 177 Level     rockchip-mipi-csi2-hw
 94:          0          0          0          0          0          0          0          0     GICv3 176 Level     rockchip-mipi-csi2-hw
 93:          0          0          0          0          0          0          0          0     GICv3 175 Level     rockchip-mipi-csi2-hw
 92:       2524          0          0          0          0          0          0          0     GICv3 187 Level     rkcifhw
 91:          0          0          0          0          0          0          0          0   ITS-MSI 285212680 Edge      PCIe PME
 81:          0          0          0          0          0          0          0          0  rockchip_gpio_irq   8 Edge      ps8822
 80:          0          0          0          0          0          0          0          0     GICv3 357 Level     feca0000.i2c
 79:       3407          0          0          0          0          0          0          0     GICv3 356 Level     fec90000.i2c
 78:          0          0          0          0          0          0          0          0     GICv3 355 Level     fec80000.i2c
 77:      49783          0          0          0          0          0          0          0     GICv3 353 Level     feac0000.i2c
 76:        350          0          0          0          0          0          0          0     GICv3 352 Level     feab0000.i2c
 75:         55          0          0          0          0          0          0          0     GICv3 350 Level     fea90000.i2c
 74:     195225          0          0          0          0          0          0          0     GICv3 349 Level     fd880000.i2c
 73:          0          0          0          0          0          0          0          0     GICv3 377 Level     rk_pwm_pwr_irq
 72:          0     591075          0          0          0          0          0          0     GICv3 376 Level     rk_pwm_irq
 71:          0          0          0          0          0          0          0          0     GICv3 251 Level     ohci_hcd:usb4
 70:          0          0          0          0          0          0          0          0     GICv3 248 Level     ohci_hcd:usb6
 69:          0          0          0          0          0          0          0          0     GICv3 247 Level     ehci_hcd:usb5
 68:          0          0          0          0          0          0          0          0     GICv3 250 Level     ehci_hcd:usb3
 67:     374527          0          0          0          0          0          0          0     GICv3 252 Level     dwc3
 66:        114          0          0          0          0          0          0          0     GICv3 253 Level     xhci-hcd:usb1
 65:          0          0          0          0          0          0          0          0     rk806   1 Edge      rk805_pwrkey_rise
 64:          0          0          0          0          0          0          0          0     rk806   0 Edge      rk805_pwrkey_fall
 63:          0          0          0          0          0          0          0          0  rockchip_gpio_irq   7 Level     rk806
 62:      26425          0          0          0          0          0          0          0     GICv3 360 Level     feb20000.spi
 61:          0          0          0          0          0          0          0          0     GICv3 188 Level     fdd97e00.iommu, fdd90000.vop
 60:          0          0          0          0          0          0          0          0     GICv3 145 Level     fdce0800.iommu
 59:          0          0          0          0          0          0          0          0     GICv3 168 Level     fdcc7f00.iommu
 58:          0          0          0          0          0          0          0          0     GICv3 164 Level     fdcb7f00.iommu
 57:          0          0          0          0          0          0          0          0     GICv3 141 Level     fdca0000.iommu
 56:          0          0          0          0          0          0          0          0     GICv3 130 Level     fdc48700.iommu
 55:          0          0          0          0          0          0          0          0     GICv3 128 Level     fdc38700.iommu
 54:          0          0          0          0          0          0          0          0     GICv3 135 Level     fdbef000.iommu
 53:          0          0          0          0          0          0          0          0     GICv3 134 Level     fdbef000.iommu
 52:          0          0          0          0          0          0          0          0     GICv3 132 Level     fdbdf000.iommu
 51:          0          0          0          0          0          0          0          0     GICv3 131 Level     fdbdf000.iommu
 50:          0          0          0          0          0          0          0          0     GICv3 149 Level     fdbb0800.iommu, fdbb0000.iep
 49:          0          0          0          0          0          0          0          0     GICv3 159 Level     fdbac800.iommu
 48:          0          0          0          0          0          0          0          0     GICv3 157 Level     fdba8800.iommu
 47:          0          0          0          0          0          0          0          0     GICv3 155 Level     fdba4800.iommu
 46:          0          0          0          0          0          0          0          0     GICv3 153 Level     fdba0800.iommu
 45:          0          0          0          0          0          0          0          0     GICv3 162 Level     fdb90480.iommu
 44:          0          0          0          0          0          0          0          0     GICv3 147 Level     fdb70f00.iommu, rga3
 43:       1222          0          0          0          0          0          0          0     GICv3 146 Level     fdb60f00.iommu, rga3
 42:          0          0          0          0          0          0          0          0     GICv3 150 Level     fdb50800.iommu
 41:          0          0          0          0          0          0          0          0     GICv3 144 Level     fdab9000.iommu, fdab0000.npu
 40:          0          0          0          0          0          0          0          0     GICv3 143 Level     fdab9000.iommu, fdab0000.npu
 39:          0          0          0          0          0          0          0          0     GICv3 142 Level     fdab9000.iommu, fdab0000.npu
 38:       3057          0          0          0          0          0          0          0     GICv3 372 Level     ttyS9
 37:          2          0          0          0          0          0          0          0     GICv3 366 Level     ttyS3
 36:          0          0          0          0          0          0          0          0     GICv3 123 Level     fed10000.dma-controller
 35:          0          0          0          0          0          0          0          0     GICv3 122 Level     fed10000.dma-controller
 34:          0          0          0          0          0          0          0          0     GICv3 121 Level     fea30000.dma-controller
 33:          0          0          0          0          0          0          0          0     GICv3 120 Level     fea30000.dma-controller
 32:          1          0          0          0          0          0          0          0     GICv3 119 Level     fea10000.dma-controller
 31:    2273174          0          0          0          0          0          0          0     GICv3 118 Level     fea10000.dma-controller
 28:          0          0          0          0          0          0          0          0     GICv3 275 Level     pcie-sys
 27:          1          0          0          0          0          0          0          0     GICv3 285 Level     pcie-sys
 26:          0          0          0          0          0          0          0          0     GICv3 426 Level     rockchip_usb2phy
 25:          2          0          0          0          0          0          0          0     GICv3 424 Level     rockchip_usb2phy
 24:          2          0          0          0          0          0          0          0     GICv3 423 Level     rockchip_usb2phy
 23:          2          0          0          0          0          0          0          0     GICv3 425 Level     rockchip_usb2phy
 22:          0          0          0          0          0          0          0          0     GICv3 429 Level     rockchip_thermal
 21:          0          0          0          0          0          0          0          0     GICv3 365 Level     debug
 20:          0          0          0          0          0          0          0          0     GICv3 455 Edge      debug-signal
 14:      21689      78321     106090     127065      48761      63564      75388      31122     GICv3 321 Level     rk_timer
 13:     423658     304852     547606     507026     264759     296954     416236     193135     GICv3  26 Level     arch_timer
IPI6:         0          0          0          0          0          0          0          0       CPU wake-up interrupts
IPI5:      4567       8228       5166       4678       5349       5084       5317       4072       IRQ work interrupts
IPI4:      4757      29157      43641      52979      40314      43904      54172      41783       Timer broadcast interrupts
IPI3:         0          0          0          0          0          0          0          0       CPU stop (for crash dump) interrupts
IPI2:         0          0          0          0          0          0          0          0       CPU stop interrupts
IPI1:    157468     527368     620928     569135     579356     525558     523567     401781       Function call interrupts
IPI0:     74344      16258      38587      58367      18746      46267      45998      44710       Rescheduling interrupts
Err:          0
           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6       CPU7

其中 31 号中断号产生的比较多,但通过cpu亲和性看并没有固定绑定在cpu0上:

cat /proc/irq/31/smp_affinity
ff

需要进一步通过内核事件跟踪调试:

# 确保追踪总开关打开
echo 1 > /sys/kernel/debug/tracing/tracing_on
# 启用事件
echo 1 > /sys/kernel/debug/tracing/events/irq/tasklet_entry/enable
echo 1 > /sys/kernel/debug/tracing/events/irq/tasklet_exit/enable
# 可选:设置追踪器为 'nop' (最通用)
echo nop > /sys/kernel/debug/tracing/current_tracer

# 实时查看中断事件
cat /sys/kernel/debug/tracing/trace_pipe

# 关闭内核中断跟踪
echo 0 > /sys/kernel/debug/tracing/events/irq/tasklet_entry/enable
echo 0 > /sys/kernel/debug/tracing/events/irq/tasklet_exit/enable

通过cat /sys/kernel/debug/tracing/trace_pipe查看到有pl330_tasklet不停调度,并且是开关camera才产生,怀疑是DMA驱动模块问题,需要反馈给原厂协助分析:

     ksoftirqd/0-13      [000] ..s..   463.415594: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.425594: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.435594: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.445595: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.455596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.465596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.475594: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.485596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.495596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.505596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.515595: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.525597: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.535596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.545596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.555597: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.565596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.575596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.585596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.595596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.605596: tasklet_exit: function=pl330_tasklet
     ksoftirqd/0-13      [000] ..s..   463.615596: tasklet_exit: function=pl330_tasklet

 

posted on 2026-01-16 14:06  sheldon_blogs  阅读(2)  评论(0)    收藏  举报

导航