Skip to content

Commit

Permalink
[PATCH] sched: account rt tasks in prio_bias()
Browse files Browse the repository at this point in the history
Real time tasks' effect on prio_bias should be based on their real time
priority level instead of their static_prio which is based on nice.

Signed-off-by: Con Kolivas <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Nick Piggin <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
ckolivas authored and Linus Torvalds committed Nov 9, 2005
1 parent 738a2cc commit dad1c65
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -661,35 +661,41 @@ static int effective_prio(task_t *p)
}

#ifdef CONFIG_SMP
static inline void inc_prio_bias(runqueue_t *rq, int static_prio)
static inline void inc_prio_bias(runqueue_t *rq, int prio)
{
rq->prio_bias += MAX_PRIO - static_prio;
rq->prio_bias += MAX_PRIO - prio;
}

static inline void dec_prio_bias(runqueue_t *rq, int static_prio)
static inline void dec_prio_bias(runqueue_t *rq, int prio)
{
rq->prio_bias -= MAX_PRIO - static_prio;
rq->prio_bias -= MAX_PRIO - prio;
}
#else
static inline void inc_prio_bias(runqueue_t *rq, int static_prio)
static inline void inc_prio_bias(runqueue_t *rq, int prio)
{
}

static inline void dec_prio_bias(runqueue_t *rq, int static_prio)
static inline void dec_prio_bias(runqueue_t *rq, int prio)
{
}
#endif

static inline void inc_nr_running(task_t *p, runqueue_t *rq)
{
rq->nr_running++;
inc_prio_bias(rq, p->static_prio);
if (rt_task(p))
inc_prio_bias(rq, p->prio);
else
inc_prio_bias(rq, p->static_prio);
}

static inline void dec_nr_running(task_t *p, runqueue_t *rq)
{
rq->nr_running--;
dec_prio_bias(rq, p->static_prio);
if (rt_task(p))
dec_prio_bias(rq, p->prio);
else
dec_prio_bias(rq, p->static_prio);
}

/*
Expand Down

0 comments on commit dad1c65

Please sign in to comment.