Jump to content

Double fault

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Bob man801 (talk | contribs) at 08:25, 14 December 2009. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
This article is about the CPU error; for the tennis term, see serve (tennis).

On the x86 architecture, a double fault exception occurs if the processor encounters a problem while trying to service a pending interrupt or exception.

An example situation when a double fault would occur is when an interrupt is triggered but the segment in which the interrupt handler resides is invalid. If the processor encounters a problem when calling the double fault handler, a triple fault is generated and the processor shuts down.

As double faults can only happen due to kernel bugs, they are rarely caused by userland programs in a modern protected mode operating system, unless the program somehow gains kernel access (some viruses and also some low-level dos programs).

Other processors like PowerPC or SPARC generally save state to predefined and reserved machine registers. A double fault will then be a situation where another exception happens while the processor is still using the contents of these registers to process the exception. SPARC processors have four levels of such registers.

See also