Boosting performance through multiprocessing

The QNX hypervisor supports both symmetric multiprocessing (SMP) and asymmetric multiprocessing (AMP). You can configure threads in the hypervisor host to run on physical CPUs (pCPUs) that have certain hardware features that are required by the guest or can at least improve performance.

This includes vCPU threads and other threads in your qvm processes. You can pin vCPU threads to one or several pCPUs by using the cpu cluster option when you assemble your VMs. Non-vCPU qvm threads such as vdev threads are pinned (bound) to the same pCPUs as the initial qvm thread which sets up the VM, but these other threads can use QNX OS mechanisms such as ThreadCtl(_NTO_TCTL_RUNMASK) to bind themselves to another cluster of pCPUs. This cluster can be different from the one used by the vCPUs.

For full details about binding threads to particular CPUs in a multiprocessor environment, refer to the Processor affinity, clusters, runmasks, and inherit masks section of the QNX OS Programmer's Guide. For general information about QNX OS support for multiprocessing, read the Multicore Processing chapter in this other guide.

Page updated: