linux-kernel - 早期页面错误是通过清除 IF 标志来触发的,但这怎么可能呢?

标签 linux-kernel

我正在阅读最新的linux源代码,我发现即使执行了指令cli并且清除了IF标志,也会触发早期页面错误中断。但这怎么可能呢?是不可屏蔽的吗?如果有的话,和NMI有什么关系?

最佳答案

术语“可屏蔽”仅适用于IRQ(中断请求)类型的中断,也称为硬件中断

但是,页面错误中断不是IRQ,而是异常类型。这种类型的中断不能通过定义来屏蔽。

关于中断的分类,请参见例如这里:http://wiki.osdev.org/Interrupt .


想一想:如果由于指令执行而导致页面错误,CPU 应该做什么可以被屏蔽?在这种情况下,CPU 将无法执行该指令并继续进行。

相反:如果定时器IRQ被屏蔽,CPU可以正常运行。

关于linux-kernel - 早期页面错误是通过清除 IF 标志来触发的,但这怎么可能呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47302807/

相关文章:

linux-kernel - ICMP报文的源端口和目的端口

c - 使用 C 用户空间代码从 Linux/proc 接口(interface)读取的最佳方法是什么?

Linux守护进程启动

linux-kernel - 接入点使用 softMAC 还是 hardMAC?

linux-kernel - 使用 Linux 内核的 API 进行数据字节顺序的可移植转换

linux - 从/dev/block/mmcblk0 和/dev/block/mmcblk0p1 读取的区别

c - 如何在另一个模块加载之前加载一个模块?

c - 我如何使用 ioctl 进行用户程序和驱动程序之间的通信?

linux - 模拟卡在阻塞系统调用中的进程

sockets - 同步 I/O 会使线程忙碌吗?