Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Extend simcall_host_execute() for CPU affinity
[simgrid.git] / src / surf / workstation.c
index cae612e..8dce18f 100644 (file)
@@ -318,6 +318,16 @@ void ws_action_set_bound(surf_action_t action, double bound)
     DIE_IMPOSSIBLE;
 }
 
+void ws_action_set_affinity(surf_action_t action, void *workstation, unsigned long mask)
+{
+  if (action->model_obj->type == SURF_MODEL_TYPE_NETWORK)
+    DIE_IMPOSSIBLE;
+  else if (action->model_obj->type == SURF_MODEL_TYPE_CPU)
+    action->model_obj->set_affinity(action, workstation, mask);
+  else
+    DIE_IMPOSSIBLE;
+}
+
 #ifdef HAVE_TRACING
 static void ws_action_set_category(surf_action_t action, const char *category)
 {
@@ -616,6 +626,7 @@ static void surf_workstation_model_init_internal(void)
   model->set_max_duration = ws_action_set_max_duration;
   model->set_priority     = ws_action_set_priority;
   model->set_bound        = ws_action_set_bound;
+  model->set_affinity     = ws_action_set_affinity;
   #ifdef HAVE_TRACING
   model->set_category     = ws_action_set_category;
   #endif