aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_gsn_edf.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2011-06-22 01:30:25 -0400
committerAndrea Bastoni <bastoni@cs.unc.edu>2011-08-27 12:04:53 -0400
commitb4c52e27caa701a16e120b43a0e70ca6529a58a4 (patch)
tree677c7326db2a1334b28870c2cf4dc3a9795be08e /litmus/sched_gsn_edf.c
parentb751e4e17e667f11404fc2f290416c0df050e964 (diff)
C-EDF: Make migration affinity work with Release Master
Needed to update C-EDF to handle release master. Also updated get_nearest_available_cpu() to take NO_CPU instead of -1 to indicate that there is no release master. While NO_CPU is 0xffffffff (-1 in two's complement), we still translate this value to -1 in case NO_CPU changes. Signed-off-by: Andrea Bastoni <bastoni@cs.unc.edu>
Diffstat (limited to 'litmus/sched_gsn_edf.c')
-rw-r--r--litmus/sched_gsn_edf.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/litmus/sched_gsn_edf.c b/litmus/sched_gsn_edf.c
index 17926e9fccdc..467f8b284de4 100644
--- a/litmus/sched_gsn_edf.c
+++ b/litmus/sched_gsn_edf.c
@@ -258,15 +258,15 @@ static noinline void requeue(struct task_struct* task)
258} 258}
259 259
260#ifdef CONFIG_SCHED_CPU_AFFINITY 260#ifdef CONFIG_SCHED_CPU_AFFINITY
261static cpu_entry_t* gsnedf_get_nearest_available_cpu(cpu_entry_t* start) 261static cpu_entry_t* gsnedf_get_nearest_available_cpu(cpu_entry_t *start)
262{ 262{
263 cpu_entry_t* affinity; 263 cpu_entry_t *affinity;
264 264
265 get_nearest_available_cpu(affinity, start, gsnedf_cpu_entries, 265 get_nearest_available_cpu(affinity, start, gsnedf_cpu_entries,
266#ifdef CONFIG_RELEASE_MASTER 266#ifdef CONFIG_RELEASE_MASTER
267 gsnedf.release_master 267 gsnedf.release_master
268#else 268#else
269 -1 269 NO_CPU
270#endif 270#endif
271 ); 271 );
272 272
@@ -278,7 +278,7 @@ static cpu_entry_t* gsnedf_get_nearest_available_cpu(cpu_entry_t* start)
278static void check_for_preemptions(void) 278static void check_for_preemptions(void)
279{ 279{
280 struct task_struct *task; 280 struct task_struct *task;
281 cpu_entry_t* last; 281 cpu_entry_t *last;
282 282
283 for (last = lowest_prio_cpu(); 283 for (last = lowest_prio_cpu();
284 edf_preemption_needed(&gsnedf, last->linked); 284 edf_preemption_needed(&gsnedf, last->linked);
@@ -290,7 +290,7 @@ static void check_for_preemptions(void)
290 290
291#ifdef CONFIG_SCHED_CPU_AFFINITY 291#ifdef CONFIG_SCHED_CPU_AFFINITY
292 { 292 {
293 cpu_entry_t* affinity = 293 cpu_entry_t *affinity =
294 gsnedf_get_nearest_available_cpu( 294 gsnedf_get_nearest_available_cpu(
295 &per_cpu(gsnedf_cpu_entries, task_cpu(task))); 295 &per_cpu(gsnedf_cpu_entries, task_cpu(task)));
296 if (affinity) 296 if (affinity)