Getting hypervisor trace information
You can use the tracelogger utility and the QNX Momentics IDE System Profiler to capture and examine trace events from a VM.
A qvm process instance is a process in the hypervisor; this process creates 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 microkernel in the hypervisor host and the qvm
process are instrumented with trace events (see The Instrumented Microkernel
in the QNX OS System Architecture Guide), 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:
- QNX Momentics IDE User's Guide
- QNX OS System Analysis Toolkit (SAT) User's Guide
- QNX OS Utilities Reference, in particular tracelogger and traceprinter
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.
You may also see additional worker threads in the qvm process instance.