+ -
当前位置:首页 → 问答吧 → 内核软中断有关问题

内核软中断有关问题

时间:2011-11-02

来源:互联网

刚看了《内核设计与实现》一书,发现软中断的有关实现中用到的结构体softirq_action有所变化,其中没有了数据data这一项。不知道现在版本中的参数怎么传给函数。

作者: hncomputer   发布时间: 2011-11-02

看看container_of吧,可以实现的。

作者: ezword   发布时间: 2011-11-02

到内核源码里去搜open_softirq,使用open_softirq注册的软中断处理函数,都是用__get_cpu_var 来获得参数

因为软中断没有自旋锁保护,在smp下为了保护软中断处理函数是可重入的,所以使用percpu变量。
现在内核不相信模块驱动能满足这个条件,所以内核只在启动时创建softirq以及需要的percpu变量,运行时不能再动态创建软中断。
所以现在写驱动只能使用tasklet或work queue这些底半部机制。

作者: deep_pro   发布时间: 2011-11-02