Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 76131
b: refs/heads/master
c: 697f0a4
h: refs/heads/master
i:
  76129: cc15734
  76127: 5c3c272
v: v3
  • Loading branch information
Gregory Haskins authored and Ingo Molnar committed Jan 25, 2008
1 parent 265b180 commit ab3c308
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 73fe6aae84400e2b475e2a1dc4e8592cd3ed6e69
refs/heads/master: 697f0a487f294e634a342764472b79375bb3158a
22 changes: 11 additions & 11 deletions trunk/kernel/sched_rt.c
Original file line number Diff line number Diff line change
Expand Up @@ -328,21 +328,21 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task,
* running task can migrate over to a CPU that is running a task
* of lesser priority.
*/
static int push_rt_task(struct rq *this_rq)
static int push_rt_task(struct rq *rq)
{
struct task_struct *next_task;
struct rq *lowest_rq;
int ret = 0;
int paranoid = RT_MAX_TRIES;

assert_spin_locked(&this_rq->lock);
assert_spin_locked(&rq->lock);

next_task = pick_next_highest_task_rt(this_rq, -1);
next_task = pick_next_highest_task_rt(rq, -1);
if (!next_task)
return 0;

retry:
if (unlikely(next_task == this_rq->curr)) {
if (unlikely(next_task == rq->curr)) {
WARN_ON(1);
return 0;
}
Expand All @@ -352,24 +352,24 @@ static int push_rt_task(struct rq *this_rq)
* higher priority than current. If that's the case
* just reschedule current.
*/
if (unlikely(next_task->prio < this_rq->curr->prio)) {
resched_task(this_rq->curr);
if (unlikely(next_task->prio < rq->curr->prio)) {
resched_task(rq->curr);
return 0;
}

/* We might release this_rq lock */
/* We might release rq lock */
get_task_struct(next_task);

/* find_lock_lowest_rq locks the rq if found */
lowest_rq = find_lock_lowest_rq(next_task, this_rq);
lowest_rq = find_lock_lowest_rq(next_task, rq);
if (!lowest_rq) {
struct task_struct *task;
/*
* find lock_lowest_rq releases this_rq->lock
* find lock_lowest_rq releases rq->lock
* so it is possible that next_task has changed.
* If it has, then try again.
*/
task = pick_next_highest_task_rt(this_rq, -1);
task = pick_next_highest_task_rt(rq, -1);
if (unlikely(task != next_task) && task && paranoid--) {
put_task_struct(next_task);
next_task = task;
Expand All @@ -380,7 +380,7 @@ static int push_rt_task(struct rq *this_rq)

assert_spin_locked(&lowest_rq->lock);

deactivate_task(this_rq, next_task, 0);
deactivate_task(rq, next_task, 0);
set_task_cpu(next_task, lowest_rq->cpu);
activate_task(lowest_rq, next_task, 0);

Expand Down

0 comments on commit ab3c308

Please sign in to comment.