IPIs, SMIs and CPU stalls
LatencyMon is equipped to measure SMIs and mysterious CPU stalls. Certain latency problems exist which cannot
be attributed to the operating system (including the drivers and the software that it runs) or to any of
the hardware that is not directly connected to the system. From the perspective of the operating system it may seem as if a CPU temporarily stalls
in a mysterious way. LatencyMon opportunistically measures such stalls
and reports them as "Highest measured SMIs or CPU stall". Latencies reported as SMIs or CPU stalls can be caused
by any of the following:
An IPI (Inter Processor Interrupt) initiated by either software or hardware
An SMI (System Management Interrupt) routine executing in SMM (System Management Mode)
A bug in the CPU design which causes the CPU to temporarily freeze
Another unknown CPU factor
If your system experiences latency problems because of these you may be able to solve the issue
by disabling certain power management features of the CPU. Check out the documentation on
CPU Power Management issues.
These stalls are opportunistically polled now and then. The highest measured values reported by the software are
not to be considered absolute maximums.
About System Management Interrupts
SMM is a special-purpose operating mode of the processor provided for handling system-wide functions
like power management, system hardware control, or proprietary OEM designed
code. It is intended for use only by the BIOS or firmware interface, not by applications or the operating system.
SMIs are interrupt routines that the CPU excecutes in SMM beyond the control of the operating system. SMIs take
precedence over any other maskable or non-maskable interrupt.
For more information refer to the following Wikipedia article: System Management Mode or check
the Intel Architectures System Programming Guide.
About CPU bugs
Unexplainable CPU stalls may be caused by bugs in the design of the CPU. A lot of CPU bugs in modern CPUs are related to CPU C-states and P-states and
can freeze a processor indefinitely until certain conditions are met. Check out the errata (spec update) regarding your CPU on the manufacturers website of your
processor for more information.
Note that because of the regular pattern of execution this tool follows, it is not likely that CPU bugs are detected this way. However
it is still mentioned as a possible cause.
LatencyMon documentation and articles
Note: this content is currently being updated.