![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux源代码阅读
whoami_I
这个作者很懒,什么都没留下…
展开
-
preempt_count
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/longwang155069/article/details/52449138 </div> <link rel=&转载 2019-02-20 10:57:16 · 207 阅读 · 0 评论 -
tasklet
tasklet是一种软中断,是基于softirq的基础演变而来的,但是由于资源的限制,softirq是在内核里面预定义好的,无法改变其种类,若要改变的话,就要修改内核代码,这对于驱动开发来说不是很合适.因此基于softirq发展出的tasklet来动态的改变中断的种类,这些中断使用链表连接起来,一旦发生了TASKLET_SOFTIRQ中断(tasklet对应的软中断类型),就按照链表的顺序依次全部...原创 2019-02-20 15:30:45 · 1124 阅读 · 0 评论 -
workqueue
workqueue相对于softirq和tasklet,最大的不同点是workqueue是运行于用户空间,因此可以执行“会睡眠的函数”,tasklet就不行了,因为tasklet处于中断上下文,中断上下文是不允许发生调度的. 理解workqueue的关键是三个结构体 //这个结构体是每个CPU都有的 struct cpu_workqueue_struct { spinlock_t lock; ...原创 2019-02-20 18:07:56 · 165 阅读 · 0 评论 -
自定义一个softirq
本文章添加自己定义一个额外的软中断 首先添加软中断种类:MY_SOFTIRQ enum { HI_SOFTIRQ=0, TIMER_SOFTIRQ, NET_TX_SOFTIRQ, NET_RX_SOFTIRQ, BLOCK_SOFTIRQ, BLOCK_IOPOLL_SOFTIRQ, TASKLET_SOFTIRQ, SCHED_SOFTIRQ, HRTIMER_SOFTIRQ...原创 2019-02-20 22:21:09 · 339 阅读 · 0 评论