Re: Real-Time Preemption, -RT-2.6.12-final-V0.7.50-24

Ingo Molnar
2005-07-07T10:49:42Z

* William Weston <weston@sysex.net> wrote:

> Still looking into this issue on -51-06. Found something really odd:
> SCHED_NORMAL tasks will start to inherit the priority value of some
> other SCHED_FIFO task. If JACK is started at a given SCHED_FIFO
> priority, X and all of its children will inherit the same priority
> value after login. Other random processes will inherit this, too --
> sometimes init...
>
> SCHED_NORMAL tasks suddenly inheriting priority values in the range
> normally reserved for SCHED_FIFO could explain at least part of the
> meltdown I've been seeing. Any thoughts?

is this inheritance perpetual? It is normal for some tasks to be boosted
momentarily, but if the condition remains even after jackd has exited,
it's clearly an anomaly. (lets call it "RT priority leakage".) Priority
leakage on SMP was fixed recently, but there could be other bugs
remaining.

There's priority-leakage debugging code in the -RT kernel, which is
activated if you enable CONFIG_DEBUG_PREEMPT. This debugging code, if
triggered, should produce 'BUG: comm/123 leaked RT prio 123 (123)?" type
of messages. But ... due to a bug it would not print out anything but
would lock up hard if it detects the condition (and if
RT_DEADLOCK_DETECT is enabled). I have fixed this reporting bug in the
-51-08 kernel.

Ingo