1)概要

__do_softirq函数处理是总是尽可能的执行所有未决软中断。
(1)关闭软中断:在preempt_count设置软中断标志:SOFTIRQ_OFFSET
让in_interrupt检查条件为真,进入软中断处理临界区,后面进来的处理请求,需要检查in_interrupt(),从而达到禁止本cpu上的软中断嵌套的目的。此时是在关硬中断的情况下,获得本cpu的local_softirq_pending()存储到局部变量
(2) 开始第一层循环:
本文详细介绍了Linux内核中处理软中断的核心函数__do_softirq,包括关闭软中断、处理未决软中断的过程,以及对时间和次数的限制。文章探讨了为何设置这些限制,以确保软中断的及时处理且不长时间占用CPU资源。同时,提到了内存水位和中断处理小尾巴的设计考虑,揭示了Linux内核在实时性和效率之间的平衡策略。
1)概要

__do_softirq函数处理是总是尽可能的执行所有未决软中断。
(1)关闭软中断:在preempt_count设置软中断标志:SOFTIRQ_OFFSET
让in_interrupt检查条件为真,进入软中断处理临界区,后面进来的处理请求,需要检查in_interrupt(),从而达到禁止本cpu上的软中断嵌套的目的。此时是在关硬中断的情况下,获得本cpu的local_softirq_pending()存储到局部变量
(2) 开始第一层循环:
1503
394

被折叠的 条评论
为什么被折叠?