Priority-based scheduling

It is important to understand how priority-based 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 pCPUs. The shaded areas show which one of two competing vCPU threads gets access to the pCPU.

Figure 1. The significant priority for access to a pCPU 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 pCPU 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: