Re: [RFC 3/5] sched: Add CPU rate hard caps

From: Con Kolivas
Date: Fri May 26 2006 - 07:00:06 EST


On Friday 26 May 2006 14:20, Peter Williams wrote:
> This patch implements hard CPU rate caps per task as a proportion of a
> single CPU's capacity expressed in parts per thousand.

A hard cap of 1/1000 could lead to interesting starvation scenarios where a
mutex or semaphore was held by a task that hardly ever got cpu. Same goes to
a lesser extent to a 0 soft cap.

Here is how I handle idleprio tasks in current -ck:

http://ck.kolivas.org/patches/2.6/pre-releases/2.6.17-rc5/2.6.17-rc5-ck1/patches/track_mutexes-1.patch
tags tasks that are holding a mutex

http://ck.kolivas.org/patches/2.6/pre-releases/2.6.17-rc5/2.6.17-rc5-ck1/patches/sched-idleprio-1.7.patch
is the idleprio policy for staircase.

What it does is runs idleprio tasks as normal tasks when they hold a mutex or
are waking up after calling down() (ie holding a semaphore). These two in
combination have shown resistance to any priority inversion problems in
widespread testing. An attempt was made to track semaphores held via a
down_interruptible() but unfortunately the lack of strict rules about who
could release the semaphore meant accounting was impossible of this scenario.
In practice, though there were no test cases that showed it to be an issue,
and the recent conversion en-masse of semaphores to mutexes in the kernel
means it has pretty much covered most possibilities.

--
-ck
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/