diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2009-04-24 12:11:07 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2009-04-24 12:11:07 -0400 |
commit | 0d59225b505708c1e3ec69392a9cfa109d6610b5 (patch) | |
tree | 0e0924db08917e0d4ed6e603f7d52d0ec5220fdd | |
parent | 3d0d33c07d203296162e1b703e6027ac8e0edb0e (diff) |
G-EDF: release master support bugfix
Don't relink to release master.
-rw-r--r-- | litmus/sched_gedf.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/litmus/sched_gedf.c b/litmus/sched_gedf.c index 87469253a8..753bb0418b 100644 --- a/litmus/sched_gedf.c +++ b/litmus/sched_gedf.c | |||
@@ -339,7 +339,7 @@ static struct task_struct* gedf_schedule(struct task_struct * prev) | |||
339 | int out_of_time, sleep, preempt, exists, blocks; | 339 | int out_of_time, sleep, preempt, exists, blocks; |
340 | struct task_struct* next = NULL; | 340 | struct task_struct* next = NULL; |
341 | 341 | ||
342 | /* Bail out earlier if we are the release master. | 342 | /* Bail out early if we are the release master. |
343 | * The release master never schedules any real-time tasks. | 343 | * The release master never schedules any real-time tasks. |
344 | */ | 344 | */ |
345 | if (gedf.release_master == entry->cpu) | 345 | if (gedf.release_master == entry->cpu) |
@@ -474,11 +474,14 @@ static void gedf_task_new(struct task_struct * t, int on_rq, int running) | |||
474 | if (running) { | 474 | if (running) { |
475 | entry = &per_cpu(gedf_cpu_entries, task_cpu(t)); | 475 | entry = &per_cpu(gedf_cpu_entries, task_cpu(t)); |
476 | BUG_ON(entry->scheduled); | 476 | BUG_ON(entry->scheduled); |
477 | entry->scheduled = t; | 477 | if (entry->cpu != gedf.release_master) { |
478 | t->rt_param.scheduled_on = task_cpu(t); | 478 | entry->scheduled = t; |
479 | t->rt_param.scheduled_on = task_cpu(t); | ||
480 | } else | ||
481 | tsk_rt(t)->scheduled_on = NO_CPU; | ||
479 | } else | 482 | } else |
480 | t->rt_param.scheduled_on = NO_CPU; | 483 | tsk_rt(t)->scheduled_on = NO_CPU; |
481 | t->rt_param.linked_on = NO_CPU; | 484 | tsk_rt(t)->linked_on = NO_CPU; |
482 | 485 | ||
483 | /* setup job params */ | 486 | /* setup job params */ |
484 | release_at(t, litmus_clock()); | 487 | release_at(t, litmus_clock()); |