Selaa lähdekoodia

src/debug/traces/starpu_fxt.c: fix processing of event _STARPU_FUT_END_CODELET_BODY: the thread id is the 6th parameter, not the 4th one

Nathalie Furmento 11 vuotta sitten
vanhempi
commit
2fe69c7c75
1 muutettua tiedostoa jossa 16 lisäystä ja 15 poistoa
  1. 16 15
      src/debug/traces/starpu_fxt.c

+ 16 - 15
src/debug/traces/starpu_fxt.c

@@ -540,7 +540,7 @@ static void create_paje_state_if_not_found(char *name, struct starpu_fxt_options
 		fprintf(out_paje_file, "6	%s	Ctx10	%s	\"154.0 205.0 50.0\" \n", name, name);
 #endif
 	}
-		
+
 }
 
 
@@ -580,7 +580,7 @@ static void handle_start_codelet_body(struct fxt_ev_64 *ev, struct starpu_fxt_op
 #endif
 		}
 	}
-	
+
 }
 
 static long dumped_codelets_count;
@@ -2026,7 +2026,7 @@ static void write_task(struct parse_task pt)
 			perror("open failed :");
 			exit(-1);
 		}
-		HASH_ADD_STR(kernels, name, kernel); 
+		HASH_ADD_STR(kernels, name, kernel);
 		fprintf(codelet_list, "%s\n", codelet_name);
 	}
 	double time = pt.exec_time * NANO_SEC_TO_MILI_SEC;
@@ -2063,7 +2063,7 @@ void starpu_fxt_write_data_trace(char *filename_in)
 
 	struct fxt_ev_64 ev;
 
-	unsigned workerid;
+	int workerid=-1;
 	unsigned long has_name = 0;
 
 	while(1)
@@ -2073,13 +2073,13 @@ void starpu_fxt_write_data_trace(char *filename_in)
 		{
 			break;
 		}
-		
+
 		switch (ev.code)
 		{
 		case _STARPU_FUT_WORKER_INIT_START:
 			register_worker_id(ev.param[4], ev.param[1]);
 			break;
-			
+
 		case _STARPU_FUT_START_CODELET_BODY:
 			workerid = find_worker_id(ev.param[2]);
 			tasks[workerid].exec_time = ev.time;
@@ -2087,9 +2087,10 @@ void starpu_fxt_write_data_trace(char *filename_in)
 			tasks[workerid].codelet_name = strdup(has_name ? (char *) &ev.param[4] : "unknow");
 			//fprintf(stderr, "start codelet :[%d][%s]\n", workerid, tasks[workerid].codelet_name);
 			break;
-			
+
 		case _STARPU_FUT_END_CODELET_BODY:
-			workerid = find_worker_id(ev.param[4]);
+			workerid = find_worker_id(ev.param[6]);
+			assert(workerid != -1);
 			tasks[workerid].exec_time = ev.time - tasks[workerid].exec_time;
 			write_task(tasks[workerid]);
 			break;
@@ -2098,7 +2099,7 @@ void starpu_fxt_write_data_trace(char *filename_in)
 			workerid = ev.param[0];
 			tasks[workerid].data_total = ev.param[1];
 			break;
-			
+
 		default:
 #ifdef STARPU_VERBOSE
 			fprintf(stderr, "unknown event.. %x at time %llx WITH OFFSET %llx\n",
@@ -2107,25 +2108,25 @@ void starpu_fxt_write_data_trace(char *filename_in)
 			break;
 		}
 	}
-	
+
 	if (close(fd_in))
 	{
 	        perror("close failed :");
 	        exit(-1);
 	}
-	
+
 	if(fclose(codelet_list))
 	{
 		perror("close failed :");
 		exit(-1);
 	}
-	
-	struct starpu_data_trace_kernel *kernel, *tmp;	
+
+	struct starpu_data_trace_kernel *kernel, *tmp;
 
 	HASH_ITER(hh, kernels, kernel, tmp)
 	{
 		if(fclose(kernel->file))
-		{ 
+		{
 			perror("close failed :");
 			exit(-1);
 		}
@@ -2133,6 +2134,6 @@ void starpu_fxt_write_data_trace(char *filename_in)
 		free(kernel->name);
 		free(kernel);
 	}
-		
+
 }
 #endif // STARPU_USE_FXT