Updating hypervisor event trace descriptions (optional)
The QNX Momentics IDE System Profiler includes text descriptions of qvm events, so you don't need to do anything special to show these events.
Copying an event-descriptions file into your IDE project
If you don't have the qvm event descriptions for the IDE System Profiler, or if you need to update the qvm event descriptions to newer versions, you can create an event-descriptions file and copy it into your IDE project. To do this:
- Get or create an events description file (e.g., qvm_events.xml), and save it to a convenient location.
- Copy this file into the root directory of the IDE project in which you will use the IDE's System Profiler.
See Example of a descriptions file
below for an example of a
qvm events descriptions file.
Loading the event-descriptions file
After you have the qvm_events.xml in your project's root directory, you need to load the file into the IDE:
- Start the QNX Momentics IDE.
- In the System Profiler perspective, select the Project Explorer tab.
- Right-click the target system for your QNX hypervisor target, then select Import.
- In the Import wizard, select , then click Next.
- Next to the From directory field, click Browse to open the file selector.
- Browse to the directory containing your qvm_events.xml file, select this file, then click Finish.
- Select in the menu area at the top, then in the resulting dialog box.
- Select Browse... and in the file selector that opens, select your qvm_events.xml file, then click OK.
- Exit the QNX Momentics IDE, then restart the IDE and connect to the target board running your QNX hypervisor system.
- Load any *.kev file into the System Profiler. You should
see the qvm process trace events, including the Class 10
events (see
Hypervisor trace events
).For more information about this IDE tool, see the
System Profiler
section in the IDE User's Guide.
Example of a descriptions file
Below, for reference, is a copy of the content of an XML event-descriptions file (qvm_events.xml):
<eventdefinitions>
<!–– Guest Entry ––>
<datakey format="%8u1x guest_ip">
<event class="10" id="0" />
</datakey>
<!–– Guest Exit ––>
<datakey format="%4u1x status %4u1x reason %8u1x
cc_offset %8u1x guest_ip %8u1x payload">
<event class="10" id="1" />
</datakey>
<!–– vCPU create ––>
<datakey format="%4u1x vcpu_id">
<event class="10" id="2" />
</datakey>
<!–– Raise interrupt ––>
<datakey format="%4u1x vcpu_id %4u1x interrupt">
<event class="10" id="3" />
</datakey>
<!–– Lower interrupt ––>
<datakey format="%4u1x vcpu_id %4u1x interrupt">
<event class="10" id="4" />
</datakey>
<!–– Create timer ––>
<datakey format="%4u1x timer_id %4u1x cpu_id">
<event class="10" id="5" />
</datakey>
<!–– Timer fire ––>
<datakey format="%4u1x timer_id">
<event class="10" id="6" />
</datakey>
<!–– Guest entry and exit ––>
<datakey format="%8u1x at_entry %8u1x at_exit">
<event class="10" id="7" />
</datakey>
</eventdefinitions>