Kexec: Soft-Reboot and Crash-Dump Analysis for Linux and Xen

A Presentation by Simon Horman

Kexec is a feature that was introduced in 2.6.13. It is primarily a feature
to allow soft-reboots on machines where booting through the BIOS is either
slow or unreliable. This base functionality has been extended to support
crash dump analysis - that is a way of obtaining a core file of a crashed
kernel. There is also a boot-loader, kboot, which makes relies on kexec.

Kexec in its original form, to allow soft-reboots is, arguably only useful
to a fairly restricted set of hardware, most likely used by developers or
in embedded environments. However, the evolution of its crash-dump analysis
functionality, and further work on using it as the basis for a boot-loader
show that it is a technology that has a much wider range of applications
that first meets the eye.

Crash-Dump analysis is a fairly hot topic for many people that I meet
during the course of my work and part of the intention of this presentation
is to bring it to a wider audience. While many of the people currently
interested in it want to analyse crashes on very large and hopefully very
stable systems. I believe that it is also useful for analysis of crashes on
smaller systems. At the OSDL Japan Linux Symposium held in Tokyo in June
2005 Andrew Morton commented that he thought it would also be a good tool
for users to provide core files to kernel developers, potentially on
problems in very green kernels. I think that this highlights the broadness
of the audience for kexec.

The first part of this presentation will give an overview of how kexec
works to perform soft-reboots. It will take a look at what crash-dump
analysis is, why it is important, and how kexec can be used for this
purpose. Lastly it will take a brief look at kboot.

The second part of the presentation will discuss the work that has been
taking place to port kexec to the Xen hypervisor and Domain 0, focusing on
why this is a good solution for crash-dump analysis of those components. It
will also provide an overview of the relationship between hardware, the Xen
hypervisor and Xen domains for those not familiar with these concepts.

Direct link to video