Linux 内核软中断(softirq)执行分析
Linux 内核软中断(softirq)执行分析
Author: sinister
Email: sinister@whitecell.org
Homepage:http://www.whitecell.org
Date: 2007-01-11
本文对 Linux 内核软中断的执行流程进行了分析,并尽可能的结合当前运
行环境详细地写出我的理解,但这并不表明我的理解一定正确。这本是论坛
里的一篇帖子,发出来是为了抛砖引玉,如果您在阅读本文时发现了我的错
误,还望得到您的指正。
今天无意中看了眼 2.6 内核的软中断实现,发现和以前我看到的大不相同
(以前也是走马观花,不大仔细),可以说改动很大。连 softirq 的调用
点都不一样了,以前是三个调用点,今天搜索了一下源代码,发现在多出了
ksoftirqd 后,softirq 在系统中的调用点仅是在 ISR 返回时和使用了
local_bh_enable() 函数后被调用了。网卡部分的显示调用,我觉得应该不
算是系统中的调用点。ksoftirqd 返回去调用 do_softirq() 函数应该也只
能算是其中的一个分支,因为其本身从源头上来讲也还是在 ISR 返回时
irq_exit() 调用的。这样一来就和前些日子写的那份笔记(Windows/Linux
/Solaris 软中断机制)里介绍的 Linux 内核部分的软中断有出处了,看来
以后讨论 Linux kernel 代码一定要以内核版本为前题,要不非乱了不可。
得买本 Linux 方面的书了,每次上来直接看相关代码也不是回事,时间也
不允许。
//
// do_IRQ 函数执行完硬件 ISR 后退出时调用此函数。
//
void irq_exit(void)
{
account_system_vtime(current);
trace_hardirq_exit();
sub_preempt_count(IRQ_EXIT_OFFSET);
//
// 判断当前是否有硬件中断嵌套,并且是否有软中断在
// pending 状态,注意:这里只有两个条件同时满足
// 时,才有可能调用 do_softirq() 进入软中断。也就是
// 说确认当前所有硬件中断处理完成,且有硬件中断安装了
// 软中断处理时理时才会进入。
//
if (!in_interrupt() && local_softirq_pend
相关文档:
0 鸟哥的Linux私房菜
1 GNU\Linux编程指南
2 Linux设备驱动开发详解.pdf
3 深入理解linux内核.pdf
4 Linux_内核完全注释_V11.pdf or Linux_内核注释.pdf
5 LINUX内核源代码情景分析\scene(上).pdf and scene(下).pdf
目前已经到Linux设备驱动开发详解.pdf了,而且编译升级内核已经成功,初步编写了简单的模块。 ......
如何开启关闭linux防火墙
重启后生效
开启:chkconfig iptables on
关闭:chkconfig iptables off
即时生效,重启后失效
开启:service iptables start
关闭:service iptables stop
或
关闭: /etc/rc.d/init.d/iptables stop
启动: /etc/rc.d/init.d/ip ......
文本界面下,红帽用蓝色作为ls的目录的颜色,配合他的黑色背景,感觉太暗了,看不清。
改成别的颜色的方法:
首先,
# vi
/etc/DIR_COLORS
内的设定“DIR 01;34”,为ls命令的目录的颜色设置,01表示粗体,34表示字体蓝色。
我把它
改成了“DIR 01;37;44”,37是字体白色,44是字背景蓝色, ......
当我们需要某个文件或目录时,而又不知道该文件放在什么地方,怎么办?
在windows下面,可以通过“搜索”功能进行查找,而在linux下,同样有相同的功能:
which 查看可执行文件的位置
whereis 查看文件的位置
locate &n ......
一、引子
前段时间看到了apple公司发布了iphone os4.0的预览视频,iphone终于打算支持多任务了,尤其是对于预览视频中的skype软件的展示让人印象深刻。
一般来说,想做一名正规的iphone应用开发者应当至少准备三件事情:
(1)一台apple的电脑
可以是mac book或者mac mini,国内比较“节俭”的公司大都选 ......