diff options
author | Peter Williams <pwil3058@bigpond.net.au> | 2009-09-21 01:31:53 +0000 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-09-21 09:53:55 +0200 |
commit | 0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1 (patch) | |
tree | 54c0c8dc201122483bdd7e8975103b07f6afd34b /kernel/sched_rt.c | |
parent | cb5fd13f1178dee4302646b2890d884c380160e1 (diff) | |
download | lwn-0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1.tar.gz lwn-0d721ceadbeaa24d7f9dd41b3e5e29912327a7e1.zip |
sched: Simplify sys_sched_rr_get_interval() system call
By removing the need for it to know details of scheduling classes.
This allows PlugSched to define orthogonal scheduling classes.
Signed-off-by: Peter Williams <pwil3058@bigpond.net.au>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
LKML-Reference: <06d1b89ee15a0eef82d7.1253496713@mudlark.pw.nest>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r-- | kernel/sched_rt.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c index 13de7126a6ab..a4d790cddb19 100644 --- a/kernel/sched_rt.c +++ b/kernel/sched_rt.c @@ -1734,6 +1734,17 @@ static void set_curr_task_rt(struct rq *rq) dequeue_pushable_task(rq, p); } +unsigned int get_rr_interval_rt(struct task_struct *task) +{ + /* + * Time slice is 0 for SCHED_FIFO tasks + */ + if (task->policy == SCHED_RR) + return DEF_TIMESLICE; + else + return 0; +} + static const struct sched_class rt_sched_class = { .next = &fair_sched_class, .enqueue_task = enqueue_task_rt, @@ -1762,6 +1773,8 @@ static const struct sched_class rt_sched_class = { .set_curr_task = set_curr_task_rt, .task_tick = task_tick_rt, + .get_rr_interval = get_rr_interval_rt, + .prio_changed = prio_changed_rt, .switched_to = switched_to_rt, }; |