Virtual Machine Analysis Developer Documentation

Virtualized environment are becoming more popular and understanding them can be challenging as machines share resources (CPU, disks, memory, etc), but from their point of view, they are running on bare metal. Tracing all the machines (guests and hosts) in a virtualized environment allows information to be correlated between all the nodes to better understand the system. See the User documentation for more info on this analysis.

The virtual machine analysis has been implemented in the following plugins:

Adding support for an hypervisor

Supporting a new hypervisor in Trace Compass requires implementing the model for this new hypervisor. The following sections will describe for each part of the model what has to be considered, what information we need to have, etc. Note that each hypervisor will require some work and investigation. The information might already be available as a single tracepoint for some, while other may require many tracepoints. It is also possible that some will require to add tracepoints, either to the kernel, or the hypervisor code itself, in which case a userspace trace (LTTng UST) might be necessary to get all the information.

Virtual CPU analysis

This analysis tracks the state of the virtual CPUs in conjunction with the physical CPU it is running on. For this, we need the following information:

A model implementation for a new hypervisor will need to implement class IVirtualMachineModel, that can be found in package org.eclipse.tracecompass.internal.lttng2.kernel.core.analysis.vm.model. See the javadoc in the class itself for more information on what each method does.