Fork + Exec and unwanted rescheduling
LOCHE Daniel
dloche at laas.fr
Mon Aug 26 14:58:18 CEST 2019
Hello all,
I am doing some experiments with Xenomai 3.0.5 (Linux 4.9.38) on a NUC
(i5-8250U).
What I am trying to do :
- run a Xenomai Manager process that launches tasks with FIFO scheduling
and same fixed priority (Alchemy API used here).
Every task is executed on the same core, changing core affinity to only
CPU 1.
- every task is designed to do periodically : *
1)* read timer (start of task)
*2)* fork+exec to run a binary (from an external benchmark, tasks not
designed with Xenomai API)
*3)* read timer again (end of task execution)
I do this to monitor the execution of every task as you may have guessed.
The issue is that it looks like every time a task reaches step 2)
("fork" step), my child task goes back to the end of scheduling queue.
Consequently, I basically see this in my logs :
- Every task starts and goes till the Fork step.
- Then every task executes their binary... don't know how this is
scheduled exactly... feels like CFS basic linux scheduling.
- Every task ends more or less at the same timestamp
... and again and again at every period... What I expected to see it
every task running right one after the other with no forced (i.e.
systematic) discontinuity between steps 1), 2) and 3) (as I am doing
FIFO) due to other tasks preemption !
=> When I fork a Xenomai task, does it (child process) completely looses
its Xenomai properties and falls back into Linux domain..?
If so... Am I condemned with such architecture to break my scheduling
policy due to the forks ?
I tried raising up the priority level of a task right before the fork
(step 1)) so that child process inherits highest priority level and
start running directly, but the results are not convincing : tasks are
still running 2 by 2 (i.e. 1 task is still preempting the forked child
process). (I put the priority level back to normal at step 3).
Not sure to understand what's happening there...
I can give you some .csv extracts of my timestamp logs, with and without
priority up-scaling.
Thanks for your help,
Daniel
More information about the Xenomai
mailing list