aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched/rt.c
diff options
context:
space:
mode:
authorClark Williams <williams@redhat.com>2013-02-07 10:47:04 -0500
committerIngo Molnar <mingo@kernel.org>2013-02-07 14:51:07 -0500
commitce0dbbbb30aee6a835511d5be446462388ba9eee (patch)
treec3d4d6f64a0fe7eec9283f4413d111a8d37d7053 /kernel/sched/rt.c
parentcf4aebc292fac7f34f8345664320e9d4a42ca76c (diff)
sched/rt: Add a tuning knob to allow changing SCHED_RR timeslice
Add a /proc/sys/kernel scheduler knob named sched_rr_timeslice_ms that allows global changing of the SCHED_RR timeslice value. User visable value is in milliseconds but is stored as jiffies. Setting to 0 (zero) resets to the default (currently 100ms). Signed-off-by: Clark Williams <williams@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Link: http://lkml.kernel.org/r/20130207094704.13751796@riff.lan Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/sched/rt.c')
-rw-r--r--kernel/sched/rt.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c
index c25de141c576..fb0f77e402b6 100644
--- a/kernel/sched/rt.c
+++ b/kernel/sched/rt.c
@@ -7,6 +7,8 @@
7 7
8#include <linux/slab.h> 8#include <linux/slab.h>
9 9
10int sched_rr_timeslice = RR_TIMESLICE;
11
10static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun); 12static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun);
11 13
12struct rt_bandwidth def_rt_bandwidth; 14struct rt_bandwidth def_rt_bandwidth;
@@ -2016,7 +2018,7 @@ static void task_tick_rt(struct rq *rq, struct task_struct *p, int queued)
2016 if (--p->rt.time_slice) 2018 if (--p->rt.time_slice)
2017 return; 2019 return;
2018 2020
2019 p->rt.time_slice = RR_TIMESLICE; 2021 p->rt.time_slice = sched_rr_timeslice;
2020 2022
2021 /* 2023 /*
2022 * Requeue to the end of queue if we (and all of our ancestors) are the 2024 * Requeue to the end of queue if we (and all of our ancestors) are the
@@ -2047,7 +2049,7 @@ static unsigned int get_rr_interval_rt(struct rq *rq, struct task_struct *task)
2047 * Time slice is 0 for SCHED_FIFO tasks 2049 * Time slice is 0 for SCHED_FIFO tasks
2048 */ 2050 */
2049 if (task->policy == SCHED_RR) 2051 if (task->policy == SCHED_RR)
2050 return RR_TIMESLICE; 2052 return sched_rr_timeslice;
2051 else 2053 else
2052 return 0; 2054 return 0;
2053} 2055}