Recovery domains: An organizing principle for recoverable operating systems?

Andrew Lenharth, Vikram Adve, Samuel T. King

Research output: Contribution to journalArticlepeer-review


We describe a strategy for enabling existing commodity operating systems to recover from unexpected run-time errors in nearly any part of the kernel, including core kernel components. Our approach is dynamic and request-oriented; it isolates the effects of a fault to the requests that caused the fault rather than to static kernel components. This approach is based on a notion of "recovery domains," an organizing principle to enable rollback of state affected by a request in a multithreaded system with minimal impact on other requests or threads. We have applied this approach on v2.4.22 and v2.6.27 of the Linux kernel and it required only 132 lines of changed or new code: the other changes are all performed by a simple instrumentation pass of a compiler. Our experiments show that the approach is able to recover from otherwise fatal faults with minimal collateral impact during a recovery event.

Original languageEnglish (US)
Pages (from-to)49-60
Number of pages12
JournalACM SIGPLAN Notices
Issue number3
StatePublished - Mar 2009


  • Akeso
  • Automatic Fault Recovery
  • Recovery Domains

ASJC Scopus subject areas

  • Computer Science(all)


Dive into the research topics of 'Recovery domains: An organizing principle for recoverable operating systems?'. Together they form a unique fingerprint.

Cite this