tolerance

Set how long the host system is allowed to delay notifying the hypervisor of a timer expiry

Synopsis:

tolerance microseconds

Option:

microseconds
The emulated timer device tolerance, in microseconds. The default is 10 percent of the timer tick size on the host system.

Description:

The tolerance option sets the maximum amount of time, in microseconds, that the host system is allowed to delay before notifying the hypervisor of a timer expiry. If the tolerance option isn't specified, the tolerance defaults to 10 percent of the host system's timer tick size (which defaults to 1 ms, making the default tolerance 100 μs).

The hypervisor uses host system timers to generate notifications when a guest timer interrupt needs to be delivered in order to support guest system virtualized timer hardware (e.g., the hpet vdev on x86).

The reason that there may be a slight delay between timer expiry and notification delivery is that a QNX hypervisor system allows the system designer to choose the tradeoff between timer accuracy and power consumption (CPU load).

Setting tolerance values smaller than the tick size lets you improve the guest's high-resolution timer (HRT) accuracy, which can be specified to the nanosecond level, because the QNX hypervisor host is always tickless. If you do use smaller values, however, this improves accuracy but also increases the interrupt load and thus may decrease overall performance. This is because it is less likely that multiple timers can be coalesced (aligned to fire) in the same interrupt. You must therefore be sure that any guest expectations assumed in the design of the guest BSP, OS, and applications align with what is being provided by the timer setup in the underlying VM and the host machine. For example, the guest should not expect or require a greater timer accuracy than what either of these components can provide.

For more information, refer to High-resolution timers in the Understanding the Microkernel's Concept of Time chapter in the QNX OS Programmer's Guide.

Page updated: