소스 검색

To remain coherent within StarPU, we now return -EAGAIN to specify that a data
transfer cannot be performed immediately.

Cédric Augonnet 14 년 전
부모
커밋
dbbd13ce5a

+ 1 - 1
src/datawizard/copy_driver.c

@@ -238,7 +238,7 @@ int __attribute__((warn_unused_result)) _starpu_driver_copy_data_1_to_1(starpu_d
 		ret_copy = copy_data_1_to_1_generic(handle, src_node, dst_node, req);
 
 #ifdef STARPU_USE_FXT
-		if (ret_copy != EAGAIN)
+		if (ret_copy != -EAGAIN)
 		{
 			size_t size = _starpu_data_get_size(handle);
 			STARPU_TRACE_END_DRIVER_COPY(src_node, dst_node, size, com_id);

+ 2 - 2
src/datawizard/data_request.c

@@ -304,7 +304,7 @@ static int starpu_handle_data_request(starpu_data_request_t r, unsigned may_allo
 		return -ENOMEM;
 	}
 
-	if (r->retval == EAGAIN)
+	if (r->retval == -EAGAIN)
 	{
 		_starpu_spin_unlock(&r->lock);
 		_starpu_spin_unlock(&handle->header_lock);
@@ -314,7 +314,7 @@ static int starpu_handle_data_request(starpu_data_request_t r, unsigned may_allo
 		starpu_data_request_list_push_front(data_requests_pending[r->handling_node], r);
 		PTHREAD_MUTEX_UNLOCK(&data_requests_pending_list_mutex[r->handling_node]);
 
-		return EAGAIN;
+		return -EAGAIN;
 	}
 
 	/* the request has been handled */

+ 6 - 6
src/datawizard/interfaces/block_interface.c

@@ -469,7 +469,7 @@ static int copy_cuda_to_ram_async(void *src_interface, unsigned src_node __attri
 				ret = 0;
 			}
 			else {
-				ret = EAGAIN;
+				ret = -EAGAIN;
 			}
 			
 		}
@@ -490,7 +490,7 @@ static int copy_cuda_to_ram_async(void *src_interface, unsigned src_node __attri
 				ret = 0;
 			}
 			else {
-				ret = EAGAIN;
+				ret = -EAGAIN;
 			}
 		}
 	}
@@ -514,7 +514,7 @@ static int copy_cuda_to_ram_async(void *src_interface, unsigned src_node __attri
 
 		}
 
-		ret = EAGAIN;
+		ret = -EAGAIN;
 
 	}
 
@@ -580,7 +580,7 @@ static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attri
 				ret = 0;
 			}
 			else {
-				ret = EAGAIN;
+				ret = -EAGAIN;
 			}
 			
 		}
@@ -601,7 +601,7 @@ static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attri
 				ret = 0;
 			}
 			else {
-				ret = EAGAIN;
+				ret = -EAGAIN;
 			}
 		}
 	}
@@ -625,7 +625,7 @@ static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attri
 
 		}
 
-		ret = EAGAIN;
+		ret = -EAGAIN;
 
 	}
 

+ 2 - 2
src/datawizard/interfaces/matrix_interface.c

@@ -422,7 +422,7 @@ static int copy_cuda_to_ram_async(void *src_interface, unsigned src_node __attri
 
 	STARPU_TRACE_DATA_COPY(src_node, dst_node, (size_t)src_matrix->nx*src_matrix->ny*src_matrix->elemsize);
 
-	return EAGAIN;
+	return -EAGAIN;
 }
 
 static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attribute__((unused)), void *dst_interface, unsigned dst_node __attribute__((unused)), cudaStream_t *stream)
@@ -452,7 +452,7 @@ static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attri
 
 	STARPU_TRACE_DATA_COPY(src_node, dst_node, (size_t)src_matrix->nx*src_matrix->ny*src_matrix->elemsize);
 
-	return EAGAIN;
+	return -EAGAIN;
 }
 
 #endif // STARPU_USE_CUDA

+ 2 - 2
src/datawizard/interfaces/variable_interface.c

@@ -319,7 +319,7 @@ static int copy_cuda_to_ram_async(void *src_interface, unsigned src_node __attri
 
 	STARPU_TRACE_DATA_COPY(src_node, dst_node, src_variable->elemsize);
 
-	return EAGAIN;
+	return -EAGAIN;
 }
 
 static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attribute__((unused)), void *dst_interface, unsigned dst_node __attribute__((unused)), cudaStream_t *stream)
@@ -344,7 +344,7 @@ static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attri
 
 	STARPU_TRACE_DATA_COPY(src_node, dst_node, src_variable->elemsize);
 
-	return EAGAIN;
+	return -EAGAIN;
 }
 #endif // STARPU_USE_CUDA
 

+ 2 - 2
src/datawizard/interfaces/vector_interface.c

@@ -357,7 +357,7 @@ static int copy_cuda_to_ram_async(void *src_interface, unsigned src_node __attri
 
 	STARPU_TRACE_DATA_COPY(src_node, dst_node, src_vector->nx*src_vector->elemsize);
 
-	return EAGAIN;
+	return -EAGAIN;
 }
 
 static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attribute__((unused)),
@@ -383,7 +383,7 @@ static int copy_ram_to_cuda_async(void *src_interface, unsigned src_node __attri
 
 	STARPU_TRACE_DATA_COPY(src_node, dst_node, src_vector->nx*src_vector->elemsize);
 
-	return EAGAIN;
+	return -EAGAIN;
 }
 #endif // STARPU_USE_CUDA
 

+ 2 - 2
src/drivers/opencl/driver_opencl.c

@@ -106,7 +106,7 @@ int _starpu_opencl_copy_ram_to_opencl_async_sync(void *ptr, cl_mem buffer, size_
         blocking = (event == NULL) ? CL_TRUE : CL_FALSE;
         err = clEnqueueWriteBuffer(queues[worker->devid], buffer, blocking, offset, size, ptr, 0, NULL, event);
         if (STARPU_LIKELY(err == CL_SUCCESS)) {
-                *ret = (event == NULL) ? 0 : EAGAIN;
+                *ret = (event == NULL) ? 0 : -EAGAIN;
                 return EXIT_SUCCESS;
         }
         else {
@@ -146,7 +146,7 @@ int _starpu_opencl_copy_opencl_to_ram_async_sync(cl_mem buffer, void *ptr, size_
         blocking = (event == NULL) ? CL_TRUE : CL_FALSE;
         err = clEnqueueReadBuffer(queues[worker->devid], buffer, blocking, offset, size, ptr, 0, NULL, event);
         if (STARPU_LIKELY(err == CL_SUCCESS)) {
-                *ret = (event == NULL) ? 0 : EAGAIN;
+                *ret = (event == NULL) ? 0 : -EAGAIN;
                 return EXIT_SUCCESS;
         }
         else {