IF标志清除后触发早期页面错误,但这怎么可能?

时间:2017-11-15 08:40:14

标签: linux-kernel

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

1 个答案:

答案 0 :(得分:2)

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

但是,页面错误中断不是IRQ,而是异常类型。根据定义,这些类型的中断不能被掩盖。

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

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

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