On Fri, Apr 1, 2011 at 1:37 PM, Gilles Chanteperdrix <[email protected]> wrote: > Philippe Gerum wrote: >> (*) Unless I find a way to direct the linux scheduler to the "right" >> task in the migration case, but so far, I found none (none that would be >> sane, I mean). > > In Henri particular case. Maybe there would be a way to call > wake_up_process first, then look into the (Linux) scheduler state, see > if a reschedule is pending. If a reschedule is pending, do not clear the > boost and let do_schedule_event handle the situation? Otherwise, clear > the boost. > > Or maybe that fits into the "insane" category? > > -- > Gilles. >
Thanks Philippe and Gilles! Your detailed explanation brings the pieces of the puzzle together! I understand why the reschedule is needed there. And that indeed Priority coupling is broken by design then: most likely the thread running in the Linux domain at the time a Xenomai thread is relaxed is not a Xenomai thread. The reschedule will then always schedule any runnable Xenomai task before the relaxed thread in Linux domain. Priority coupling can never guarantee rule #1, also because a Linux call might block. However, it would be great to find a way to direct the Linux scheduler, maybe the way Gilles proposed. Then at least rule #1 would be valid until the relaxed task blocks or reschedules... but of course will never be guaranteed.. Kind regards, Henri. _______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
