BSDCan2017 - 0722

BSDCan 2017
The Technical BSD Conference

Speakers
Sam Gwydir
Schedule
Day Talks #2 - 10 June - 2017-06-10
Room DMS 1110
Start time 16:00
Duration 01:00
Info
ID 836
Event type Lecture
Track Plenary
Language used for presentation English
Feedback

The History and Future of Core Dumps in FreeBSD*

*and other related OS

Crash dumps, also known as core dumps, have been a part of BSD since its' beginnings in Research UNIX. Though 38 years have passed since doadump() came about in UNIX/32V, core dumps are still needed and utilized in much the same way they were then. This talk will provide an extensive background on core dumps, including a complete history, a summary of the present state and a discussion on the future of the core dump routine in FreeBSD.

One might assume the core dump code has changed little over time but, with some research, this assumption has proven incorrect. What has changed over time is the amount of RAM in the machines we expect to be able to get a crash dump from. Because of this, underlying assumptions about the size of swap partitions in respect to the size of kernel virtual memory are proving incorrect, disabling core dumps in many machines.

To avoid these pitfalls, several extensions to the core dump code have been created over time but have never made it upstream. These extensions include gzip compressed dumps and dumping over the network. In addition, other related operating systems like macOS (formerly Mac OS X) and Illumos have several of the features that would be useful in FreeBSD including dumping to swap on a ZVOL, live core dumps and tools to estimate the size of a core dump on a running machine.

This talk begins with a quick background on what core dumps are and why operators might need them. Following that the current state of the core dump facility and some of the more common extensions in use are examined. We conclude with a call to action for upstreaming these extensions and modularizing the core dump code such that different methods of core dump can be dynamically loaded into the kernel on demand.

By the end of this talk attendees will have a thorough knowledge of what core dumps are, why they're useful, how they've been done in the past and what improvements could be made in the future.