工作队列(work queue)是另外一种将工作推后执行的形式,它和tasklet有所不同。工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。这样,通过工作队列执行的代码能占尽进程上下文的所有优势。最重要的就是工作队列允许被重新调度甚至是睡眠。 那么,什么 ...
分类:
系统相关 时间:
2017-07-29 20:49:26
阅读次数:
215
本文乃fireaxe原创,使用GPL发布,可以自由拷贝,转载。但转载请保持文档的完整性,并注明原作者及原链接。内容可任意使用,但对因使用该内容引起的后果不做任何保证。 作者:fireaxe_hq@hotmail.com 博客:fireaxe.blog.chinaunix.net Tasklet作为一 ...
分类:
系统相关 时间:
2017-07-14 14:56:39
阅读次数:
143
今天看了下tasklet,重点分析了其和软中断的关系,特此记录 关于软中断,在之前的中断文章中已经有所介绍,这里就不多说了,只是说明下,系统中默认支持32种软中断,而实际上系统定义的软中断仅有以下几种。 实际上并没有什么关系,只有中枢的内核代码才使用软中断,而如果用户想要使用这种方式,直接使用软中断 ...
分类:
其他好文 时间:
2017-05-06 21:50:15
阅读次数:
197
转自:http://www.cnblogs.com/li-hao/archive/2012/01/12/2321084.html 软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下半部的机制实际上包括五种,但 ...
分类:
系统相关 时间:
2017-01-22 23:33:44
阅读次数:
349
2.4.4.4 外部函数 1. tasklet_hrtimer_start ( ) 函数原型: static inline int tasklet_hrtimer_start(struct tasklet_hrtimer *ttimer, ktime_t time, const enum hrtim ...
分类:
系统相关 时间:
2017-01-20 11:14:06
阅读次数:
224
中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失。因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。例如,假设一个数 ...
分类:
系统相关 时间:
2017-01-19 01:30:24
阅读次数:
282
Tasklet作为一种新机制,显然可以承担更多的优点。正好这时候SMP越来越火了,因此又在tasklet中加入了SMP机制,保证同种中断只能在一个cpu上执行。在软中断时代,显然没有这种考虑。因此同一种中断可以在两个cpu上同时执行,很可能造成冲突。 Linux中断下半部处理有三种方式:软中断、ta ...
分类:
系统相关 时间:
2016-12-28 14:59:48
阅读次数:
181
转自:http://blog.chinaunix.net/uid-24148050-id-296982.html 一、workqueue简介workqueue与tasklet类似,都是允许内核代码请求某个函数在将来的时间被调用(抄《ldd3》上的)每个workqueue就是一个内核进程。 workq ...
分类:
系统相关 时间:
2016-11-02 01:30:38
阅读次数:
361
转自:http://blog.chinaunix.net/uid-20382483-id-4077101.html tasklet Workqueue 处于atomic context,不能sleep 不处于atomic context,可以sleep 处于中断上下文,OS不可以进行进程调度 处于进 ...
分类:
其他好文 时间:
2016-11-02 01:24:11
阅读次数:
108
[TOC]
本文基于Linux2.6.32内核版本。引言软中断、tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来。下...
分类:
系统相关 时间:
2016-10-30 17:12:16
阅读次数:
332