[Xenomai] copperplate/registry daemon connection failure

Ronny Meeus ronny.meeus at gmail.com
Tue Dec 13 08:23:17 CET 2016


Context: we use the Mercury core (xenomai-3.0.3).

in commit 880b3acbd876a65f8fbe8c27b09762b06c06e846:
copperplate/registry: force SCHED_OTHER on helper threads
Sun Jul 26 12:37:15 2015 +0200

The scheduling class of the registry threads is forced to
SCHED_OTHER  at priority 0.
This change is causing issues in our use case since our system
is fully loaded during init.

What I observe is that the application is not able to connect to
the registry daemon and exists with following error:
   0"988.361| WARNING: [main] cannot connect to registry daemon
   0"989.141| WARNING: [main] setup call copperplate failed
   0"989.369| BUG in xenomai_init(): [main] initialization failed, EAGAIN

As a test I made a change to the code and started the registry threads
in RR mode at a high priority and then the issue is not observed.
In our system all threads (application and kernel one's) are running
in the real-time domain so apps running in the OTHER domain will
have very little CPU left to consume ...

For me it is not clear how the synchronization between the daemon
and the application is happening. The daemon is setting up a
Unix domain socket to which the client connects. But how does the
application knows that the daemon has finished the creation of
the socket?


More information about the Xenomai mailing list