看博客有写到:一个软中断不会去抢占另一个软中断。 个人理解如下:《linux内核设计与实现》中提到,如果软中断存在共享数据,那么需要进行加锁保护,因为同类型的软中断可以同时在不同的CPU下运行。所以,一个软中断不会去抢占另一个软中断,这句话的是在一个CPU上吧? 以下内容为个人猜想,不对的地方还请指正。假设硬件中断频繁发生,那么就会挤压了多个下半部(tasklet)在等待处理,这些tasklet应该是以队列的形...
by yandongxiao - 内核源码 - 2014-03-29 22:52:00 阅读(2354) 回复(12)
看博客有写到:一个软中断不会去抢占另一个软中断。 个人理解如下:《linux内核设计与实现》中提到,如果软中断存在共享数据,那么需要进行加锁保护,因为同类型的软中断可以同时在不同的CPU下运行。所以,一个软中断不会去抢占另一个软中断,这句话的是在一个CPU上吧? 以下内容为个人猜想,不对的地方还请指正。假设硬件中断频繁发生,那么就会挤压了多个下半部(tasklet)在等待处理,这些tasklet应该是以...
在do_softirq函数中有这么一段: local_irq_save(flags); pending=local_softirq_pending(); if(pending) __do_softirq(); local_irq_restore(flags); 也就是说,进行下半部处理的时候,本CPU这个时候是关闭中断的?
中断服务下半部之七姑八姨 Sailor_forever [email=sailing_9806@163.com]sailing_9806@163.com[/email] 转载请注明 http://blog.csdn.net/sailor_8318/archive/2008/07/13/2645131.aspx 【摘要】本文分析了中断服务下半部存在的必要性,接着介绍了上下半部的分配原则,最后分析了各种下半部机制的历史渊源,简单介绍了各种机制的特点。 【关键字】下半部,bottom half,BH,tasklet,softirq,工作队列,内核定时器 1 ...
6.1下半部 下半部的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。对于在上半部和下半部之间划分工作,尽管不存在某种严格的规则,但还是有一些提示可供借鉴:(1)如果一个任务对时间非常敏感,将其放在中断处理程序中执行。(2)如果一个任务和硬件相关,将其放在中断处理程序中执行。(3)如果一个任务要保证不被其它中断打断,将其放在中断处理程序中执行。(4)其它所有任务,考虑放在下半部执行。当我们开...
linux设备驱动归纳总结(六):3.中断的上半部和下半部——工作队列
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx...
7.1 下半部 下半部的任务就是执行与中断处理密切相关但中断处理程序本身不执行的工作。对于在上半部和下半部之间划分工作,尽管不存在某种严格的规则,但还是有一些提示可供借鉴:(1)如果一个任务对时间非常敏感,将其放在中断处理程序中执行。(2)如果一个任务和硬件相关,将其放在中断处理程序中执行。(3)如果一个任务要保证不被其它中断打断,将其放在中断处理程序中执行。(4)其它所有任务,考虑放在下半部执行。...
【摘要】本文详解了中断服务下半部之tasklet实现机制。介绍了tasklet链表的组织形式tasklet_vec,在此基础之上分析了tasklet执行流程。最后介绍了tasklet相关的API,如何编写自己的tasklet处理程序及定义一个tasklet对象并向内核提交等待调度运行。 【关键字】中断下半部,tasklet,tasklet_vec,tasklet_schedule,TASKLET_SOFTIRQ 1 tasklet概述 tasklet是利用软中断实现的一种下半部机制。tasklet和软中断在本质上很相...
【摘要】本文详解了中断服务下半部之工作队列实现机制。介绍了工作队列的特点、其与tasklet和softirq的区别以及其使用场合。接着分析了工作队列的三种数据结构的组织形式,在此基础之上分析了工作队列执行流程。最后介绍了工作队列相关的API,如何编写自己的工作队列处理程序及定义一个work对象并向内核提交等待调度运行。 【关键字】中断下半部,工作队列,workqueue_struct,work_struct,DECLARE_WORK,schedule_work,schedu...
【摘要】本文详解了中断服务下半部机制的基础softirq。首先介绍了其数据结构,分析了softirq的执行时机及流程。接着介绍了软中断的API及如何添加自己的软中断程序,注册及其触发。最后了介绍了用于处理过多软中断的内核线程ksoftirqd,分析了触发ksoftirqd的原则及其执行流程。 【关键字】中断服务下半部,软中断softirq,softirq_action,open_softirq(),raise_softirq,ksoftirqd 1 软中断结构softirq_action. 1 2 ...