irq misc

 

 

IRQF_SHARED flag(共享中断)

多个设备共享同一个中断号,中断产生时,多个注册为同一个中断号的中断isr均被会执行:

irqreturn_t __handle_irq_event_percpu(struct irq_desc *desc, unsigned int *flags)
    for_each_action_of_desc(desc, action) {
        irqreturn_t res;

        trace_irq_handler_entry(irq, action);
        res = action->handler(irq, action->dev_id);
        trace_irq_handler_exit(irq, action, res);

 /proc/interrupts里如果一个中断号是共享中断号,则它将会有多个interrupt name

 

中断绑核

cat  /proc/irq/124/smp_affinity_list  查看绑定的CPU列表,(10进制表示)

# cat /proc/irq/124/smp_affinity_list 
0

如上表示绑定的为CPU0

cat /proc/irq/124/smp_affinity  查看绑定的CPU列表 (16进制表示)

# cat /proc/irq/124/smp_affinity
00,00000000,00000001

from: http://t.zoukankan.com/zhangmingda-p-15196363.html

sysrq c calltrace

[   62.316076][    C0] sysrq: Trigger a crash
[   62.320185][    C0] Kernel panic - not syncing: sysrq triggered crash
[   62.326621][    C0] CPU: 0 PID: 0 Comm: swapper/0 Tainted: P        WC O      5.4.190-g134f73573a27-dirty-ab31 #1
[   62.336865][    C0] Hardware name: xxx (DT)
[   62.342083][    C0] Call trace:
[   62.345231][    C0]  dump_backtrace.cfi_jt+0x0/0x4
[   62.350022][    C0]  show_stack+0x18/0x24
[   62.354028][    C0]  dump_stack+0xb0/0x10c
[   62.358121][    C0]  panic+0x160/0x3f0
[   62.361868][    C0]  trace_android_vh_sysrq_crash+0x0/0xfc
[   62.367346][    C0]  __handle_sysrq+0x180/0x1d0
[   62.371877][    C0]  handle_sysrq+0x2c/0x38
[   62.376062][    C0]  mtk8250_dtv_handle_irq+0x134/0x2f8
[   62.381282][    C0]  serial8250_interrupt+0x78/0x104
[   62.386242][    C0]  __handle_irq_event_percpu+0x9c/0x35c
[   62.391632][    C0]  handle_irq_event+0x60/0xd8
[   62.396156][    C0]  handle_fasteoi_irq+0x128/0x32c
[   62.401026][    C0]  __handle_domain_irq+0xa0/0x100
[   62.405895][    C0]  gic_handle_irq+0x64/0x11c
[   62.410332][    C0]  el1_irq+0x104/0x200
[   62.414248][    C0]  arch_cpu_idle+0x38/0x5c
[   62.414256][    C0]  do_idle.llvm.1476283332528302224+0x104/0x298
[   62.433974][    C0]  cpu_startup_entry+0x24/0x28
[   62.438587][    C0]  kernel_init+0x0/0x2c0
[   62.442679][    C0]  start_kernel+0x0/0x460
[   62.446855][    C0]  start_kernel+0x3e8/0x460
[   62.451209][    C0] SMP: stopping secondary CPUs
[   62.465287][    C0] Kernel Offset: disabled
[   62.469466][    C0] CPU features: 0x00030002,20082008
[   62.474507][    C0] Memory Limit: none

 

posted @ 2022-11-30 19:16  aspirs  阅读(101)  评论(0编辑  收藏  举报