Hi Gilles,

here is a trivial test case on my desk that points to SCHED_RR issues of
the POSIX skin: simple pthread_create with an attribute block that has
SCHED_RR set, but neither SCHED_RR nor the priority reach the new thread.

The way the scheduling policy and parameters get to that user space
thread leads via __real_pthread_setschedparam after
__pse51_thread_create. This triggers do_setsched_event in shadow.c. But
here we filter out all policies except for SCHED_FIFO. So neither the
priority nor the required XNRRB flag make it to the target therefore.

Even worse, we are running aperiodic timer mode, so this would not have
worked anyway due to the scheduler limitations. Fortunately, it turned
out that the customer is fine with SCHED_FIFO as well, but the broken
priorities and/or lacking error codes on creation are annoying + the
fact that it likely wouldn't work even with periodic timer mode.


Siemens AG, Corporate Technology, CT SE 26
Corporate Competence Center Embedded Linux

Xenomai-core mailing list

Reply via email to