Forráskód Böngészése

migrate existing memory state tracing to new events

Samuel Thibault 6 éve
szülő
commit
bbbf94114f
4 módosított fájl, 21 hozzáadás és 15 törlés
  1. 1 0
      include/starpu_fxt.h
  2. 5 1
      src/common/fxt.c
  3. 0 9
      src/common/fxt.h
  4. 15 5
      src/debug/traces/starpu_fxt.c

+ 1 - 0
include/starpu_fxt.h

@@ -49,6 +49,7 @@ struct starpu_fxt_options
 	unsigned ninputfiles;
 	unsigned no_smooth;
 	unsigned no_acquire;
+	unsigned memory_states;
 	unsigned internal;
 	unsigned label_deps;
 	char *filenames[STARPU_FXT_MAX_FILES];

+ 5 - 1
src/common/fxt.c

@@ -1,7 +1,7 @@
 /* StarPU --- Runtime system for heterogeneous multicore architectures.
  *
  * Copyright (C) 2012-2013,2015                           Inria
- * Copyright (C) 2008-2017                                Université de Bordeaux
+ * Copyright (C) 2008-2018                                Université de Bordeaux
  * Copyright (C) 2010-2018                                CNRS
  *
  * StarPU is free software; you can redistribute it and/or modify
@@ -210,6 +210,10 @@ static void _starpu_generate_paje_trace_read_option(const char *option, struct s
 	{
 		options->no_acquire = 1;
 	}
+	else if (strcmp(option, "-memory-states") == 0)
+	{
+		options->memory_states = 1;
+	}
 	else if (strcmp(option, "-internal") == 0)
 	{
 		options->internal = 1;

+ 0 - 9
src/common/fxt.h

@@ -222,7 +222,6 @@
 #define _STARPU_FUT_TASK_WAIT_FOR_ALL_END	0x517b
 
 #define _STARPU_FUT_HANDLE_DATA_REGISTER	0x517c
-#define _STARPU_FUT_DATA_INVALIDATE		0x517d
 
 #define _STARPU_FUT_START_FETCH_INPUT	0x517e
 #define _STARPU_FUT_END_FETCH_INPUT	0x517f
@@ -1117,13 +1116,6 @@ do {										\
 #define _STARPU_TRACE_HANDLE_DATA_UNREGISTER(handle)	\
 	FUT_DO_PROBE1(_STARPU_FUT_HANDLE_DATA_UNREGISTER, handle)
 
-#if 0
-#define _STARPU_TRACE_DATA_INVALIDATE(handle, node)		\
-	FUT_DO_PROBE2(_STARPU_FUT_DATA_INVALIDATE, handle, node)
-#else
-#define _STARPU_TRACE_DATA_INVALIDATE(handle, node)	do {(void) handle; (void) node;} while (0)
-#endif
-
 //Coherency Data Traces
 #define _STARPU_TRACE_DATA_STATE_INVALID(handle, node)      \
        FUT_DO_PROBE2(_STARPU_FUT_DATA_STATE_INVALID, handle, node)
@@ -1253,7 +1245,6 @@ do {										\
 #define _STARPU_TRACE_SCHED_COMPONENT_PULL(from, to, task)	do {(void)(from); (void)(to); (void)(task);} while (0)
 #define _STARPU_TRACE_HANDLE_DATA_REGISTER(handle)	do {(void)(handle);} while (0)
 #define _STARPU_TRACE_HANDLE_DATA_UNREGISTER(handle)	do {(void)(handle);} while (0)
-#define _STARPU_TRACE_DATA_INVALIDATE(handle, node)	do {(void)(handle); (void)(node);} while (0)
 #define _STARPU_TRACE_WORKER_START_FETCH_INPUT(job, id)	do {(void)(job); (void)(id);} while(0)
 #define _STARPU_TRACE_WORKER_END_FETCH_INPUT(job, id)	do {(void)(job); (void)(id);} while(0)
 #define _STARPU_TRACE_DATA_STATE_INVALID(handle, node)	do {(void)(handle); (void)(node);} while(0)

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

@@ -2105,7 +2105,7 @@ static void handle_data_unregister(struct fxt_ev_64 *ev, struct starpu_fxt_optio
 	data_dump(data);
 }
 
-static void handle_data_invalidate(struct fxt_ev_64 *ev, struct starpu_fxt_options *options)
+static void handle_data_state(struct fxt_ev_64 *ev, struct starpu_fxt_options *options, const char *state)
 {
 	unsigned long handle = ev->param[0];
 	unsigned node = ev->param[1];
@@ -2117,9 +2117,9 @@ static void handle_data_invalidate(struct fxt_ev_64 *ev, struct starpu_fxt_optio
 		char paje_value[STARPU_POTI_STR_LEN], memnode_container[STARPU_POTI_STR_LEN];
 		memmanager_container_alias(memnode_container, STARPU_POTI_STR_LEN, prefix, node);
 		snprintf(paje_value, sizeof(paje_value), "%lx", handle);
-		poti_NewEvent(get_event_time_stamp(ev, options), memnode_container, "invalidate", paje_value);
+		poti_NewEvent(get_event_time_stamp(ev, options), memnode_container, state, paje_value);
 #else
-		fprintf(out_paje_file, "9	%.9f	invalidate	%smm%u	%lx\n", get_event_time_stamp(ev, options), prefix, node, handle);
+		fprintf(out_paje_file, "9	%.9f	%s	%smm%u	%lx\n", get_event_time_stamp(ev, options), state, prefix, node, handle);
 #endif
 	}
 }
@@ -3487,8 +3487,17 @@ void _starpu_fxt_parse_new_file(char *filename_in, struct starpu_fxt_options *op
 				handle_data_unregister(&ev, options);
 				break;
 
-			case _STARPU_FUT_DATA_INVALIDATE:
-				handle_data_invalidate(&ev, options);
+			case _STARPU_FUT_DATA_STATE_INVALID:
+				if (options->memory_states)
+					handle_data_state(&ev, options, "invalid");
+				break;
+			case _STARPU_FUT_DATA_STATE_OWNER:
+				if (options->memory_states)
+					handle_data_state(&ev, options, "owner");
+				break;
+			case _STARPU_FUT_DATA_STATE_SHARED:
+				if (options->memory_states)
+					handle_data_state(&ev, options, "shared");
 				break;
 
 			case _STARPU_FUT_DATA_COPY:
@@ -3929,6 +3938,7 @@ void starpu_fxt_options_init(struct starpu_fxt_options *options)
 	options->no_flops = 0;
 	options->no_smooth = 0;
 	options->no_acquire = 0;
+	options->memory_states = 0;
 	options->internal = 0;
 	options->label_deps = 0;
 	options->ninputfiles = 0;