Linux kernel 如果清除标志,则会触发早期页面错误,但这怎么可能?

Linux kernel 如果清除标志,则会触发早期页面错误,但这怎么可能?,linux-kernel,Linux Kernel,我正在阅读最新的linux源代码,发现即使执行了指令cli,并且清除了标志,也会触发早期页面故障中断。但这怎么可能呢?它是不可伪装的吗?如果是,与NMI有什么关系?术语“可屏蔽”仅适用于IRQ类型的中断(中断请求),也称为硬件中断 但是,页面错误中断不是IRQ,而是异常类型。这种类型的中断不能被定义所掩盖 关于中断的分类,请参见此处示例: 想一想:若指令执行导致的页面错误可以被屏蔽,CPU应该怎么做?在这种情况下,CPU将无法执行指令并继续执行 相反:若定时器IRQ被屏蔽,CPU可以正常运行

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

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

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

关于中断的分类,请参见此处示例:


想一想:若指令执行导致的页面错误可以被屏蔽,CPU应该怎么做?在这种情况下,CPU将无法执行指令并继续执行

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