Selaa lähdekoodia

Fix tasks not actually going through the calibrated path of the perfmodel select component

Samuel Thibault 7 vuotta sitten
vanhempi
commit
0bcefaf2ee
1 muutettua tiedostoa jossa 9 lisäystä ja 2 poistoa
  1. 9 2
      src/sched_policies/component_perfmodel_select.c

+ 9 - 2
src/sched_policies/component_perfmodel_select.c

@@ -2,7 +2,7 @@
  *
  * Copyright (C) 2013                                     Inria
  * Copyright (C) 2014,2016-2017                           CNRS
- * Copyright (C) 2014-2015,2017                           Université de Bordeaux
+ * Copyright (C) 2014-2015,2017-2018                      Université de Bordeaux
  *
  * StarPU is free software; you can redistribute it and/or modify
  * it under the terms of the GNU Lesser General Public License as published by
@@ -64,6 +64,12 @@ static int perfmodel_select_push_task(struct starpu_sched_component * component,
 
 }
 
+static struct starpu_task * perfmodel_select_pull_task(struct starpu_sched_component * component STARPU_ATTRIBUTE_UNUSED, struct starpu_sched_component * to STARPU_ATTRIBUTE_UNUSED)
+{
+	/* We don't want to pull tasks blindly, only let them go through push, so we push to the right component. */
+	return NULL;
+}
+
 static void perfmodel_select_component_deinit_data(struct starpu_sched_component * component)
 {
 	STARPU_ASSERT(component && component->data);
@@ -90,8 +96,9 @@ struct starpu_sched_component * starpu_sched_component_perfmodel_select_create(s
 	data->perfmodel_component = params->perfmodel_component;
 
 	component->data = data;
-	component->can_pull = starpu_sched_component_send_can_push_to_parents; 
+	component->can_pull = starpu_sched_component_send_can_push_to_parents;
 	component->push_task = perfmodel_select_push_task;
+	component->pull_task = perfmodel_select_pull_task;
 	component->deinit_data = perfmodel_select_component_deinit_data;
 	component->estimated_end = starpu_sched_component_estimated_end_min;