diff options
author | Clark Williams <williams@redhat.com> | 2013-02-07 10:47:04 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-02-07 14:51:07 -0500 |
commit | ce0dbbbb30aee6a835511d5be446462388ba9eee (patch) | |
tree | c3d4d6f64a0fe7eec9283f4413d111a8d37d7053 /kernel/sched/rt.c | |
parent | cf4aebc292fac7f34f8345664320e9d4a42ca76c (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.c | 6 |
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 | ||
10 | int sched_rr_timeslice = RR_TIMESLICE; | ||
11 | |||
10 | static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun); | 12 | static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun); |
11 | 13 | ||
12 | struct rt_bandwidth def_rt_bandwidth; | 14 | struct 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 | } |