mordorwww 发表于 2016-04-16 21:13

内核线程能调用 tasklet_schedule么

现在内核发展到4.5.x了,软中断和tasklet能在内核线程里schedule么?

zhanglong71 发表于 2016-04-17 14:12

随便说几句:
1. 中断处理的全部过程分成了前半部(CPU关中断)和后半部(CPU开中断)
2.“软中断”和“tasklet”是中断处理的后半部分,本质是响应中断事件,应尽快的完成。
3. 调用tasklet_schedule,是为了启动tasklet,处理未完成的中断事件。

内核线程为什么目的调用tasklet_schedule, 而启动中断处理事件?
如果在响应中断时**内核线程,再由内核线程调用tasklet_schedule启动后半部的处理,这个流程是否会影响效率?

或许没弄明白LZ的问题!

mordorwww 发表于 2016-04-18 08:56

zhanglong71 发表于 2016-04-17 14:12 static/image/common/back.gif
随便说几句:
1. 中断处理的全部过程分成了前半部(CPU关中断)和后半部(CPU开中断)
2.“软中断”和“taskl ...

网卡收包函数是在工作队列里的,怎么调度到软中断?

nswcfd 发表于 2016-04-18 11:41

楼主是不是在问,新内核是不是把所有的后半部处理都放到某些内核线程中了?

mordorwww 发表于 2016-04-18 14:29

nswcfd 发表于 2016-04-18 11:41 static/image/common/back.gif
楼主是不是在问,新内核是不是把所有的后半部处理都放到某些内核线程中了?

差不多

zhanglong71 发表于 2016-04-18 23:56

回复 3# mordorwww

    工作队列"由内核线程执行的, 可用于处理中断的后半部. 没必要转到软中断!"

   除了代码, LZ的问题可从Unix/Linux接口“提供机制而不是策略”中找到一点端倪.
页: [1]
查看完整版本: 内核线程能调用 tasklet_schedule么