Please find an archive attached, containing :
 - a program for testing context-switch-latency using posix-APIs
   for native linux kernel and xenomai-posix-skin (userspace).
 - Makefile to build it using xenomai

In brief, the attempt is to spawn a bunch of pthreads, which share pairs
of read-write pthread-mutexes in a circular fashion, as shown below, and
measure the time taken for to complete a (rel_mtx_0 - acq_mtx_n) by
( - threads try to acquire read mutexes and release write_mutexes)

        pthread_0:write_mtx      =   pthread_1:read_mtx
        pthread_1:write_mtx      =   pthread_2:read_mtx
        pthread_(n-1):write_mtx  =   pthread_1:write_mtx
        pthread_n:write_mtx      =   pthread_0:read_mtx

The program runs fine on native linux userspace (ARM, x86) , but the
in the xenomai-space, threads lock up at trying to acquire their respective

A similar attempt using message-queues runs fine.

Am running a version between 2.5.2 and 2.5.3.
Will try to check with 2.5.3 as well.

Following is my current xeno-config
# ./xeno-config
xeno-config --verbose
        --xeno-cflags="-I/opt/xeno_utils/include -D_GNU_SOURCE -D_REENTRANT
-Wall -pipe -D__XENO__"
        --xeno-ldflags="-L/opt/xeno_utils/lib -lxenomai -lpthread "
-Wl,--wrap,pthread_setschedparam -Wl,--wrap,"

Attachment: context_switch_latency.tgz
Description: GNU Zip compressed data

Xenomai-core mailing list

Reply via email to