Exploring recovery from operating system lockups
Francis M. David, Jeffrey C. Carlyle, Roy H. Campbell · 2007
Operating system lockup errors can render a computer unusable by preventing the execution other programs. Watchdog timers can be used to recover from a lockup by resetting the processor and rebooting the system when a lockup is detected. This results in a loss of unsaved data in running programs. Based on the observation that volatile memory is not affected when a processor a re-set occurs, we present an approach to recover from a watchdog reset with minimal or zero loss of applica-tion state. We study the resolution of lockup conditions using thread termination and using exception dispatch. Thread termination can still result in a usable system and is already used as a recovery strategy for other errors in Linux. Using exceptions allows developers to write code to handle a lockup within the erroneous thread and at-tempt application transparent recovery. Fault injection experiments show that a significant percentage of lock-ups can be recovered by thread termination. Exception handling further improves the recoverability of the oper-ating system. 1