瀏覽代碼

port r 11514 from 1.1: Add unpartition state in trace

Samuel Thibault 11 年之前
父節點
當前提交
631d6e3185
共有 5 個文件被更改,包括 26 次插入4 次删除
  1. 11 0
      src/common/fxt.h
  2. 2 0
      src/datawizard/filters.c
  3. 1 1
      src/datawizard/user_interactions.c
  4. 5 0
      src/debug/traces/starpu_fxt.c
  5. 7 3
      src/debug/traces/starpu_paje.c

+ 11 - 0
src/common/fxt.h

@@ -137,6 +137,9 @@
 
 #define _STARPU_FUT_DATA_LOAD 0x5153
 
+#define _STARPU_FUT_START_UNPARTITION 0x5154
+#define _STARPU_FUT_END_UNPARTITION 0x5155
+
 #ifdef STARPU_USE_FXT
 #include <fxt/fxt.h>
 #include <fxt/fut.h>
@@ -564,6 +567,12 @@ do {										\
 #define _STARPU_TRACE_MEMORY_FULL(size)	\
 	FUT_DO_PROBE2(_STARPU_FUT_MEMORY_FULL,size,_starpu_gettid());
 
+#define _STARPU_TRACE_START_UNPARTITION(handle, memnode)		\
+	FUT_DO_PROBE3(_STARPU_FUT_START_UNPARTITION, memnode, _starpu_gettid(), handle);
+	
+#define _STARPU_TRACE_END_UNPARTITION(handle, memnode)		\
+	FUT_DO_PROBE3(_STARPU_FUT_END_UNPARTITION, memnode, _starpu_gettid(), handle);
+
 #else // !STARPU_USE_FXT
 
 /* Dummy macros in case FxT is disabled */
@@ -629,6 +638,8 @@ do {										\
 #define _STARPU_TRACE_COND_WAIT_BEGIN()		do {} while(0)
 #define _STARPU_TRACE_COND_WAIT_END()			do {} while(0)
 #define _STARPU_TRACE_MEMORY_FULL(size)				do {} while(0)
+#define _STARPU_TRACE_START_UNPARTITION(handle, memnode)	do {} while(0)
+#define _STARPU_TRACE_END_UNPARTITION(handle, memnode)		do {} while(0)
 
 #endif // STARPU_USE_FXT
 

+ 2 - 0
src/datawizard/filters.c

@@ -281,6 +281,7 @@ void starpu_data_unpartition(starpu_data_handle_t root_handle, unsigned gatherin
 	unsigned node;
 	unsigned sizes[root_handle->nchildren];
 
+	_STARPU_TRACE_START_UNPARTITION(root_handle, gathering_node);
 	_starpu_spin_lock(&root_handle->header_lock);
 
 	STARPU_ASSERT_MSG(root_handle->nchildren != 0, "data %p is not partitioned, can not unpartition it", root_handle);
@@ -435,6 +436,7 @@ void starpu_data_unpartition(starpu_data_handle_t root_handle, unsigned gatherin
 
 	/* now the parent may be used again so we release the lock */
 	_starpu_spin_unlock(&root_handle->header_lock);
+	_STARPU_TRACE_END_UNPARTITION(root_handle, gathering_node);
 }
 
 /* each child may have his own interface type */

+ 1 - 1
src/datawizard/user_interactions.c

@@ -191,7 +191,7 @@ int starpu_data_acquire_on_node_cb(starpu_data_handle_t handle, unsigned node,
 int starpu_data_acquire_cb(starpu_data_handle_t handle,
 			   enum starpu_data_access_mode mode, void (*callback)(void *), void *arg)
 {
-	return starpu_data_acquire_on_node_cb(handle, 0, mode, callback, arg);
+	return starpu_data_acquire_on_node_cb(handle, STARPU_MAIN_RAM, mode, callback, arg);
 }
 
 int starpu_data_acquire_cb_sequential_consistency(starpu_data_handle_t handle,

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

@@ -1380,9 +1380,14 @@ void starpu_fxt_parse_new_file(char *filename_in, struct starpu_fxt_options *opt
 				handle_worker_status(&ev, options, "P");
 				break;
 
+			case _STARPU_FUT_START_UNPARTITION:
+				handle_worker_status(&ev, options, "U");
+				break;
+
 			case _STARPU_FUT_END_FETCH_INPUT:
 			case _STARPU_FUT_END_PROGRESS:
 			case _STARPU_FUT_END_PUSH_OUTPUT:
+			case _STARPU_FUT_END_UNPARTITION:
 				handle_worker_status(&ev, options, "B");
 				break;
 

+ 7 - 3
src/debug/traces/starpu_paje.c

@@ -163,6 +163,7 @@ void _starpu_fxt_write_paje_header(FILE *file)
 	poti_DefineEntityValue("B", "S", "Overhead", ".5 .18 .0");
 	poti_DefineEntityValue("Sl", "S", "Sleeping", ".9 .1 .0");
 	poti_DefineEntityValue("P", "S", "Progressing", ".4 .1 .6");
+	poti_DefineEntityValue("U", "S", "Unpartitioning", ".0 .0 1.0");
 
 	/* Types for the MPI Communication Thread of the Memory Node */
 	poti_DefineEventType("MPIev", "MPICt", "MPI event type");
@@ -190,6 +191,7 @@ void _starpu_fxt_write_paje_header(FILE *file)
 		poti_DefineEntityValue("B", ctx, "Overhead", ".5 .18 .0");
 		poti_DefineEntityValue("Sl", ctx, "Sleeping", ".9 .1 .0");
 		poti_DefineEntityValue("P", ctx, "Progressing", ".4 .1 .6");
+		poti_DefineEntityValue("U", ctx, "Unpartitioning", ".0 .0 1.0");
 	}
 
 	/* Types for the Scheduler */
@@ -228,7 +230,8 @@ void _starpu_fxt_write_paje_header(FILE *file)
 6       C       S       Callback       \".0 .3 .8\"            \n\
 6       B       S       Overhead         \".5 .18 .0\"		\n\
 6       Sl       S      Sleeping         \".9 .1 .0\"		\n\
-6       P       S       Progressing         \".4 .1 .6\"		\n");
+6       P       S       Progressing         \".4 .1 .6\"		\n\
+6       U       S       Unpartitioning      \".0 .0 1.0\"		\n");
 	fprintf(file, "\
 6       P       CtS       Processing         \"0 0 0\"		\n\
 6       Sl       CtS      Sleeping         \".9 .1 .0\"		\n\
@@ -247,8 +250,9 @@ void _starpu_fxt_write_paje_header(FILE *file)
 6       C       Ctx%u       Callback       \".0 .3 .8\"            \n\
 6       B       Ctx%u       Overhead         \".5 .18 .0\"		\n\
 6       Sl       Ctx%u      Sleeping         \".9 .1 .0\"		\n\
-6       P       Ctx%u       Progressing         \".4 .1 .6\"		\n",
-		i, i, i, i, i, i, i, i);
+6       P       Ctx%u       Progressing         \".4 .1 .6\"		\n\
+6       U       Ctx%u       Unpartitioning         \".0 .0 1.0\"		\n",
+		i, i, i, i, i, i, i, i, i);
 	fprintf(file, "\
 6       A       MS      Allocating         \".4 .1 .0\"		\n\
 6       Ar       MS      AllocatingReuse       \".1 .1 .8\"		\n\