Interrupt Stack Table
文章目录
本文将从如下几个方面介绍IST(Interrupt Stack Table):
- 何为IST
- IST的motivaion
何为IST
通过阅读浅谈tss可以,当线程发生fault 时,会切换到线程的内核栈来调用handler。
但是却可能存在如下情况:内核栈溢出导致double fault时,不换栈大概率会导致triple fault。triple fault会导致系统重启。
IST(Interrupt Stack Table),顾名思义,当handle特定的interrupt(或fault)时,会运行在特定的stack中,而非内核栈中。
这样IST可以确保double fault的handler运行在一个good stack中。
IST的motivation
The motivation for the IST mechanism is to provide a method for specific interrupts (such as NMI, double-fault, and machine-check) to always execute on a known good stack.
详情请参考sdm vol3 6.14.5 Interrupt Stack Table。
参考资料: