Re: Scheduler priorities

Pavel Machek (pavel@ucw.cz)
Fri, 29 Mar 2002 22:42:52 +0100


Hi!

> > Well evidently it should be root-only, just like SCHED_RR and SCHED_FIFO.
> > If the priority inversion issues are worked out this restriction could be
> > removed. I remember discussing this problem with Rik van Riel.
> > The kernel-preempt patch seems to be able to detect when a process holds a
> > lock; perhaps the process scheduler can temporarily revert to SCHED_NORMAL
> > when this is the case? Preferably with a large nice value.
>
> The preempt-kernel patch does keep track of the lock count, but it does
> not include semaphores and those are what we need to worry about.
>
> I also don't think it is enough that SCHED_IDLE only be settable by
> root. Regardless of what permissions it takes to set the scheduling
> class, a "SCHED_IDLE" task should never be capable of harming an RT
> task.

On each entry of kernel, promote SCHED_IDLE task to SCHED_NORMAL, and
demote it at exit. This can be done with 0 overhad on hot paths.

> One solution I have come across is checking whether the task is
> returning to kernel or user mode and acting appropriately. As needed,
> the task can be scheduled as SCHED_NORMAL. This situation could even be
> special-cased like ptrace and not impact normal scheduling. Perhaps
> this is what Ingo had in mind ... I hope he is still interested and
> presents some code.
>
> I know all this because I tried to implement SCHED_IDLE about a year
> ago. There were arguments against every approach, and SCHED_IDLE will
> never be accepted until they are all satisfied. If we want it, it needs
> to be done right.

What's the problem with "promote at enter" approach? Using ptrace
trick, it can be 0 overhead. [Was that your code that cleverly used
ptrace?] What is problem with it?
Pavel

-- 
(about SSSCA) "I don't say this lightly.  However, I really think that the U.S.
no longer is classifiable as a democracy, but rather as a plutocracy." --hpa
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/