Forráskód Böngészése

Merge branch 'master' of git+ssh://scm.gforge.inria.fr/gitroot/starpu/starpu

Nathalie Furmento 5 éve
szülő
commit
eb4b748bcb

+ 4 - 0
src/common/knobs.c

@@ -547,6 +547,9 @@ void _starpu_perf_knob_exit(void)
 	STARPU_ASSERT(!_starpu_machine_is_running());
 
 	_starpu_perf_knob_unregister_all_scopes();
+	_starpu__workers_c__unregister_knobs();
+	_starpu__task_c__unregister_knobs();
+	_starpu__dmda_c__unregister_knobs();
 }
 
 /* - */
@@ -663,6 +666,7 @@ void _starpu_perf_knob_group_unregister(struct starpu_perf_knob_group *group)
 		free(group->array);
 	}
 	memset(group, 0, sizeof(*group));
+	free(group);
 }
 
 /* - */

+ 3 - 0
src/common/knobs.h

@@ -354,5 +354,8 @@ void _starpu_perf_knob_unregister_all_scopes(void);
 void _starpu__workers_c__register_knobs(void);	/* module: workers.c */
 void _starpu__task_c__register_knobs(void); /* module: task.c */
 void _starpu__dmda_c__register_knobs(void); /* module: dmda.c */
+void _starpu__workers_c__unregister_knobs(void);	/* module: workers.c */
+void _starpu__task_c__unregister_knobs(void); /* module: task.c */
+void _starpu__dmda_c__unregister_knobs(void); /* module: dmda.c */
 
 #endif // __KNOBS_H__

+ 6 - 0
src/core/task.c

@@ -222,6 +222,12 @@ void _starpu__task_c__register_knobs(void)
 	}
 }
 
+void _starpu__task_c__unregister_knobs(void)
+{
+	_starpu_perf_knob_group_unregister(__kg_starpu_task__per_scheduler);
+	__kg_starpu_task__per_scheduler = NULL;
+}
+
 /* - */
 
 /* XXX this should be reinitialized when StarPU is shutdown (or we should make

+ 8 - 0
src/core/workers.c

@@ -169,6 +169,14 @@ void _starpu__workers_c__register_knobs(void)
 #endif
 }
 
+void _starpu__workers_c__unregister_knobs(void)
+{
+	_starpu_perf_knob_group_unregister(__kg_starpu_global);
+	_starpu_perf_knob_group_unregister(__kg_starpu_worker__per_worker);
+	__kg_starpu_global = NULL;
+	__kg_starpu_worker__per_worker = NULL;
+}
+
 /* acquire/release semantic for concurrent initialization/de-initialization */
 static starpu_pthread_mutex_t init_mutex = STARPU_PTHREAD_MUTEX_INITIALIZER;
 static starpu_pthread_cond_t init_cond = STARPU_PTHREAD_COND_INITIALIZER;

+ 6 - 0
src/sched_policies/deque_modeling_policy_data_aware.c

@@ -154,6 +154,12 @@ void _starpu__dmda_c__register_knobs(void)
 	}
 }
 
+void _starpu__dmda_c__unregister_knobs(void)
+{
+	_starpu_perf_knob_group_unregister(__kg_starpu_dmda__per_scheduler);
+	__kg_starpu_dmda__per_scheduler = NULL;
+}
+
 /* The dmda scheduling policy uses
  *
  * alpha * T_computation + beta * T_communication + gamma * Consumption