lock+state/count是用来保证单个t不会并发执行的。 文中的类型不是指tasklet/tasklet_hi这两种类型(它们对应两个优先级不同的softirq),而是指后者(不同的tasklet对象)。
楼主说的不错,不同的tasklet关联同样的function,这些function是有可能同时运行的。
不过这不是“相同类型的tasklet是被串行地执行”的本意。
并发执行的function在不同的tasklet里,没有破坏同一个tasklet不并发执行的约束。 :)
同样的可以类比timer。
针对同一个timer,在不同core上反复调用mod_timer,timer的内部实现保证timer的callback最终只会在单个core上执行。
类似的,针对多个timer,使用同一的callback,在不同core上分别激活,那么这个callback就有可能在不同core上一起执行,但是源自不同的timer。
页:
[1]