Browse Source

Solve Mutex inconsistence

Romain LION 4 years ago
parent
commit
a7cd815f40

+ 0 - 1
mpi/src/mpi_failure_tolerance/starpu_mpi_checkpoint_template.c

@@ -208,7 +208,6 @@ void _cp_discard_message_send_cb(void* _args)
 {
 	struct _starpu_mpi_cp_discard_arg_cb* arg = (struct _starpu_mpi_cp_discard_arg_cb*) _args;
 	_STARPU_MPI_FT_STATS_SEND_FT_SERVICE_MSG(sizeof(struct _starpu_mpi_cp_ack_msg));
-	fprintf(stderr, "free_args\n");
 	free(_args);
 }
 

+ 2 - 6
mpi/src/mpi_failure_tolerance/starpu_mpi_ft_service_comms.c

@@ -36,7 +36,6 @@ static struct _starpu_mpi_req_list detached_ft_service_requests;
 static struct _starpu_mpi_req_list ready_send_ft_service_requests;
 static unsigned detached_send_n_ft_service_requests;
 static starpu_pthread_mutex_t detached_ft_service_requests_mutex;
-static starpu_pthread_mutex_t ready_send_ft_service_requests_mutex;
 static starpu_pthread_mutex_t ft_service_requests_mutex;
 
 int ready_ack_msgs_recv;
@@ -121,9 +120,7 @@ int _starpu_mpi_ft_service_submit_rdy()
 	max_loop = MIN(SIMULTANEOUS_PENDING_SEND_MAX-pending_send_ft_service_msg, ready_send_ft_service_msg);
 	for (i=0 ; i<max_loop ; i++)
 	{
-		STARPU_PTHREAD_MUTEX_LOCK(&ready_send_ft_service_requests_mutex);
 		req = _starpu_mpi_req_list_pop_front(&ready_send_ft_service_requests);
-		STARPU_PTHREAD_MUTEX_UNLOCK(&ready_send_ft_service_requests_mutex);
 		STARPU_PTHREAD_MUTEX_LOCK(&detached_ft_service_requests_mutex);
 		MPI_Isend(req->ptr, req->count, req->datatype, req->node_tag.node.rank, req->node_tag.data_tag,
 		          req->node_tag.node.comm, &req->backend->data_request);
@@ -180,10 +177,10 @@ int _starpu_mpi_ft_service_post_send(void* msg, int count, int rank, int tag, MP
 
 	_STARPU_MPI_DEBUG(5, "Pushing ft service msg: %s req %p tag %"PRIi64" src %d ptr %p\n", _starpu_mpi_request_type(SEND_REQ), req, tag, rank, msg);
 
-	STARPU_PTHREAD_MUTEX_LOCK(&ready_send_ft_service_requests_mutex);
+	STARPU_PTHREAD_MUTEX_LOCK(&ft_service_requests_mutex);
 	ready_send_ft_service_msg++;
 	_starpu_mpi_req_list_push_back(&ready_send_ft_service_requests, req);
-	STARPU_PTHREAD_MUTEX_UNLOCK(&ready_send_ft_service_requests_mutex);
+	STARPU_PTHREAD_MUTEX_LOCK(&ft_service_requests_mutex);
 
 	_starpu_mpi_wake_up_progress_thread();
 
@@ -364,7 +361,6 @@ int starpu_mpi_ft_service_lib_init(void(*_ack_msg_recv_cb)(void*), void(*_cp_inf
 	_starpu_mpi_req_list_init(&detached_ft_service_requests);
 	_starpu_mpi_req_list_init(&ready_send_ft_service_requests);
 	STARPU_PTHREAD_MUTEX_INIT(&detached_ft_service_requests_mutex, NULL);
-	STARPU_PTHREAD_MUTEX_INIT(&ready_send_ft_service_requests_mutex, NULL);
 	STARPU_PTHREAD_MUTEX_INIT(&ft_service_requests_mutex, NULL);
 	ready_ack_msgs_recv = 0;
 	pending_ack_msgs_recv = 0;