Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Clear constraint objects before adding new ones
authorTakahiro Hirofuchi <t.hirofuchi+sg@aist.go.jp>
Thu, 24 Oct 2013 13:48:41 +0000 (15:48 +0200)
committerTakahiro Hirofuchi <t.hirofuchi+sg@aist.go.jp>
Thu, 24 Oct 2013 13:48:41 +0000 (15:48 +0200)
Fix a miscalculation bug caused by the wrong use of lmm_expand().

src/surf/cpu_cas01.c

index 0692c1b..897cfcd 100644 (file)
@@ -268,13 +268,13 @@ static void cpu_action_set_affinity(surf_action_t action, void *cpu, unsigned lo
 
   unsigned long i;
   for (i = 0; i < CPU->core; i++) {
+    XBT_INFO("clear affinity %p to cpu-%lu@%s", action, i, CPU->generic_resource.name);
+    lmm_shrink(cpu_model->model_private->maxmin_system, CPU->constraint_core[i], var_obj);
+
     unsigned long has_affinity = (1UL << i) & mask;
     if (has_affinity) {
       XBT_INFO("set affinity %p to cpu-%lu@%s", action, i, CPU->generic_resource.name);
       lmm_expand(cpu_model->model_private->maxmin_system, CPU->constraint_core[i], var_obj, 1.0);
-    } else {
-      XBT_INFO("clear affinity %p to cpu-%lu@%s", action, i, CPU->generic_resource.name);
-      lmm_shrink(cpu_model->model_private->maxmin_system, CPU->constraint_core[i], var_obj);
     }
   }