瀏覽代碼

fxt: drop duplicate task name filling

_STARPU_TRACE_TASK_NAME is now called very early at submission time, so
_STARPU_FUT_START_CODELET_BODY does not need to record it a second time.
Samuel Thibault 4 年之前
父節點
當前提交
deb75616e7
共有 2 個文件被更改,包括 10 次插入20 次删除
  1. 7 14
      src/common/fxt.h
  2. 3 6
      src/debug/traces/starpu_fxt.c

+ 7 - 14
src/common/fxt.h

@@ -748,17 +748,7 @@ do {									\
 
 #define _STARPU_TRACE_START_CODELET_BODY(job, nimpl, perf_arch, workerid)				\
 do {									\
-        const char *model_name = _starpu_job_get_model_name((job)), *name = _starpu_job_get_task_name((job));         \
-	if (name)                                                 \
-	{								\
-		/* we include the task name */			\
-		_STARPU_FUT_FULL_PROBE5STR(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_START_CODELET_BODY, (job)->job_id, ((job)->task)->sched_ctx, workerid, starpu_worker_get_memory_node(workerid), 1, name); \
-		if (model_name)					\
-			_STARPU_FUT_FULL_PROBE1STR(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_MODEL_NAME, (job)->job_id, model_name); \
-	}								\
-	else {                                                          \
-		FUT_FULL_PROBE5(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_START_CODELET_BODY, (job)->job_id, ((job)->task)->sched_ctx, workerid, starpu_worker_get_memory_node(workerid), 0); \
-	}								\
+	FUT_FULL_PROBE4(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_START_CODELET_BODY, (job)->job_id, ((job)->task)->sched_ctx, workerid, starpu_worker_get_memory_node(workerid)); \
 	{								\
 		if ((job)->task->cl)					\
 		{							\
@@ -851,14 +841,17 @@ do {									\
 
 #define _STARPU_TRACE_TASK_NAME(job)					\
 	do {								\
-        const char *model_name = _starpu_job_get_task_name((job));                       \
-	if (model_name)					                        \
+        const char *model_name = _starpu_job_get_model_name((job));		\
+	const char *name = _starpu_job_get_task_name((job));			\
+	if (name)					                        \
 	{									\
-		_STARPU_FUT_FULL_PROBE1STR(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_TASK_NAME, (job)->job_id, model_name);\
+		_STARPU_FUT_FULL_PROBE1STR(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_TASK_NAME, (job)->job_id, name);\
 	}									\
 	else {									\
 		_STARPU_FUT_FULL_PROBE1STR(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_TASK_NAME, (job)->job_id, "unknown");\
 	}									\
+	if (model_name)					\
+		_STARPU_FUT_FULL_PROBE1STR(_STARPU_FUT_KEYMASK_TASK, _STARPU_FUT_MODEL_NAME, (job)->job_id, model_name); \
 } while(0)
 
 #define _STARPU_TRACE_TASK_COLOR(job)						\

+ 3 - 6
src/debug/traces/starpu_fxt.c

@@ -1532,8 +1532,9 @@ static void handle_start_codelet_body(struct fxt_ev_64 *ev, struct starpu_fxt_op
 
 	if (worker < 0) return;
 
-	unsigned long has_name = ev->param[4];
-	char *name = has_name?get_fxt_string(ev, 5):"unknown";
+	struct task_info *task = get_task(ev->param[0], options->file_rank);
+	char *name = task->name;
+	create_paje_state_if_not_found(name, task->color, options);
 
 	snprintf(_starpu_last_codelet_symbol[worker], sizeof(_starpu_last_codelet_symbol[worker]), "%.*s", (int) sizeof(_starpu_last_codelet_symbol[worker])-1, name);
 	_starpu_last_codelet_symbol[worker][sizeof(_starpu_last_codelet_symbol[worker])-1] = 0;
@@ -1543,12 +1544,8 @@ static void handle_start_codelet_body(struct fxt_ev_64 *ev, struct starpu_fxt_op
 	double last_start_codelet_time = last_codelet_start[worker];
 	last_codelet_start[worker] = start_codelet_time;
 
-	struct task_info *task = get_task(ev->param[0], options->file_rank);
-	create_paje_state_if_not_found(name, task->color, options);
-
 	task->start_time = start_codelet_time;
 	task->workerid = worker;
-	task->name = strdup(name);
 	task->node = node;
 
 	if (out_paje_file)