提交 de5bdff7 编写于 作者: H Hiroshi Shimamoto 提交者: Ingo Molnar

sched: Make initial SCHED_RR timeslace DEF_TIMESLICE

Current the initial SCHED_RR timeslice of init_task is HZ, which means
1s, and is not same as the default SCHED_RR timeslice DEF_TIMESLICE.

Change that initial timeslice to the DEF_TIMESLICE.
Signed-off-by: NHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
[ s/DEF_TIMESLICE/RR_TIMESLICE/g ]
Signed-off-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/4F3C9995.3010800@ct.jp.nec.comSigned-off-by: NIngo Molnar <mingo@elte.hu>
上级 62f6536a
...@@ -149,7 +149,7 @@ extern struct cred init_cred; ...@@ -149,7 +149,7 @@ extern struct cred init_cred;
}, \ }, \
.rt = { \ .rt = { \
.run_list = LIST_HEAD_INIT(tsk.rt.run_list), \ .run_list = LIST_HEAD_INIT(tsk.rt.run_list), \
.time_slice = HZ, \ .time_slice = RR_TIMESLICE, \
.nr_cpus_allowed = NR_CPUS, \ .nr_cpus_allowed = NR_CPUS, \
}, \ }, \
.tasks = LIST_HEAD_INIT(tsk.tasks), \ .tasks = LIST_HEAD_INIT(tsk.tasks), \
......
...@@ -1234,6 +1234,12 @@ struct sched_rt_entity { ...@@ -1234,6 +1234,12 @@ struct sched_rt_entity {
#endif #endif
}; };
/*
* default timeslice is 100 msecs (used only for SCHED_RR tasks).
* Timeslices get refilled after they expire.
*/
#define RR_TIMESLICE (100 * HZ / 1000)
struct rcu_node; struct rcu_node;
enum perf_event_task_context { enum perf_event_task_context {
......
...@@ -1972,7 +1972,7 @@ static void task_tick_rt(struct rq *rq, struct task_struct *p, int queued) ...@@ -1972,7 +1972,7 @@ static void task_tick_rt(struct rq *rq, struct task_struct *p, int queued)
if (--p->rt.time_slice) if (--p->rt.time_slice)
return; return;
p->rt.time_slice = DEF_TIMESLICE; p->rt.time_slice = RR_TIMESLICE;
/* /*
* Requeue to the end of queue if we are not the only element * Requeue to the end of queue if we are not the only element
...@@ -2000,7 +2000,7 @@ static unsigned int get_rr_interval_rt(struct rq *rq, struct task_struct *task) ...@@ -2000,7 +2000,7 @@ static unsigned int get_rr_interval_rt(struct rq *rq, struct task_struct *task)
* Time slice is 0 for SCHED_FIFO tasks * Time slice is 0 for SCHED_FIFO tasks
*/ */
if (task->policy == SCHED_RR) if (task->policy == SCHED_RR)
return DEF_TIMESLICE; return RR_TIMESLICE;
else else
return 0; return 0;
} }
......
...@@ -36,11 +36,7 @@ extern __read_mostly int scheduler_running; ...@@ -36,11 +36,7 @@ extern __read_mostly int scheduler_running;
/* /*
* These are the 'tuning knobs' of the scheduler: * These are the 'tuning knobs' of the scheduler:
*
* default timeslice is 100 msecs (used only for SCHED_RR tasks).
* Timeslices get refilled after they expire.
*/ */
#define DEF_TIMESLICE (100 * HZ / 1000)
/* /*
* single value that denotes runtime == period, ie unlimited time. * single value that denotes runtime == period, ie unlimited time.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册