Triple fault: Difference between revisions
m →Other uses: Fixed the ACPI link. |
|||
Line 3: | Line 3: | ||
[[x86]] processors beginning with the [[80286]] will cause a SHUTDOWN cycle to occur when a triple fault is hit, which typically leads to the [[motherboard]] hardware initiating a reset of the CPU and in turn the whole [[computer]]. |
[[x86]] processors beginning with the [[80286]] will cause a SHUTDOWN cycle to occur when a triple fault is hit, which typically leads to the [[motherboard]] hardware initiating a reset of the CPU and in turn the whole [[computer]]. |
||
==Possible |
==Possible causes of triple faults== |
||
Triple faults indicate a problem with the [[operating system]] [[Kernel (computer science)|kernel]] or [[device drivers]]. In modern operating systems, a triple fault is typically caused by a buffer overflow or underflow in a device driver which writes over the [[interrupt descriptor table]]. When the next [[interrupt]] happens, the processor cannot call either the needed interrupt handler or the double fault handler because the descriptors in the IDT are corrupted. |
Triple faults indicate a problem with the [[operating system]] [[Kernel (computer science)|kernel]] or [[device drivers]]. In modern operating systems, a triple fault is typically caused by a buffer overflow or underflow in a device driver which writes over the [[interrupt descriptor table]]. When the next [[interrupt]] happens, the processor cannot call either the needed interrupt handler or the double fault handler because the descriptors in the IDT are corrupted. |
||
Revision as of 21:22, 2 February 2008
A triple fault is a special kind of exception generated by the CPU when an exception occurs while the CPU is trying to invoke the double fault exception handler, which itself handles exceptions occurring while trying to invoke a regular exception handler.
x86 processors beginning with the 80286 will cause a SHUTDOWN cycle to occur when a triple fault is hit, which typically leads to the motherboard hardware initiating a reset of the CPU and in turn the whole computer.
Possible causes of triple faults
Triple faults indicate a problem with the operating system kernel or device drivers. In modern operating systems, a triple fault is typically caused by a buffer overflow or underflow in a device driver which writes over the interrupt descriptor table. When the next interrupt happens, the processor cannot call either the needed interrupt handler or the double fault handler because the descriptors in the IDT are corrupted.
Triple faults may also be caused by incorrect kernel settings, such as using the wrong hardware abstraction layer in Windows.
Virtual machines
In Microsoft Virtual PC, if the virtual machine experiences a triple fault a warning box pops up with the message "An unrecoverable processor error has occurred".
Other uses
- Some operating system kernels such as Linux use triple faults as a last effort in their rebooting process. It does this by setting the IDTR register to 0 and then issuing an interrupt. Since the table now has length 0, all attempts to access it fail and the processor generates a triple fault. Note that this is not the preferred method of restarting the computer; using the ACPI is tried first.