SCHED_SPORADIC in Xenomai 3

Jan Kiszka <[email protected]>
Newsgroups dev.linux.lists.xenomai
Message-ID <[email protected]>
Hi Philippe,

while trying to port the signal-while-suspended fix to Xenomai 3, I ran
into XNHELD, a state only existing there. I suppose that was once
forward-ported as EVL_T_HALT. The only user of XNHELD in Xenomai 3 is
SCHED_SPORADIC - so let's dive into that scheduling class.

Turned out it was never documented, not even linked to the POSIX
standard. But it also slightly differs from it (low_prio = -1 -> suspend
on depletion). There is also no test case, so I asked an AI for one.
That worked fairly well as it seems to have revealed an issue:

Could it be that we are not properly suspending the budget tracking when
a higher-prio task from a different scheduling class is preempting a
sporadic thread? It looks like that xnsched_sporadic_pick is not invoked
if a thread is selected from a higher-prio class first, namely sched-rt
with its weight 4 vs. 3 if sched-sporadic. Or is that an (undocumented)
limitation/misconfiguration? Is that issue even affecting other
time-slicing classes as well??

That furthermore makes me wonder if we actually have users of
sched-sporadic. Likely a hard to answer question, as usual. But such a
limitation should have been observed earlier under real workload...

Jan

-- 
Siemens AG, Foundational Technologies
Linux Expert Center
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.