Benchmarks: Xenomai dual-kernel over Linux 3.2.1

Starting with Linux 3.2, the I-pipe patch has been heavily refactored, it seemed like the good opportunity to start publishing some benchmarks regularly. This first benchmark will try and compare the latencies of Xenomai 2.6.1 and Xenomai 3 (Cobalt), and evaluate the effect of enabling the FCSE options on a SOC based on an ARM 920 core.

Measurement method

The measurements were done with the xeno-test utility, see the Benchmarking with xeno-test page for details.


For the Texas Instrument Panda board, running a TI OMAP4430 processor at 1 GHz:

Panda latencies

For the ISEE IGEP v2 board, running a TI OMAP3530 processor at 720 MHz:

IGEPv2 latencies

For the Calao Systems USBA9263 board, running an Atmel AT91SAM9263 processor at 180 MHz:

USBA9263 latencies

For the Cogent Computer CSB637 board, running an Atmel AT91RM9200 processor at 180 MHz:

CSB637 latencies

The last graph compares the various FCSE options.

FCSE guaranteed never flushes the cache during context switches, with a limitation of the processes address-space to 32MB and the process number to 95. Without surprises, this improves the worst case latency.

FCSE best effort lift off the 32MB and 95 processes limits, but the counterpart is that from time to time a cache flush is needed during a context switch. Again, without surprise, we see that it has the same worst case latency as no FCSE at all, but a smaller average latency, actually approximately the same as FCSE guaranteed.