Is Linux kernel oops useful or not?

  • Authors:
  • Takeshi Yoshimura;Hiroshi Yamada;Kenji Kono

  • Affiliations:
  • Keio University;Keio University, CREST, JST;Keio University, CREST, JST

  • Venue:
  • HotDep'12 Proceedings of the Eighth USENIX conference on Hot Topics in System Dependability
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

Linux kernel oops is invoked when the kernel detects an erroneous state inside itself. It kills an offending process and allows Linux to continue its operation under a compromised reliability. We investigate how reliable Linux is after a kernel oops in this paper. To investigate the reliability after a kernel oops, we analyze the scope of error propagation through an experimental campaign of fault injection in Linux 2.6.38. The error propagation scope is process-local if an error is confined in the process context that activated it, while the scope is kernel-global if an error propagates to other processes' contexts or global data structures. If the scope is process-local, Linux can be reliable even after a kernel oops. Our findings are twofold. First, the error propagation scope is mostly process-local. Thus, Linux remains consistent after a kernel oops in most cases. Second, Linux stops its execution before accessing inconsistent states when kernel-global errors occur because synchronization primitives prevent the inconsistent states from being accessed by other processes.