瀏覽代碼

dm: Avoid estimating transfer time while holding a lock

Samuel Thibault 5 年之前
父節點
當前提交
85e80336e8
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. 4 1
      src/sched_policies/deque_modeling_policy_data_aware.c

+ 4 - 1
src/sched_policies/deque_modeling_policy_data_aware.c

@@ -1100,6 +1100,10 @@ static void _dm_push_task_notify(struct starpu_task *task, int workerid, int per
 	/* Compute the expected penality */
 	double predicted = starpu_task_worker_expected_length(task, perf_workerid, STARPU_NMAX_SCHED_CTXS,
 						       starpu_task_get_implementation(task));
+	double predicted_transfer = NAN;
+
+	if (da)
+		predicted_transfer = starpu_task_expected_data_transfer_time_for(task, workerid);
 
 	double now = starpu_timing_now();
 
@@ -1111,7 +1115,6 @@ static void _dm_push_task_notify(struct starpu_task *task, int workerid, int per
 
 	if (da)
 	{
-		double predicted_transfer = starpu_task_expected_data_transfer_time_for(task, workerid);
 		/* If there is no prediction available, we consider the task has a null length */
 		if (!isnan(predicted_transfer))
 		{