XenSummit has been a tremendous success this year. Thank you to all the speakers
for contributing and to all the attendees for making XenSummit an interactive and fun conference with lots of discussions. You can find
presentations on slideshare and videos on vimeo.
We will also embedded both in the agenda. The slides are also available for download as
XenTT: Deterministic Systems Analysis in Xen
This talk details XenTT, an open-source framework for deterministic replay and systems analysis in development at the University of Utah. The framework consists of two main parts: a set of Xen extensions that implement efficient, deterministic replay, and a powerful analysis engine that extracts information from systems during replay executions.
Deterministic replay promises to change how people analyze and debug software systems. As software stacks grow in complexity, traditional ways of understanding failures, explaining anomalous executions, and analyzing performance are reaching their limits in the face of emergent behavior, unrepeatability, cross-component execution, software aging, and adversarial changes to code. Replay-based, whole-system analyses offer precise solutions to these problems.
XenTT extends Xen with the ability to replay and analyze the execution of VM guests. A number of careful design choices ensure that our implementation, which supports single-CPU, paravirtual, Linux guests, is efficient, maintainable, and extensible. XenTT's run-time checks and offline log-comparison tools enabled us to efficiently scale the recording layer by detecting and debugging errors in the determinism of replay.
Our analysis engine seeks to overcome the semantic gap between an analysis algorithm and the low-level state of a guest. Using debug information to reconstruct functions and data structures within the guest, the engine provides a convenient API for implementing systems analyses. The engine implements a powerful debug-symbol and VM introspection library, which enables an analysis to access the state of the guest through familiar terms. To further simplify the development of new analyses, the engine provides primitives that support common exploration patterns, e.g., breakpoints, watchpoints, and control-flow integrity checking. To enable performance analyses of recorded executions, XenTT provides a performance modeling interface, which faithfully replays performance parameters of the original run.
Beyond describing the design and implementation of XenTT, this talk will present examples of how we have used deterministic replay to implement security and performance analyses.
Anton Burtsev, University of Utah
Anton Burtsev is a PhD student and a Research Associate in the Flux Research Group at the University of Utah. Anton has broad research interests in operating systems, virtualization, distributed systems, replay debugging, security, and performance analysis. He is particularly interested in the design of novel abstractions for development of next-generation operating systems. He is a key designer and developer of the Emulab "time travel" and distributed checkpointing system, and he is also implementing the XenTT deterministic-replay system and analysis framework based on the Xen virtualization platform. Anton's other notable projects include Fido, a fast inter-virtual machine communication mechanism for the Xen hypervisor, and the E1 distributed operating system, which is designed around the concept of shared object replication. Anton has broad expertise in designing and programming operating system kernels.