瀏覽代碼

drivers: call _starpu_push_task_output after _starpu_driver_update_job_feedback as data used by _starpu_driver_update_job_feedback may get freed by _starpu_push_task_output

Nathalie Furmento 14 年之前
父節點
當前提交
b852227eef
共有 3 個文件被更改,包括 5 次插入6 次删除
  1. 1 2
      src/drivers/cpu/driver_cpu.c
  2. 2 2
      src/drivers/cuda/driver_cuda.c
  3. 2 2
      src/drivers/opencl/driver_opencl.c

+ 1 - 2
src/drivers/cpu/driver_cpu.c

@@ -67,10 +67,9 @@ static int execute_job_on_cpu(starpu_job_t j, struct starpu_worker_s *cpu_args,
 
 
 	if (rank == 0)
 	if (rank == 0)
 	{
 	{
-		_starpu_push_task_output(task, 0);
-
 		_starpu_driver_update_job_feedback(j, cpu_args,
 		_starpu_driver_update_job_feedback(j, cpu_args,
 				perf_arch, &codelet_start, &codelet_end);
 				perf_arch, &codelet_start, &codelet_end);
+		_starpu_push_task_output(task, 0);
 	}
 	}
 
 
 	return 0;
 	return 0;

+ 2 - 2
src/drivers/cuda/driver_cuda.c

@@ -204,10 +204,10 @@ static int execute_job_on_cuda(starpu_job_t j, struct starpu_worker_s *args)
 
 
 	_starpu_driver_end_job(args, j, &codelet_end, 0);
 	_starpu_driver_end_job(args, j, &codelet_end, 0);
 
 
-	_starpu_push_task_output(task, mask);
-
 	_starpu_driver_update_job_feedback(j, args, args->perf_arch, &codelet_start, &codelet_end);
 	_starpu_driver_update_job_feedback(j, args, args->perf_arch, &codelet_start, &codelet_end);
 
 
+	_starpu_push_task_output(task, mask);
+
 	return 0;
 	return 0;
 }
 }
 
 

+ 2 - 2
src/drivers/opencl/driver_opencl.c

@@ -534,10 +534,10 @@ static int _starpu_opencl_execute_job(starpu_job_t j, struct starpu_worker_s *ar
 
 
 	_starpu_driver_end_job(args, j, &codelet_end, 0);
 	_starpu_driver_end_job(args, j, &codelet_end, 0);
 
 
-	_starpu_push_task_output(task, mask);
-
 	_starpu_driver_update_job_feedback(j, args, args->perf_arch,
 	_starpu_driver_update_job_feedback(j, args, args->perf_arch,
 							&codelet_start, &codelet_end);
 							&codelet_start, &codelet_end);
 
 
+	_starpu_push_task_output(task, mask);
+
 	return EXIT_SUCCESS;
 	return EXIT_SUCCESS;
 }
 }