社区
Linux_Kernel
帖子详情
关于linux工作队列和软中断的一些区别疑问
yuanchen9663
2016-05-22 12:24:05
我看linux内核设计与实现关于linux工作队列和软中断有一些疑问,软中断会在ksoftirqd中检查和执行,ksoftirqd是一个内核线程,而工作队列里面也是任务交给一个内核线程(默认是event),那请问这有什么区别?还有一点是:在ksoftirqd中调用do_softirq函数,此时应该是运行在进程上下文吧?感觉跟工作队列很像。
...全文
1200
3
打赏
收藏
关于linux工作队列和软中断的一些区别疑问
我看linux内核设计与实现关于linux工作队列和软中断有一些疑问,软中断会在ksoftirqd中检查和执行,ksoftirqd是一个内核线程,而工作队列里面也是任务交给一个内核线程(默认是event),那请问这有什么区别?还有一点是:在ksoftirqd中调用do_softirq函数,此时应该是运行在进程上下文吧?感觉跟工作队列很像。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weifenghai
2016-10-14
打赏
举报
回复
软中断正常情况下是在中断上下文中处理的,如中断处理程序返回时,只有当软中断过多时,才在软中断处理程序中激活ksoftirqd内核线程处理。linux的策略是中断的的后半部能及时处理就及时处理,不放到后半部去,这个及时处理的条件是处理软中断时软中断循环计数器递减到0(初值为10),即循环处理待处理软中断10次。这时对后半部的处理是在中断上下文中。如果不能及时处理,放到后半部去,这个时候由内核线程处理,处于进程上下文
Sky-yxxy
2016-10-13
打赏
举报
回复
同问,为什么软中断是在中断上下文中执行
yuanchen9663
2016-05-22
打赏
举报
回复
请大手解决一下,纠结有段时间了
软中断
、tasklet、
工作
队列
的
疑问
软中断
tasklet。
linux
中断子系统 -
工作
队列
工作
队列
(workqueue)是在 2.6 版本引用的下半部机制,相对于 tasklet 和
软中断
而言,
工作
队列
有一个本质上的
区别
:它运行在内核线程上下文中。而tasklet 和
软中断
只能在中断上下文中运行(特殊情况下可能运行在内核线程上下文),不支持睡眠和调度,这对某些阻塞式和需要同步执行的任务是不友好的,比如磁盘的访问。尽管
工作
队列
可以运行在进程上下文,但是它并不和任何用户进程相关联,它也不能访问任何用户程序空间,因为
工作
队列
是由内核线程执行的,它只会运行在内核中。
Linux
软中断
机制分析
软中断
分析 最近
工作
繁忙,没有时间总结内核相关的一些东西。上次更新博客到了
linux
内核中断子系统。这次总结一下
软中断
,也就是softirq。之后还会总结一些tasklet、
工作
队列
机制。 1. 为什么要
软中断
编写驱动的时候,一个中断产生之后,内核在中断处理函数中可能需要完成很多
工作
。但是中断处理函数的处理是关闭了中断的。也就是说在响应中断时,系统不能再次响应外部的其它中断...
linux
软中断
机制分析
转自:点击打开链接
软中断
分析最近
工作
繁忙,没有时间总结内核相关的一些东西。上次更新博客到了
linux
内核中断子系统。这次总结一下
软中断
,也就是softirq。之后还会总结一些tasklet、
工作
队列
机制。http://alloysystem.blog.chinaunix.netAndy.yx.deng#gmail.com(#->@)1. 为什么要
软中断
编写驱动的时候,一个中断产生之后,内核在...
Linux
驱动中断和定时器
Linux
驱动中断和定时器一文搞定 中断顶半部,底半部机制,硬件中断,
软中断
,Tasklet,
工作
队列
,jiffies,定时器
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章