linux-kernel - 一个中断处理程序可以被同一个中断处理程序抢占吗?

标签 linux-kernel linux-device-driver

在调用中断处理程序之前,CPU 是否禁用了本地 CPU 上的所有中断?
或者它是否只禁用正在服务的特定中断线?

最佳答案

x86 在跳转到中断向量之前禁用所有本地中断(当然 NMI 除外)。 Linux 通常会屏蔽特定的中断并重新启用其余的中断(未屏蔽),除非将特定标志传递给中断处理程序注册。

请注意,虽然这意味着您的中断处理程序不会在同一个 CPU 上与自身竞争,但它可以并且将会与在 SMP/SMT 系统中的其他 CPU 上运行的自身竞争。

关于linux-kernel - 一个中断处理程序可以被同一个中断处理程序抢占吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11403915/

相关文章:

linux - 使用结构来设置功能

linux - 什么系列的数字可以用于新驱动程序中添加的新 ioctl

带有黑白条纹的linux zoneminder视频

Linux 内核文件系统多线程

android 手机通过 USB 端口安装桌面分区(磁盘级别的反向 USB 网络共享?)

linux - linux内核中spinlock_t的定义

linux-kernel - 基于 x86 的系统的板文件

linux - 如何延迟 Linux 内核模块临界区

控制内核中的函数指针

linux - 为什么 bootsect 在 linux(x86) 中将自身移动到 0x90000?