从零开始理解Linux中断架构(22)软中断处理框架

内核专门为软中断建立了内核线程(ksoftirqd)来处理软中断事务。

        在 smpboot.c中,设计一个hotplug thread线程框架,集中管理boot_threads的启动。软中断的内核处理线程ksoftirqd就只依托这个线程框架建立的。

从零开始理解Linux中断架构(22)软中断处理框架_第1张图片

        软中断处理线程的代码都在kernel/softirq.c,在内核初始化时(kenel_init),spawn_ksoftirqd根据softirq_threads描述,为每个CPU建立ksoftirqd/x软中断线程。ksoftirqd内核线程专门处理软中断事务。

        ksoftirq需要检查未决中断标志(local_softirq_pengding),如果没有需要处理的未决软中断,会调用schedule()释放CPU控制权。如果有未决中断,调用__do_softirq处理相应的软中断。

你可能感兴趣的:(Linux中断系统,架构,软中断处理架构)