Skip to content

Commit

Permalink
sched: cleanup inc/dec_rt_tasks
Browse files Browse the repository at this point in the history
Move some common definitions up to the function prologe to simplify the
body logic.

Signed-off-by: Gregory Haskins <ghaskins@novell.com>
  • Loading branch information
Gregory Haskins committed Dec 29, 2008
1 parent 6092848 commit 4d98427
Showing 1 changed file with 16 additions and 24 deletions.
40 changes: 16 additions & 24 deletions kernel/sched_rt.c
Original file line number Diff line number Diff line change
Expand Up @@ -550,30 +550,28 @@ static void update_curr_rt(struct rq *rq)
static inline
void inc_rt_tasks(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
{
WARN_ON(!rt_prio(rt_se_prio(rt_se)));
rt_rq->rt_nr_running++;
#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED
if (rt_se_prio(rt_se) < rt_rq->highest_prio) {
int prio = rt_se_prio(rt_se);
#ifdef CONFIG_SMP
struct rq *rq = rq_of_rt_rq(rt_rq);
struct rq *rq = rq_of_rt_rq(rt_rq);
#endif

rt_rq->highest_prio = rt_se_prio(rt_se);
WARN_ON(!rt_prio(prio));
rt_rq->rt_nr_running++;
#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHED
if (prio < rt_rq->highest_prio) {

rt_rq->highest_prio = prio;
#ifdef CONFIG_SMP
if (rq->online)
cpupri_set(&rq->rd->cpupri, rq->cpu,
rt_se_prio(rt_se));
cpupri_set(&rq->rd->cpupri, rq->cpu, prio);
#endif
}
#endif
#ifdef CONFIG_SMP
if (rt_se->nr_cpus_allowed > 1) {
struct rq *rq = rq_of_rt_rq(rt_rq);

if (rt_se->nr_cpus_allowed > 1)
rq->rt.rt_nr_migratory++;
}

update_rt_migration(rq_of_rt_rq(rt_rq));
update_rt_migration(rq);
#endif
#ifdef CONFIG_RT_GROUP_SCHED
if (rt_se_boosted(rt_se))
Expand All @@ -590,6 +588,7 @@ static inline
void dec_rt_tasks(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
{
#ifdef CONFIG_SMP
struct rq *rq = rq_of_rt_rq(rt_rq);
int highest_prio = rt_rq->highest_prio;
#endif

Expand All @@ -611,20 +610,13 @@ void dec_rt_tasks(struct sched_rt_entity *rt_se, struct rt_rq *rt_rq)
rt_rq->highest_prio = MAX_RT_PRIO;
#endif
#ifdef CONFIG_SMP
if (rt_se->nr_cpus_allowed > 1) {
struct rq *rq = rq_of_rt_rq(rt_rq);
if (rt_se->nr_cpus_allowed > 1)
rq->rt.rt_nr_migratory--;
}

if (rt_rq->highest_prio != highest_prio) {
struct rq *rq = rq_of_rt_rq(rt_rq);

if (rq->online)
cpupri_set(&rq->rd->cpupri, rq->cpu,
rt_rq->highest_prio);
}
if (rq->online && rt_rq->highest_prio != highest_prio)
cpupri_set(&rq->rd->cpupri, rq->cpu, rt_rq->highest_prio);

update_rt_migration(rq_of_rt_rq(rt_rq));
update_rt_migration(rq);
#endif /* CONFIG_SMP */
#ifdef CONFIG_RT_GROUP_SCHED
if (rt_se_boosted(rt_se))
Expand Down

0 comments on commit 4d98427

Please sign in to comment.