aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched.c
diff options
context:
space:
mode:
authorGregory Haskins <ghaskins@novell.com>2008-12-29 09:39:49 -0500
committerGregory Haskins <ghaskins@novell.com>2008-12-29 09:39:49 -0500
commite864c499d9e57805ae1f9e7ea404dd223759cd53 (patch)
tree26dcc691f414c2d0eee026ea0f4d9e0d9e0475a2 /kernel/sched.c
parent4d9842776a23e52ec4c60e0a79f5e1bbe91e463e (diff)
sched: track the next-highest priority on each runqueue
We will use this later in the series to reduce the amount of rq-lock contention during a pull operation Signed-off-by: Gregory Haskins <ghaskins@novell.com>
Diffstat (limited to 'kernel/sched.c')
-rw-r--r--kernel/sched.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 756d981d91a4..7729f9a45a8b 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -463,7 +463,10 @@ struct rt_rq {
463 struct rt_prio_array active; 463 struct rt_prio_array active;
464 unsigned long rt_nr_running; 464 unsigned long rt_nr_running;
465#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED 465#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED
466 int highest_prio; /* highest queued rt task prio */ 466 struct {
467 int curr; /* highest queued rt task prio */
468 int next; /* next highest */
469 } highest_prio;
467#endif 470#endif
468#ifdef CONFIG_SMP 471#ifdef CONFIG_SMP
469 unsigned long rt_nr_migratory; 472 unsigned long rt_nr_migratory;
@@ -8169,7 +8172,8 @@ static void init_rt_rq(struct rt_rq *rt_rq, struct rq *rq)
8169 __set_bit(MAX_RT_PRIO, array->bitmap); 8172 __set_bit(MAX_RT_PRIO, array->bitmap);
8170 8173
8171#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED 8174#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED
8172 rt_rq->highest_prio = MAX_RT_PRIO; 8175 rt_rq->highest_prio.curr = MAX_RT_PRIO;
8176 rt_rq->highest_prio.next = MAX_RT_PRIO;
8173#endif 8177#endif
8174#ifdef CONFIG_SMP 8178#ifdef CONFIG_SMP
8175 rt_rq->rt_nr_migratory = 0; 8179 rt_rq->rt_nr_migratory = 0;