浏览代码

Fix in valgrind mpi test loops such as used by exchange_data_movements_infos

Samuel Thibault 4 年之前
父节点
当前提交
3b491c1cb8
共有 2 个文件被更改,包括 4 次插入0 次删除
  1. 2 0
      mpi/src/mpi/starpu_mpi_mpi.c
  2. 2 0
      mpi/src/nmad/starpu_mpi_nmad.c

+ 2 - 0
mpi/src/mpi/starpu_mpi_mpi.c

@@ -686,6 +686,8 @@ int _starpu_mpi_test(starpu_mpi_req *public_req, int *flag, MPI_Status *status)
 
 	STARPU_MPI_ASSERT_MSG(!req->detached, "MPI_Test cannot be called on a detached request");
 
+	if (STARPU_RUNNING_ON_VALGRIND) sched_yield();
+
 #ifdef STARPU_SIMGRID
 	ret = req->ret = _starpu_mpi_simgrid_mpi_test(&req->done, flag);
 	if (*flag)

+ 2 - 0
mpi/src/nmad/starpu_mpi_nmad.c

@@ -245,6 +245,8 @@ int _starpu_mpi_test(starpu_mpi_req *public_req, int *flag, MPI_Status *status)
 	_STARPU_MPI_DEBUG(2, "Test request %p type %s tag %ld src %d data %p ptr %p datatype '%s' count %d registered_datatype %d \n",
 			  req, _starpu_mpi_request_type(req->request_type), req->node_tag.data_tag, req->node_tag.node.rank, req->data_handle, req->ptr, req->datatype_name, (int)req->count, req->registered_datatype);
 
+	if (STARPU_RUNNING_ON_VALGRIND) sched_yield();
+
 	_STARPU_MPI_TRACE_UTESTING_BEGIN(req->node_tag.node.rank, req->node_tag.data_tag);
 
 	/* we must do a test_locked to avoid race condition :