Getting hypervisor trace information

You can use the tracelogger utility and the QNX Momentics System Profiler to capture and examine trace events from a VM.

A qvm process instance is a process in the hypervisor; a qvm process instance is the virtual machine (VM) in which a guest OS can run. For the hypervisor, guest OSs are blobs about which it can know nothing. Thus, a trace view of a qvm process instance can show what a qvm process is doing; it doesn't (and can't) show anything about what is going on inside the guest.

However, the hypervisor host kernel virtualization extensions (libmod_qvm.a) and the qvm process are instrumented with trace events (see “The Instrumented Microkernel” in the QNX Neutrino OS System Archtecture), and by looking at what the hypervisor is doing, you can learn a great deal about what a guest is doing or trying to do.

For more information about logging trace events, see the:

About qvm threads

The threads in a qvm process instance include:

main thread
Thread 1, the qvm process instance's main setup thread.
vCPU threads
Every vCPU is a qvm thread. There is a thread for every vCPU defined by a cpu option in the VM's *.qvmconf file for the VM. These threads control the VM. They are the source of most of the trace events you will see.
vdev threads
Created by vdevs, and are present only if a vdev creates them. The vdev that creates a thread names that thread.
These threads are loaded as part of shared objects (*.so). For example, a graphics vdev shared object may use a worker thread for managing a virtual cursor, another for updating a display, etc.

You may also see additional worker threads in the qvm process instance.