Hi
I dislike the behavior of the SCHED_ISO patch that iso tasks are degraded to SCHED_NORMAL if they exceed the limit. IMHO it's better to throttle them at the iso_cpu limit.
I have modified Con's iso2 patch to do this. If iso_cpu > 50 iso tasks only get stalled for 1 tick (1ms on x86).
Some tasks are so cache intensive they would make almost no forward progress running for only 1ms.
Fortunately there is a currently unused task prio (MAX_RT_PRIO-1) [1]. I
Your implementation is not correct. The "prio" field of real time tasks is determined by MAX_RT_PRIO-1-rt_priority. Therefore you're limiting the best real time priority, not the other way around.
Throttling them for only 1ms will make it very easy to starve the system with 1 or more short running (<1ms) SCHED_NORMAL tasks running. Lower priority tasks will never run.
Cheers, Con
signature.asc
Description: OpenPGP digital signature