kernel bug, nice level should not affect SCHED_RR timeslice
From: Chris Friesen
Date: Mon Mar 05 2007 - 15:02:32 EST
Apparently the timeslice of the SCHED_RR process varies with nice level
the same way that it does for SCHED_OTHER. So while niceness doesn't
affect the priority of a SCHED_RR task, it does impact how much cpu it gets.
SUSv3 indicates, "Any processes or threads using SCHED_FIFO or SCHED_RR
shall be unaffected by a call to setpriority()."
The code in set_user_nice() has a comment that leads me to believe the
current behaviour is accidental (although I think the "not" in the last
line isn't meant to be there):
/*
* The RT priorities are set via sched_setscheduler(), but we still
* allow the 'normal' nice value to be set - but as expected
* it wont have any effect on scheduling until the task is
* not SCHED_NORMAL/SCHED_BATCH:
*/
It appears that the desired behaviour is to allow setting the nice level
of a realtime task, but to not have it affect anything until (and
unless) it drops that realtime status. Is this correct?
Chris
-
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/