免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3164 | 回复: 7
打印 上一主题 下一主题

中断中的tasklet疑问? [复制链接]

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:57:09C
日期:2016-10-25 16:17:59
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-03-02 21:16 |只看该作者 |倒序浏览
当通过request_irq申请到中断通道后,如果发生了中断,那么中断的上半部响应中断,在其后的某个时间内会调用当前处理器上的tasklet,我想问下:

1.中断例程是怎么添加到tasklet上的?内核会做的,还是要驱动程序里做的?

2.对上面的问题,我自己臆想了一种情况:就是在申请中断号前,就调用了tasklet_init来初始化,也即tasklet里面的任务是中断处理例程,如果是这样的话,要是设备要响应多个不同中断中断,是不是需要相应数目的tasklet???



求解中,请达人解惑下,谢谢!

论坛徽章:
0
2 [报告]
发表于 2011-03-03 00:35 |只看该作者
可以找个驱动自己看看。比如 RTL8139 OR INTEL E1000

论坛徽章:
0
3 [报告]
发表于 2011-03-06 09:20 |只看该作者
中断上半部主要是响应中断,处理一些紧急事务,将一些繁琐的事件交给下半部来处理,即tasklet。当上班部响应中断时,在处理例程中激活tasklet,tasklet的执行是在将来某个安全时刻,多次调用tasklet不会被重复执行,只有当一次tasklet执行完后才会执行下一次。

论坛徽章:
0
4 [报告]
发表于 2011-03-07 09:35 |只看该作者
其实在下半部中断时,有3种处理方式,softirq,tasklet和workqueue。看你怎么选择了,不一定要用tasklet。
如果是tasklet的话,它的操作必须是原子的,既不能备打断,而且只能在一个cpu上运行。

论坛徽章:
0
5 [报告]
发表于 2011-03-07 16:57 |只看该作者
1,在驱动的中断中标记,由中断退出时执行,一般运行于中断上下文。
2,应该是的吧,代码上至少是这样的。

论坛徽章:
0
6 [报告]
发表于 2011-03-09 09:02 |只看该作者
1.是初始化时注册了处理例程,调度tasklet后相应例程会被执行,注意是在软中断上下文中执行。

2。同一个CPU的tasklet处理例程会被顺次执行。

论坛徽章:
0
7 [报告]
发表于 2011-03-09 09:35 |只看该作者
不太懂,学习之

论坛徽章:
0
8 [报告]
发表于 2011-03-11 09:06 |只看该作者
回复 1# shaohui973


    哥也正在学习啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP