ARTICLE · 1219405
Linux 6.12 源码深度剖析: generic_handle_
Linux 6.12 源码深度剖析: generic_handle_
网卡一跑满,CPU 就卡在 irq_find_mapping 里。查下来是硬件中断号太稀疏,内核没走数组直查,退成了基数树查找。
128 核并发一高,跨节点读树就扯出严重的伪共享。每次内存寻址都让 CPU 流水线停顿,系统态 CPU 直接飙高。
后来发现个更绝的坑:PCIe 采集卡一插,某个核瞬间 100% 死循环。原来是电平触发被错配成了边沿触发。
正常电平中断得先屏蔽,等设备拉低再放行。错配后内核不屏蔽,设备一直给信号。CPU 刚退出中断又立刻被拉回去,直接陷入无限重入。
排查时看 /proc/interrupts,同一个 IRQ 密集冒泡且没退出空隙,基本就是风暴了。改对设备树的触发类型就能救回来。
原文Linux 6.12 源码深度剖析: generic_handle_domain_irq
作者提示: 个人观点,仅供参考
四川,2小时前,















































































