All of lore.kernel.org
 help / color / mirror / Atom feed
* SCHED_SPORADIC in Xenomai 3
@ 2026-06-10  6:24 Jan Kiszka
  2026-06-10  7:21 ` Jan Kiszka
  2026-06-11  7:33 ` Philippe Gerum
  0 siblings, 2 replies; 12+ messages in thread
From: Jan Kiszka @ 2026-06-10  6:24 UTC (permalink / raw)
  To: Philippe Gerum, Xenomai

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


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-06-11  8:53 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-10  6:24 SCHED_SPORADIC in Xenomai 3 Jan Kiszka
2026-06-10  7:21 ` Jan Kiszka
2026-06-10  7:33   ` Jan Kiszka
2026-06-10 18:17     ` Jan Kiszka
2026-06-11  5:38       ` Jan Kiszka
2026-06-11  7:49         ` Philippe Gerum
2026-06-11  7:56           ` Jan Kiszka
2026-06-11  8:53             ` Philippe Gerum
2026-06-11  7:36       ` Philippe Gerum
2026-06-11  7:33 ` Philippe Gerum
2026-06-11  7:42   ` Jan Kiszka
2026-06-11  7:56     ` Philippe Gerum

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.