2002-07-11 19:38:43

by anton wilson

[permalink] [raw]
Subject: MAX_USER_RT_PRIO < MAX_RT_PRIO limits user-space?



Sorry to post such a simple question but I'm having trouble comprehending the
new priority range scheme used with O(1) and no one on kernelnewbies can help.

Documentation states that priorities are inverted.
It also states that the separation between MAX_USER_RT_PRIO and MAX_RT_PRIO
allows kernel threads to have a higher priority if MAX_USER_RT_PRIO <
MAX_RT_PRIO.

I don't see how this is possible because in setscheduler

* Valid priorities for SCHED_FIFO and SCHED_RR are
* 1..MAX_USER_RT_PRIO-1

and the p->static_prio for RT tasks is determined by

p->prio = MAX_USER_RT_PRIO-1 - p->rt_priority;

so the static_prio for a RT task has a range: [0 ... MAX_USER_RT_PRIO - 2 ]

Fluctuating MAX_USER_RT_PRIO will never prevent a RT process from accessing
the bottom of the priority range. And lower means higher priority.

What am I misunderstanding?

Anton