发布时间:2012-12-27 11:17:59
中断栈与内核栈的话题更多地属于内核的范畴,所以在《深入Linux设备驱动程序内核机制》第5章“中断处理”当中,基本上没怎么涉及到上述内容,只是在5.4节有些许的文字讨论中断栈在中断嵌套情形下可能的溢出问题。本贴在这个基础上对内核栈与中断栈的话题做些补充,讨论基于x86 32位系统,因为64位系统下Linux内核关于栈的支持原理上是相同的,不过也有些特性属于64位特有的,比如IST(Interrupt Stack Table),如果可能将来会在processor版块发个帖子专门讨论。1. x86下内核栈与中断栈是否共享的问题我们知道Linux系统下每个用户进程都有个task_struct对象来表......【阅读全文】
发布时间:2012-12-27 11:09:32
今天在ChinaUnix论坛内核源码版上与linuxfellow网友讨论到hardirq和softirq的问题,虽 然在《深入Linux设备驱动程序内核机制》(以下简称“ILDD”)第5章“中断处理”对此已有详细的解读,但是我觉得还是有必要再花点时间深入探讨一 下这两者的区别。因为此前关于ARM上的中断处理我已经在另一篇帖子解密ARM based Linux内核中断处理框架 中讨论过,所以下面的讨论只限于x86 32位系统。 首先给出一个ILDD书中的一个插图,关于中断处理的整体框架: (图1)接下来的一个插图显示了内核用于标识中断上下文(in_interrupt())的变量preem......【阅读全文】