扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
前几天把硬中断完成了,这几天在做软中断的事情。现在对linux2.6.12的软中断机制有了一个基本的认识。在此把它的软中断的一些问题做一个记录。
系统中有一个softirq_action结构,它定义在中,是一个通用结构,还有一个很重要的结构在中申明,这个结构是cpu相关的,比如在i386中这个结构为
|
在arm中这个结构为
|
以上两个结构均再中。
在中有几个很不好理解的函数:
|
下面是这个函数的定义
|
其中的smp_processor_id()如果追下去会很复杂,其实它最后只是一个数字:cpu的号码,单cpu中为0.
|
这个函数实际上是把irq_stat[cpu_id](kernel/softirq.c中)结构中的pending的第nr为置位,表示这个cpu有几号软中断要处理,在do_softirq()中有对irq_stat[]的pending的相应检查及处理,详细的处理过程参见源代码及《Linux Kernel Development》第7章。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者