Scheduling

It is important to understand how scheduling affects system behavior in a QNX virtualized environment.

Hypervisor thread priorities and guest thread priorities

Just as with any advanced software system, to properly configure scheduling priorities in a system with a QNX hypervisor requires a thorough understanding both of your system requirements and of your system's capabilities.

To begin with, you should keep in mind the following:

The figure below illustrates that priorities inside guests are relevant only inside the guest and have no effect on which of two competing guests gets access to physical CPUs. The shaded areas show which one of two competing vCPU threads gets access to the physical CPU.

Figure 1. The significant priority for access to a physical CPU is the priority of the qvm process's vCPU thread.

If two vCPUs compete for a single physical CPU (pCPU), the vCPU thread with the higher priority gets access to the physical CPU immediately. The priority of the thread running inside a guest has no effect on this access. In the example shown above:

In short, the determining priority is the priority of the qvm process's vCPU scheduling thread.

Guest exits

The following cause a guest to exit:

For more information about guest exits and their effect on hypervisor system performance, see the Performance Tuning chapter. For more information about scheduling in QNX systems, see Thread scheduling in the QNX Neutrino OS System Architecture.