Re: [BUG] cpu-hotplug: Can't offline the CPU with naughty realtime processes

From: Satoru Takeuchi
Date: Tue May 08 2007 - 03:17:59 EST


At Tue, 8 May 2007 09:40:33 +0530,
Srivatsa Vaddagiri wrote:
>
> On Tue, May 08, 2007 at 12:29:19PM +0900, Satoru Takeuchi wrote:
> > > We used to be able to create kernel threads higher than any userspace
> > > priority. If this is no longer true, I think that's OK: equal priority
> > > still means we'll get scheduled, right?
> >
> > IF SCHED_RR, yes. However, if SCHED_FIFO, no. Such process doen't have timeslice
> > and only relinquish CPU time voluntarily.
>
> yeah ..this is truly a problem if SCHED_FIFO user-space cpu hog task is
> running at MAX_USER_RT_PRIO (which happens to be same as max real-time
> priority kernel threads can attain - MAX_RT_PRIO).
>
> One option is to make MAX_USER_RT_PRIO < MAX_RT_PRIO. I am not sure what
> semantics that will break (perhaps the real-time folks can clarify
> that).

Sometimes I wonder at prio_array. It has 140 entries(from 0 to 139),
and the meaning of each entry is as follows, I think.

+-----------+-----------------------------------------------+
| index | usage |
+-----------+-----------------------------------------------+
| 0 - 98 | RT processes are here. They are in the entry |
| | whose index is 99 - sched_priority. |
+-----------+-----------------------------------------------+
| 99 | No one use it? CMIIW. |
+-----------+-----------------------------------------------+
| 100 - 139 | Ordinally processes are here. They are in the |
| | entry whose index is (nice+120) +/- 5 |
+-----------+-----------------------------------------------+

What's the purpose of the prio_array[99]? Once I exlore source tree
briefly and can't found any kernel thread which uses this entry.
Does anybody know?

Regards,

Satoru
-
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/