前提,某个车载嵌入式开发项目,开发板是双核的。系统是ubuntu 4.6
我通过查看文件/proc/interrupts 发现,所有的中断都在CPU0上被处理!
又通过查看每个中断号对应的/proc/irq/中断号/smp ffinity文件,发现该文件内定义的是“3“也就是说双核CPU都可以处理中断。
我的问题是,为什么所有中断都在CPU0上被处理?
该开发板没有实装irqbalance,难道是irqbalance的影响?
前提,某个车载嵌入式开发项目,开发板是双核的。系统是ubuntu 4.6
我通过查看文件/proc/interrupts 发现,所有的中断都在CPU0上被处理!
又通过查看每个中断号对应的/proc/irq/中断号/smp ffinity文件,发现该文件内定义的是“3“也就是说双核CPU都可以处理中断。
我的问题是,为什么所有中断都在CPU0上被处理?
该开发板没有实装irqbalance,难道是irqbalance的影响?
的确,对于arm来说,默认中断都会路由到cpu0处理,因为各家soc厂商都会有降功耗的操作,比如动态开关核,idle等,因此目前linux中,大部分中断都在cpu0上处理,当然linux也提供了接口给userspace使用,这就是通过irqbalance来实现中断在各个cpu分配的