免费注册 查看新帖 |

Chinaunix

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

关于work queue与softirq的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-13 16:58 |只看该作者 |倒序浏览
我正在看LKD2,里面有这么一句:works queues are the only bottom-half mechanisms that run in process context,但是如果softirq在ksoftirqd中运行的话,不是也是在进程上下文中吗?

请高手指点一下

论坛徽章:
0
2 [报告]
发表于 2006-03-13 17:10 |只看该作者
softirq如果被softirqd调用,那就不在process context, 而是在softirqd的状态中. 如果被硬件中断直接调用, 那就是是在中断所在的状态

论坛徽章:
0
3 [报告]
发表于 2006-03-13 17:16 |只看该作者
那也就是说interrupt context还分为两种上下文状态:软中断和硬中断

我理解的对吗?

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:53:17
4 [报告]
发表于 2006-03-13 17:53 |只看该作者

回复 3楼 drizztzou 的帖子

不对, 再看看代码吧。

我们不可以假定说某个softirq会在softirqd中执行, 而一定要保证: 我写的softirq handler在中断上下文执行不会出错。

论坛徽章:
0
5 [报告]
发表于 2006-03-13 17:56 |只看该作者
原帖由 drizztzou 于 2006-3-13 16:58 发表
我正在看LKD2,里面有这么一句:works queues are the only bottom-half mechanisms that run in process context,但是如果softirq在ksoftirqd中运行的话,不是也是在进程上下文中吗?

请高手指点一下


ksoftirqd是内核线程,不属于进程上下文的范畴。

论坛徽章:
0
6 [报告]
发表于 2006-03-13 18:01 |只看该作者
原帖由 drizztzou 于 2006-3-13 17:16 发表
那也就是说interrupt context还分为两种上下文状态:软中断和硬中断

我理解的对吗?


中断上下文分为上半部和下半部,下半部包括软中断,tasklet,work queue

[ 本帖最后由 richardhesidu 于 2006-3-13 20:03 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2006-03-13 18:23 |只看该作者
softirq和tasklet应该是在中断上下文中吧,不能睡眠,work queue是跑在内核线程里的,可以睡眠,那么ksoftirqd调用的do_softirq应该是什么状态呢?

[ 本帖最后由 通用寄存器 于 2006-3-13 18:43 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2006-03-14 09:52 |只看该作者
原帖由 richardhesidu 于 2006-3-13 17:56 发表


ksoftirqd是内核线程,不属于进程上下文的范畴。


内核线程不属于进程上下文范畴?那属于什么范畴?

论坛徽章:
0
9 [报告]
发表于 2006-03-14 10:01 |只看该作者
ksoftirqd也算是process context, 可以睡眠。 可是除非softirq重复触发, 否则在interrupt conetxt中就处理完了, 不用唤起ksoftirqd来处理。

所以尽管softirq有可能在process context执行, 我们还是要保证它在interrupt context中不会出错。

论坛徽章:
0
10 [报告]
发表于 2006-03-14 10:07 |只看该作者
原帖由 albcamus 于 2006-3-14 10:01 发表
ksoftirqd也算是process context, 可以睡眠。 可是除非softirq重复触发, 否则在interrupt conetxt中就处理完了, 不用唤起ksoftirqd来处理。

所以尽管softirq有可能在process context执行, 我们还是要保证 ...


呵呵,懂了~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP