Xenomai: High latencies with SMI not disabled
If you have a fairly new motherboard with Intel chipset (e.g. Intel 82845 845 (Brookdale)
is a very common one), it most likely has SMI (System Maintenance Interrupt). SMI is a real-time
killer and to avoid latencies of several 100 microseconds up to a few milliseconds, you
need to disable them.
Typical SMI interrupt, seen while running the testsuite/latency example of Xenomai 2.1:
RTD| 2019| 2358| 4643| 0| 1989| 5670
RTD| 2265| 2358| 5751| 0| 1989| 5751
RTD| 1953| 2402| 248014| 2| 1953| 248014
RTD| 2071| 2358| 4275| 2| 1953| 248014
RTD| 2299| 2391| 4259| 2| 1953| 248014
While configuring the kernel, you need to set the SMI options.
# make menuconfig
Real-time sub-system --->
Machine --->
SMI workaround --->
[*] Enable SMI workaround
[*] Globally disable SMI (NEW)
In the .config file:
CONFIG_XENO_HW_SMI_DETECT=y
CONFIG_XENO_HW_SMI_WORKAROUND=y
CONFIG_XENO_HW_SMI_ALL=y
If you do not want to globally disable SMI, or if you need one of those
SMI's, deselect "Globally disable SMI" and choose from the other options:
[ ] Disable SMI detection (NEW)
[*] Enable SMI workaround (NEW)
[ ] Globally disable SMI (NEW)
[ ] Enable Intel-Specific USB2 SMI (NEW)
[ ] Enable legacy USB2 SMI (NEW)
[ ] Enable periodic SMI (NEW)
[ ] Enable TCO SMI (NEW)
[ ] Enable microcontroller SMI (NEW)
[ ] Enable APM SMI (NEW)
[ ] Enable legacy USB SMI (NEW)
[ ] Enable ACPI BIOS SMI (NEW)
Check the kernel log file for Xenomai SMI messages.
If everything went well you'll find a message like this:
Xenomai: Intel chipset found, enabling SMI workaround.
If something went wrong (either your chipset is not supported) or
you didn't disable SMI in the config, you see this:
Xenomai: Intel chipset found and SMI workaround not enabled,
you may encounter high interrupt latencies.
-or the newer message-
Xenomai: Intel chipset found but SMI workaround not enabled (check
CONFIG_XENO_HW_SMI_WORKAROUND). You may encounter high interrupt latencies!
NOTE: Since Xenomai 2.1, everything is compiled into the kernel by default.
That means there are no modules - and there are no messages in the kernel log,
when you e.g. start one of the testsuite examples, since no kernel modules are loaded
or unloaded. That also means that the message mentioned above, appears during booting
and not when the xenomai modules are loaded (like in xenomai 2.0).
Last-Modified: Sat, 04 Feb 2006 20:40:42 GMT