关于软中断代码阅读的疑惑
我在阅读内核代码的时候对这段很是不理解,谢谢大家帮忙指点一下!
内核在调用do_IRQ()中执行一个通道的中断服务程序以后,最后要执行do_softirq()函数,其中的函数执行体是 :
.......
h = softirq_vec;
......
do {
if (active & 1)
h -> action(h);
h++;
active>>1;
} while(active)
......
而在BH机制中的执行体为 bh_task_vec 中的 bh_action(),问题就是在do_softirq中怎么没有涉及到bh_task_vec的操作呢?
谢谢帮忙指导!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是啊,汗......
都是不仔细看代码惹的祸!
softirq --> tasklet --> bh
tasklet_action --> bh_action --> static void (*bh_base[32])(void);
tasklet_hi_action