Linux软中断ksoftirqd】的更多相关文章

本文转载自: http://blog.chinaunix.net/uid-9620812-id-3833377.html,如有需要,请移步访问. Technorati 标签: Linux 软中断 ---------------------------------------我是分割线---------------------------------------- 一.软中断注册 和硬中断类似,软中断也有类似的中断向量表,只不过是用"软件"实现的. struct softirq_acti…
linux软中断与硬中断实现原理概述. 1.软中断通过open_softirq注册一个软中断处理函数,即在软中断向量表softirq_vec数组中添加新的软中断处理action函数. 2.调用raised_softirq软中断触发函数,即把软中断标记为挂起状态. 内核会在一些位置检查是否有挂起状态的软中断,如果有的话会调用do_softirq函数来执行软中断处理函数. 3.do_softirq函数做的一个重要的工作是切换到软中断请求栈.切换到软中断请求栈就代表了此时已经处于了软中断上下文中了.…
1.什么是中断 中断是系统用来响应硬件设备请求的一种机制,它会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求. 2.为什么要有中断呢? "举个生活中的例子" 比如说你订了一份外卖,但是不确定外卖什么时候送到,也没有别的方法了解外卖的进度,但是,配送员送外卖是不等人的,到了你这儿没人取的话,就直接走人了.所以你只能苦苦等着,时不时去门口看看外卖送到没,而不能干其他事情. 不过呢,如果在订外卖的时候,你就跟配送员约定好,让他送到后给你打个电话,那你就不用苦苦等待了,…
Linux内核中的软中断.tasklet和工作队列详解 引言 软中断.tasklet和工作队列并不是Linux内核中一直存在的机制,而是由更早版本的内核中的“下半部”(bottom half)演变而来.下半部的机制实际上包括五种,但2.6版本的内核中,下半部和任务队列的函数都消失了,只剩下了前三者. 介绍这三种下半部实现之前,有必要说一下上半部与下半部的区别. 上半部指的是中断处理程序,下半部则指的是一些虽然与中断有相关性但是可以延后执行的任务.举个例子:在网络传输中,网卡接收到数据包这个事件不…
案例如下: 发现cpu0上的软中断高达50%…
目录 . 引言 . Linux 中断的概念 . 中断处理流程 . Linux 中断相关的源代码分析 . Linux 硬件中断 . Linux 软中断 . 中断优先级 . CPU在关中断状态下编程要注意的事项 0. 引言 中断是现代计算机体系结构的重要组成部分,我们回顾历史,现代体系结构的基本输入输出方式有三种 . 程序查询: CPU周期性询问外部设备是否准备就绪.该方式的明显的缺点就是浪费CPU资源,效率低下.但是在特定的场景下这种"程序查询"的方式还有有它的用武之地的 例如,在网络驱…
CPU和外设之间的交互,或CPU通过轮询机制查询,或外设通过中断机制主动上报. 对大部分外设中断比轮询效率高,但比如网卡驱动采取轮询比中断效率高. 这里重点关注ARM+Linux组合下中断管理,从底层硬件GIC+CPU,到Linux内核通用部分处理,再到GIC驱动以及中断注册,最后是中断下半部软终端.tasklet.workqueue,包括线程化部分. 所以按照从硬件到软件,软件从底层到上层的框架去介绍. 0. 目录 <Linux中断管理> <Linux中断管理 (1)Linux中断管理…
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, 驱动开发中设计到的硬件: * 数字电路知识 * ARM硬件知识 * 熟练使用万用表和示波器 * 看懂芯片手册和原理图 4, linux内核源代码目录结构: * arch/: arch子目录包括了所有和体系结构相关的核心代码.它的每一个子目录都代表一种支持的体系结构,例如i386就是关于intel c…
转自:https://blog.csdn.net/ezimu/article/details/54851148 概述: 等待队列.工作队列.Tasklet都是linux驱动很重要的API,下面主要从用法上来讲述如何使用API. 应用场景: 等待队列(waitqueue) linux驱动中,阻塞一般就是用等待队列来实现,将进程停止在此处并睡眠下,直到条件满足时,才可通过此处,继续运行.在睡眠等待期间,wake up时,唤起来检查条件,条件满足解除阻塞,不满足继续睡下去. 工作队列(workqueu…
平均负载 指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,即平均活跃进程数 可运行状态:正在使用CPU或者正在等待CPU 的进程,也就是我们常用 ps 命令看到的,处于 R 状态 (Running 或者 Runnable)的进程 不可中断状态:正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应,也就是我们在 ps 命令中看到的 D 状态 (Uninterruptible Sleep, 也称为 Disk Sleep )的进程 平均负载为多…