Browse Source

src/util/starpu_task_insert_utils.c: fix condition to reallocate task->dyn_modes and rename nbuffers to current_buffer

Nathalie Furmento 11 years ago
parent
commit
e3690f406a
1 changed files with 31 additions and 31 deletions
  1. 31 31
      src/util/starpu_task_insert_utils.c

+ 31 - 31
src/util/starpu_task_insert_utils.c

@@ -180,33 +180,33 @@ int _starpu_codelet_pack_args(void **arg_buffer, size_t *arg_buffer_size, va_lis
 }
 
 static
-void _starpu_task_insert_check_nb_buffers(struct starpu_codelet *cl, struct starpu_task **task, int *allocated_buffers, int nbuffers)
+void _starpu_task_insert_check_nb_buffers(struct starpu_codelet *cl, struct starpu_task **task, int *allocated_buffers, int current_buffer)
 {
-	if (nbuffers >= STARPU_NMAXBUFS)
+	if (current_buffer >= STARPU_NMAXBUFS)
 	{
 		if (*allocated_buffers == 0)
 		{
 			int i;
 			*allocated_buffers = STARPU_NMAXBUFS * 2;
 			(*task)->dyn_handles = malloc(*allocated_buffers * sizeof(starpu_data_handle_t));
-			for(i=0 ; i<nbuffers ; i++)
+			for(i=0 ; i<current_buffer ; i++)
 			{
 				(*task)->dyn_handles[i] = (*task)->handles[i];
 			}
 			if ((*task)->cl->nbuffers == STARPU_VARIABLE_NBUFFERS)
 			{
 				(*task)->dyn_modes = malloc(*allocated_buffers * sizeof(enum starpu_data_access_mode));
-				for(i=0 ; i<nbuffers ; i++)
+				for(i=0 ; i<current_buffer ; i++)
 				{
 					(*task)->dyn_modes[i] = (*task)->modes[i];
 				}
 			}
 		}
-		else if (nbuffers >= *allocated_buffers)
+		else if (current_buffer >= *allocated_buffers)
 		{
 			*allocated_buffers *= 2;
 			(*task)->dyn_handles = realloc((*task)->dyn_handles, *allocated_buffers * sizeof(starpu_data_handle_t));
-			if (nbuffers == STARPU_VARIABLE_NBUFFERS)
+			if ((*task)->cl->nbuffers == STARPU_VARIABLE_NBUFFERS)
 				(*task)->dyn_modes = realloc((*task)->dyn_modes, *allocated_buffers * sizeof(enum starpu_data_access_mode));
 		}
 	}
@@ -218,7 +218,7 @@ void _starpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 	char *arg_buffer_ = NULL;
 	size_t arg_buffer_size_ = 0;
 	size_t current_offset = sizeof(int);
-	int nbuffers;
+	int current_buffer;
 	int nargs = 0;
 	int allocated_buffers = 0;
 
@@ -238,7 +238,7 @@ void _starpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 	prologue_pop_cl_arg_wrapper->callback_func = NULL;
 
 	(*task)->cl = cl;
-	nbuffers = 0;
+	current_buffer = 0;
 
 	while((arg_type = va_arg(varg_list, int)) != 0)
 	{
@@ -250,17 +250,17 @@ void _starpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 
 			STARPU_ASSERT(cl != NULL);
 
-			_starpu_task_insert_check_nb_buffers(cl, task, &allocated_buffers, nbuffers);
+			_starpu_task_insert_check_nb_buffers(cl, task, &allocated_buffers, current_buffer);
 
-			STARPU_TASK_SET_HANDLE((*task), handle, nbuffers);
+			STARPU_TASK_SET_HANDLE((*task), handle, current_buffer);
 			if (cl->nbuffers == STARPU_VARIABLE_NBUFFERS)
-				STARPU_TASK_SET_MODE(*task, mode, nbuffers);
-			else if (STARPU_CODELET_GET_MODE(cl, nbuffers))
+				STARPU_TASK_SET_MODE(*task, mode, current_buffer);
+			else if (STARPU_CODELET_GET_MODE(cl, current_buffer))
 			{
-				STARPU_ASSERT_MSG(STARPU_CODELET_GET_MODE(cl, nbuffers) == mode,
+				STARPU_ASSERT_MSG(STARPU_CODELET_GET_MODE(cl, current_buffer) == mode,
 						   "The codelet <%s> defines the access mode %d for the buffer %d which is different from the mode %d given to starpu_task_insert\n",
-						  cl->name, STARPU_CODELET_GET_MODE(cl, nbuffers),
-						  nbuffers, mode);
+						  cl->name, STARPU_CODELET_GET_MODE(cl, current_buffer),
+						  current_buffer, mode);
 			}
 			else
 			{
@@ -268,10 +268,10 @@ void _starpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 #  warning shall we print a warning to the user
 /* Morse uses it to avoid having to set it in the codelet structure */
 #endif
-				STARPU_CODELET_SET_MODE(cl, mode, nbuffers);
+				STARPU_CODELET_SET_MODE(cl, mode, current_buffer);
 			}
 
-			nbuffers++;
+			current_buffer++;
 		}
 		else if (arg_type == STARPU_DATA_ARRAY)
 		{
@@ -284,9 +284,9 @@ void _starpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 			int i;
 			for(i=0 ; i<nb_handles ; i++)
 			{
-				_starpu_task_insert_check_nb_buffers(cl, task, &allocated_buffers, nbuffers);
-				STARPU_TASK_SET_HANDLE((*task), handles[i], nbuffers);
-				nbuffers++;
+				_starpu_task_insert_check_nb_buffers(cl, task, &allocated_buffers, current_buffer);
+				STARPU_TASK_SET_HANDLE((*task), handles[i], current_buffer);
+				current_buffer++;
 			}
 
 		}
@@ -301,27 +301,27 @@ void _starpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 			int i;
 			for(i=0 ; i<nb_descrs ; i++)
 			{
-				_starpu_task_insert_check_nb_buffers(cl, task, &allocated_buffers, nbuffers);
-				STARPU_TASK_SET_HANDLE((*task), descrs[i].handle, nbuffers);
+				_starpu_task_insert_check_nb_buffers(cl, task, &allocated_buffers, current_buffer);
+				STARPU_TASK_SET_HANDLE((*task), descrs[i].handle, current_buffer);
 				if ((*task)->dyn_modes)
 				{
 					(*task)->dyn_modes[i] = descrs[i].mode;
 				}
 				else if (cl->nbuffers == STARPU_VARIABLE_NBUFFERS)
-					STARPU_TASK_SET_MODE(*task, descrs[i].mode, nbuffers);
-				else if (STARPU_CODELET_GET_MODE(cl, nbuffers))
+					STARPU_TASK_SET_MODE(*task, descrs[i].mode, current_buffer);
+				else if (STARPU_CODELET_GET_MODE(cl, current_buffer))
 				{
-					STARPU_ASSERT_MSG(STARPU_CODELET_GET_MODE(cl, nbuffers) == descrs[i].mode,
+					STARPU_ASSERT_MSG(STARPU_CODELET_GET_MODE(cl, current_buffer) == descrs[i].mode,
 							  "The codelet <%s> defines the access mode %d for the buffer %d which is different from the mode %d given to starpu_task_insert\n",
-							  cl->name, STARPU_CODELET_GET_MODE(cl, nbuffers),
-							  nbuffers, descrs[i].mode);
+							  cl->name, STARPU_CODELET_GET_MODE(cl, current_buffer),
+							  current_buffer, descrs[i].mode);
 				}
 				else
 				{
-					STARPU_CODELET_SET_MODE(cl, descrs[i].mode, nbuffers);
+					STARPU_CODELET_SET_MODE(cl, descrs[i].mode, current_buffer);
 				}
 
-				nbuffers++;
+				current_buffer++;
 			}
 
 		}
@@ -462,11 +462,11 @@ void _starpu_task_insert_create(struct starpu_codelet *cl, struct starpu_task **
 	{
 		if (cl->nbuffers == STARPU_VARIABLE_NBUFFERS)
 		{
-			(*task)->nbuffers = nbuffers;
+			(*task)->nbuffers = current_buffer;
 		}
 		else
 		{
-			STARPU_ASSERT_MSG(nbuffers == cl->nbuffers, "Incoherent number of buffers between cl (%d) and number of parameters (%d)", cl->nbuffers, nbuffers);
+			STARPU_ASSERT_MSG(current_buffer == cl->nbuffers, "Incoherent number of buffers between cl (%d) and number of parameters (%d)", cl->nbuffers, current_buffer);
 		}
 	}