cfq-iosched: make io priorities inherit CPU scheduling class as well as nice

We currently set all processes to the best-effort scheduling class,
regardless of what CPU scheduling class they belong to. Improve that
so that we correctly track idle and rt scheduling classes as well.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Jens Axboe 2008-05-07 09:51:23 +02:00
parent dbaf2c003e
commit 6d63c27557
2 changed files with 16 additions and 2 deletions

View file

@ -67,6 +67,20 @@ static inline int task_nice_ioprio(struct task_struct *task)
return (task_nice(task) + 20) / 5;
}
/*
* This is for the case where the task hasn't asked for a specific IO class.
* Check for idle and rt task process, and return appropriate IO class.
*/
static inline int task_nice_ioclass(struct task_struct *task)
{
if (task->policy == SCHED_IDLE)
return IOPRIO_CLASS_IDLE;
else if (task->policy == SCHED_FIFO || task->policy == SCHED_RR)
return IOPRIO_CLASS_RT;
else
return IOPRIO_CLASS_BE;
}
/*
* For inheritance, return the highest of the two given priorities
*/