commits
Threads by month
- ----- 2026 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
September 2015
- 2 participants
- 24 discussions
[mpich] MPICH primary repository branch, master, updated. v3.2b4-237-g6dd87a9
by noreply@mpich.org 26 Sep '15
by noreply@mpich.org 26 Sep '15
26 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 6dd87a93860d292800dd7edec1c9a04838802492 (commit)
via e9c739759a499c1592049d56e92690b09486d101 (commit)
from 1def98d77ed0c9cf977695d7461a87cd1983bbb7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/6dd87a93860d292800dd7edec1c9a0483…
commit 6dd87a93860d292800dd7edec1c9a04838802492
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Thu Sep 24 15:23:38 2015 -0500
Revert "sync ROMIO locations that touch global state"
This reverts commit d484022edb5f865760b063b9908895bdbfbef7fb.
We are switching back to ROMIO taking the global lock on function
entry/exit.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
Conflicts:
src/mpi/romio/adio/common/flatten.c
diff --git a/src/mpi/romio/adio/common/ad_end.c b/src/mpi/romio/adio/common/ad_end.c
index 5aef802..ea4dfeb 100644
--- a/src/mpi/romio/adio/common/ad_end.c
+++ b/src/mpi/romio/adio/common/ad_end.c
@@ -61,8 +61,6 @@ void ADIO_End(int *error_code)
int ADIOI_End_call(MPI_Comm comm, int keyval, void *attribute_val, void
*extra_state)
{
- /* though we are touching global variables here, only one thread can call
- * MPI_Finalize so we can be less carefuil w. r. t. critical sections */
int error_code;
ADIOI_UNREFERENCED_ARG(comm);
diff --git a/src/mpi/romio/adio/common/cb_config_list.c b/src/mpi/romio/adio/common/cb_config_list.c
index 508722a..626709f 100644
--- a/src/mpi/romio/adio/common/cb_config_list.c
+++ b/src/mpi/romio/adio/common/cb_config_list.c
@@ -133,7 +133,6 @@ int ADIOI_cb_gather_name_array(MPI_Comm comm,
ADIO_cb_name_array array = NULL;
int alloc_size;
- MPIR_Ext_cs_enter(ADIO_THREAD_MUTEX);
if (ADIOI_cb_config_list_keyval == MPI_KEYVAL_INVALID) {
/* cleaned up by ADIOI_End_call */
MPI_Keyval_create((MPI_Copy_function *) ADIOI_cb_copy_name_array,
@@ -145,11 +144,9 @@ int ADIOI_cb_gather_name_array(MPI_Comm comm,
if (found) {
ADIOI_Assert(array != NULL);
*arrayp = array;
- MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
return 0;
}
}
- MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
MPI_Comm_size(dupcomm, &commsize);
MPI_Comm_rank(dupcomm, &commrank);
diff --git a/src/mpi/romio/adio/common/flatten.c b/src/mpi/romio/adio/common/flatten.c
index 743f09f..ac31007 100644
--- a/src/mpi/romio/adio/common/flatten.c
+++ b/src/mpi/romio/adio/common/flatten.c
@@ -25,8 +25,6 @@ void ADIOI_Flatten_datatype(MPI_Datatype datatype)
int is_contig;
ADIOI_Flatlist_node *flat, *prev=0;
- MPIR_Ext_cs_enter(ADIO_THREAD_MUTEX);
-
/* check if necessary to flatten. */
/* is it entirely contiguous? */
@@ -34,7 +32,7 @@ void ADIOI_Flatten_datatype(MPI_Datatype datatype)
#ifdef FLATTEN_DEBUG
DBG_FPRINTF(stderr,"ADIOI_Flatten_datatype:: is_contig %#X\n",is_contig);
#endif
- if (is_contig) goto fn_exit;
+ if (is_contig) return;
/* has it already been flattened? */
flat = ADIOI_Flatlist;
@@ -43,7 +41,7 @@ void ADIOI_Flatten_datatype(MPI_Datatype datatype)
#ifdef FLATTEN_DEBUG
DBG_FPRINTF(stderr,"ADIOI_Flatten_datatype:: found datatype %#X\n", datatype);
#endif
- goto fn_exit;
+ return;
}
else {
prev = flat;
@@ -100,10 +98,6 @@ void ADIOI_Flatten_datatype(MPI_Datatype datatype)
);
}
#endif
-
- fn_exit:
- MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
-
}
/* ADIOI_Flatten()
@@ -1187,7 +1181,6 @@ void ADIOI_Optimize_flattened(ADIOI_Flatlist_node *flat_type)
void ADIOI_Delete_flattened(MPI_Datatype datatype)
{
ADIOI_Flatlist_node *flat, *prev;
- MPIR_Ext_cs_enter(ADIO_THREAD_MUTEX);
prev = flat = ADIOI_Flatlist;
while (flat && (flat->type != datatype)) {
@@ -1200,16 +1193,13 @@ void ADIOI_Delete_flattened(MPI_Datatype datatype)
if (flat->indices) ADIOI_Free(flat->indices);
ADIOI_Free(flat);
}
- MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
}
ADIOI_Flatlist_node * ADIOI_Flatten_and_find(MPI_Datatype datatype)
{
ADIOI_Flatlist_node *node;
- MPIR_Ext_cs_enter(ADIO_THREAD_MUTEX);
ADIOI_Flatten_datatype(datatype);
node = ADIOI_Flatlist;
while (node->type != datatype) node = node->next;
- MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
return node;
}
diff --git a/src/mpi/romio/mpi-io/glue/mpich/mpio_file.c b/src/mpi/romio/mpi-io/glue/mpich/mpio_file.c
index 0aabe27..6f6c902 100644
--- a/src/mpi/romio/mpi-io/glue/mpich/mpio_file.c
+++ b/src/mpi/romio/mpi-io/glue/mpich/mpio_file.c
@@ -69,7 +69,6 @@ MPI_Fint MPIO_File_c2f(MPI_File fh)
if (fh->fortran_handle != -1)
return fh->fortran_handle;
- MPIR_Ext_cs_enter(ADIO_THREAD_MUTEX);
if (!ADIOI_Ftable) {
ADIOI_Ftable_max = 1024;
ADIOI_Ftable = (MPI_File *)
@@ -88,7 +87,6 @@ MPI_Fint MPIO_File_c2f(MPI_File fh)
ADIOI_Ftable_ptr++;
ADIOI_Ftable[ADIOI_Ftable_ptr] = fh;
fh->fortran_handle = ADIOI_Ftable_ptr;
- MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
return (MPI_Fint) ADIOI_Ftable_ptr;
#endif
}
http://git.mpich.org/mpich.git/commitdiff/e9c739759a499c1592049d56e92690b09…
commit e9c739759a499c1592049d56e92690b09486d101
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Thu Sep 24 15:19:46 2015 -0500
Revert "Initial draft of ROMIO managed thread locks."
This reverts commit 78413c55c4820a50cd31f0df6ec009891ff42917.
Reducing ROMIO's thread granularity is still a good idea but we ar
missing one or more spots where ROMIO diddles with state outside a
mutex, and after a week we cannot find it. Try agian after the release.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
Conflicts:
src/glue/romio/glue_romio.c
src/include/glue_romio.h.in
src/mpi/romio/adio/common/ad_iread_coll.c
src/mpi/romio/adio/common/ad_iwrite_coll.c
src/mpi/romio/mpi-io/mpioimpl.h
diff --git a/src/glue/romio/glue_romio.c b/src/glue/romio/glue_romio.c
index 5de161f..fa327ab 100644
--- a/src/glue/romio/glue_romio.c
+++ b/src/glue/romio/glue_romio.c
@@ -35,52 +35,24 @@ int MPIR_Ext_assert_fail(const char *cond, const char *file_name, int line_num)
return MPIR_Assert_fail(cond, file_name, line_num);
}
-void MPIR_Ext_thread_mutex_create(void **mutex_p_p)
-{
- int err;
- MPID_Thread_mutex_t *m;
-
- m = (MPID_Thread_mutex_t *) MPIU_Malloc(sizeof(MPID_Thread_mutex_t));
- MPID_Thread_mutex_create(m, &err);
- MPIU_Assert(err == 0);
-
- *mutex_p_p = (void *) m;
-}
-
-void MPIR_Ext_thread_mutex_destroy(void *mutex_p)
-{
- int err;
- MPID_Thread_mutex_t *m = (MPID_Thread_mutex_t *) mutex_p;
-
- MPID_Thread_mutex_destroy(m, &err);
- MPIU_Assert(err == 0);
-
- MPIU_Free(mutex_p);
-}
-
/* These two routines export the GLOBAL CS_ENTER/EXIT macros as functions so
* that ROMIO can use them. These routines only support the GLOBAL granularity
* of MPICH threading; other accommodations must be made for finer-grained
* threading strategies. */
-void MPIR_Ext_cs_enter(void *mutex_p)
-{
- MPID_THREAD_CS_ENTER(GLOBAL, *((MPID_Thread_mutex_t *) mutex_p));
-}
-
-void MPIR_Ext_cs_exit(void *mutex_p)
+void MPIR_Ext_cs_enter(void)
{
- MPID_THREAD_CS_EXIT(GLOBAL, *((MPID_Thread_mutex_t *) mutex_p));
+ MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
}
-void MPIR_Ext_cs_yield(void *mutex_p)
+void MPIR_Ext_cs_exit(void)
{
- MPID_THREAD_CS_YIELD(GLOBAL, *((MPID_Thread_mutex_t *) mutex_p));
+ MPID_THREAD_CS_EXIT(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
}
/* This routine is for a thread to yield control when the thread is waiting for
* the completion of communication inside a ROMIO routine but the progress
* engine is blocked by another thread. */
-void MPIR_Ext_cs_yield_global(void)
+void MPIR_Ext_cs_yield(void)
{
/* TODO: check whether the progress engine is blocked */
MPID_THREAD_CS_YIELD(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
diff --git a/src/include/glue_romio.h.in b/src/include/glue_romio.h.in
index d2b97a9..9623833 100644
--- a/src/include/glue_romio.h.in
+++ b/src/include/glue_romio.h.in
@@ -51,12 +51,9 @@ extern int MPIR_Ext_dbg_romio_verbose_enabled;
* glue code that cannot be initialized statically */
int MPIR_Ext_init(void);
-void MPIR_Ext_thread_mutex_create(void **mutex_p_p);
-void MPIR_Ext_thread_mutex_destroy(void *mutex_p);
-void MPIR_Ext_cs_enter(void *mutex_p);
-void MPIR_Ext_cs_exit(void *mutex_p);
-void MPIR_Ext_cs_yield(void *mutex_p);
-void MPIR_Ext_cs_yield_global(void);
+void MPIR_Ext_cs_enter(void);
+void MPIR_Ext_cs_exit(void);
+void MPIR_Ext_cs_yield(void);
/* to facilitate error checking */
int MPIR_Ext_datatype_iscommitted(MPI_Datatype datatype);
diff --git a/src/mpi/romio/adio/common/ad_end.c b/src/mpi/romio/adio/common/ad_end.c
index 2350f0a..5aef802 100644
--- a/src/mpi/romio/adio/common/ad_end.c
+++ b/src/mpi/romio/adio/common/ad_end.c
@@ -78,8 +78,5 @@ int ADIOI_End_call(MPI_Comm comm, int keyval, void *attribute_val, void
MPI_Keyval_free(&ADIOI_cb_config_list_keyval);
ADIO_End(&error_code);
-
- MPIR_Ext_thread_mutex_destroy((void *) ADIO_THREAD_MUTEX);
-
return error_code;
}
diff --git a/src/mpi/romio/adio/common/ad_iread_coll.c b/src/mpi/romio/adio/common/ad_iread_coll.c
index 6cf85e9..2ec23fb 100644
--- a/src/mpi/romio/adio/common/ad_iread_coll.c
+++ b/src/mpi/romio/adio/common/ad_iread_coll.c
@@ -1332,7 +1332,7 @@ static int ADIOI_GEN_irc_wait_fn(int count, void **array_of_states,
/* If the progress engine is blocked, we have to yield for another
* thread to be able to unblock the progress engine. */
- MPIR_EXT_CS_YIELD_GLOBAL();
+ MPIR_Ext_cs_yield();
}
}
diff --git a/src/mpi/romio/adio/common/ad_iwrite_coll.c b/src/mpi/romio/adio/common/ad_iwrite_coll.c
index 3cb86ad..d275f78 100644
--- a/src/mpi/romio/adio/common/ad_iwrite_coll.c
+++ b/src/mpi/romio/adio/common/ad_iwrite_coll.c
@@ -1557,7 +1557,7 @@ static int ADIOI_GEN_iwc_wait_fn(int count, void **array_of_states,
/* If the progress engine is blocked, we have to yield for another
* thread to be able to unblock the progress engine. */
- MPIR_EXT_CS_YIELD_GLOBAL();
+ MPIR_Ext_cs_yield();
}
}
diff --git a/src/mpi/romio/adio/include/adioi.h b/src/mpi/romio/adio/include/adioi.h
index f715be7..0cc219e 100644
--- a/src/mpi/romio/adio/include/adioi.h
+++ b/src/mpi/romio/adio/include/adioi.h
@@ -1087,6 +1087,4 @@ ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);
#endif
-extern void *ADIO_THREAD_MUTEX;
-
#endif /* ADIOI_INCLUDE */
diff --git a/src/mpi/romio/mpi-io/close.c b/src/mpi/romio/mpi-io/close.c
index 57b2019..3f2b0b1 100644
--- a/src/mpi/romio/mpi-io/close.c
+++ b/src/mpi/romio/mpi-io/close.c
@@ -44,6 +44,8 @@ int MPI_File_close(MPI_File *fh)
HPMP_IO_WSTART(fl_xmpi, BLKMPIFILECLOSE, TRDTBLOCK, *adio_fh);
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(*fh);
/* --BEGIN ERROR HANDLING-- */
@@ -88,6 +90,7 @@ int MPI_File_close(MPI_File *fh)
#endif /* MPI_hpux */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
fn_fail:
/* --BEGIN ERROR HANDLING-- */
diff --git a/src/mpi/romio/mpi-io/delete.c b/src/mpi/romio/mpi-io/delete.c
index d9a3e0f..47b52a0 100644
--- a/src/mpi/romio/mpi-io/delete.c
+++ b/src/mpi/romio/mpi-io/delete.c
@@ -48,6 +48,8 @@ int MPI_File_delete(ROMIO_CONST char *filename, MPI_Info info)
MPIU_UNREFERENCED_ARG(info);
+ ROMIO_THREAD_CS_ENTER();
+
MPIR_MPIOInit(&error_code);
if (error_code != MPI_SUCCESS) goto fn_exit;
@@ -88,5 +90,6 @@ int MPI_File_delete(ROMIO_CONST char *filename, MPI_Info info)
#endif /* MPI_hpux */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/fsync.c b/src/mpi/romio/mpi-io/fsync.c
index 03a2138..7b2ef12 100644
--- a/src/mpi/romio/mpi-io/fsync.c
+++ b/src/mpi/romio/mpi-io/fsync.c
@@ -45,6 +45,7 @@ int MPI_File_sync(MPI_File fh)
HPMP_IO_START(fl_xmpi, BLKMPIFILESYNC, TRDTBLOCK, adio_fh,
MPI_DATATYPE_NULL, -1);
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -70,5 +71,6 @@ int MPI_File_sync(MPI_File fh)
#endif /* MPI_hpux */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/get_errh.c b/src/mpi/romio/mpi-io/get_errh.c
index e51c851..7962e33 100644
--- a/src/mpi/romio/mpi-io/get_errh.c
+++ b/src/mpi/romio/mpi-io/get_errh.c
@@ -44,6 +44,8 @@ int MPI_File_get_errhandler(MPI_File mpi_fh, MPI_Errhandler *errhandler)
static char myname[] = "MPI_FILE_GET_ERRHANDLER";
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
+
if (mpi_fh == MPI_FILE_NULL) {
*errhandler = ADIOI_DFLT_ERR_HANDLER;
}
@@ -64,5 +66,6 @@ int MPI_File_get_errhandler(MPI_File mpi_fh, MPI_Errhandler *errhandler)
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return MPI_SUCCESS;
}
diff --git a/src/mpi/romio/mpi-io/get_group.c b/src/mpi/romio/mpi-io/get_group.c
index 75475c3..2b3077c 100644
--- a/src/mpi/romio/mpi-io/get_group.c
+++ b/src/mpi/romio/mpi-io/get_group.c
@@ -43,6 +43,8 @@ int MPI_File_get_group(MPI_File fh, MPI_Group *group)
ADIO_File adio_fh;
static char myname[] = "MPI_FILE_GET_GROUP";
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -57,5 +59,6 @@ int MPI_File_get_group(MPI_File fh, MPI_Group *group)
error_code = MPI_Comm_group(adio_fh->comm, group);
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/get_info.c b/src/mpi/romio/mpi-io/get_info.c
index c3df84f..e923e2b 100644
--- a/src/mpi/romio/mpi-io/get_info.c
+++ b/src/mpi/romio/mpi-io/get_info.c
@@ -42,6 +42,8 @@ int MPI_File_get_info(MPI_File fh, MPI_Info *info_used)
ADIO_File adio_fh;
static char myname[] = "MPI_FILE_GET_INFO";
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -55,5 +57,6 @@ int MPI_File_get_info(MPI_File fh, MPI_Info *info_used)
/* --END ERROR HANDLING-- */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/get_view.c b/src/mpi/romio/mpi-io/get_view.c
index 38ed63c..46b0926 100644
--- a/src/mpi/romio/mpi-io/get_view.c
+++ b/src/mpi/romio/mpi-io/get_view.c
@@ -52,6 +52,8 @@ int MPI_File_get_view(MPI_File fh, MPI_Offset *disp, MPI_Datatype *etype,
int i, j, k, combiner;
MPI_Datatype copy_etype, copy_filetype;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -94,5 +96,7 @@ int MPI_File_get_view(MPI_File fh, MPI_Offset *disp, MPI_Datatype *etype,
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return MPI_SUCCESS;
}
diff --git a/src/mpi/romio/mpi-io/ioreq_c2f.c b/src/mpi/romio/mpi-io/ioreq_c2f.c
index 1aaf002..d49ebcd 100644
--- a/src/mpi/romio/mpi-io/ioreq_c2f.c
+++ b/src/mpi/romio/mpi-io/ioreq_c2f.c
@@ -56,6 +56,7 @@ MPI_Fint MPIO_Request_c2f(MPIO_Request request)
return (MPI_Fint) 0;
}
+ ROMIO_THREAD_CS_ENTER();
if (!ADIOI_Reqtable) {
ADIOI_Reqtable_max = 1024;
ADIOI_Reqtable = (MPIO_Request *)
@@ -74,6 +75,7 @@ MPI_Fint MPIO_Request_c2f(MPIO_Request request)
ADIOI_Reqtable_ptr++;
ADIOI_Reqtable[ADIOI_Reqtable_ptr] = request;
+ ROMIO_THREAD_CS_EXIT();
return (MPI_Fint) ADIOI_Reqtable_ptr;
#endif
}
diff --git a/src/mpi/romio/mpi-io/ioreq_f2c.c b/src/mpi/romio/mpi-io/ioreq_f2c.c
index 4b47cda..a58e4a2 100644
--- a/src/mpi/romio/mpi-io/ioreq_f2c.c
+++ b/src/mpi/romio/mpi-io/ioreq_f2c.c
@@ -49,6 +49,8 @@ MPIO_Request MPIO_Request_f2c(MPI_Fint request)
return (MPIO_Request) request;
#else
+ ROMIO_THREAD_CS_ENTER();
+
if (!request) {
return MPIO_REQUEST_NULL;
}
@@ -63,6 +65,7 @@ MPIO_Request MPIO_Request_f2c(MPI_Fint request)
/* --END ERROR HANDLING-- */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return ADIOI_Reqtable[request];
#endif
}
diff --git a/src/mpi/romio/mpi-io/iotest.c b/src/mpi/romio/mpi-io/iotest.c
index 89d2412..42bc8a3 100644
--- a/src/mpi/romio/mpi-io/iotest.c
+++ b/src/mpi/romio/mpi-io/iotest.c
@@ -56,6 +56,8 @@ int MPIO_Test(MPIO_Request *request, int *flag, MPI_Status *status)
}
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
+
if (*request == MPIO_REQUEST_NULL) {
error_code = MPI_SUCCESS;
goto fn_exit;
@@ -87,6 +89,7 @@ int MPIO_Test(MPIO_Request *request, int *flag, MPI_Status *status)
#endif /* MPI_hpux */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/iotestall.c b/src/mpi/romio/mpi-io/iotestall.c
index bde51c9..24dd8b2 100644
--- a/src/mpi/romio/mpi-io/iotestall.c
+++ b/src/mpi/romio/mpi-io/iotestall.c
@@ -34,6 +34,7 @@ int MPIO_Testall(int count, MPIO_Request requests[], int *flag,
int done, i, err;
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
if (count == 1) {
err = MPIO_Test( requests, flag, statuses );
goto fn_exit;
@@ -70,6 +71,7 @@ int MPIO_Testall(int count, MPIO_Request requests[], int *flag,
err = MPI_SUCCESS;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return err;
}
diff --git a/src/mpi/romio/mpi-io/iotestany.c b/src/mpi/romio/mpi-io/iotestany.c
index eaf4844..eac6197 100644
--- a/src/mpi/romio/mpi-io/iotestany.c
+++ b/src/mpi/romio/mpi-io/iotestany.c
@@ -34,6 +34,8 @@ int MPIO_Testany(int count, MPIO_Request requests[], int *index,
int i, err;
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
+
if (count == 1) {
err = MPIO_Test( requests, flag, status );
if (!err) *index = 0;
@@ -74,5 +76,6 @@ int MPIO_Testany(int count, MPIO_Request requests[], int *index,
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return err;
}
diff --git a/src/mpi/romio/mpi-io/iotestsome.c b/src/mpi/romio/mpi-io/iotestsome.c
index 01276d2..a7d7d4c 100644
--- a/src/mpi/romio/mpi-io/iotestsome.c
+++ b/src/mpi/romio/mpi-io/iotestsome.c
@@ -35,6 +35,8 @@ int MPIO_Testsome(int count, MPIO_Request requests[], int *outcount,
int flag;
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
+
if (count == 1) {
err = MPIO_Test( requests, &flag, statuses );
if (!err) {
@@ -78,5 +80,7 @@ int MPIO_Testsome(int count, MPIO_Request requests[], int *outcount,
}
fn_exit:
+
+ ROMIO_THREAD_CS_EXIT();
return err;
}
diff --git a/src/mpi/romio/mpi-io/iowait.c b/src/mpi/romio/mpi-io/iowait.c
index e1cdda6..4d383c8 100644
--- a/src/mpi/romio/mpi-io/iowait.c
+++ b/src/mpi/romio/mpi-io/iowait.c
@@ -56,6 +56,8 @@ int MPIO_Wait(MPIO_Request *request, MPI_Status *status)
}
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
+
if (*request == MPIO_REQUEST_NULL) {
error_code = MPI_SUCCESS;
goto fn_exit;
@@ -88,6 +90,7 @@ int MPIO_Wait(MPIO_Request *request, MPI_Status *status)
#endif /* MPI_hpux */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/iowaitall.c b/src/mpi/romio/mpi-io/iowaitall.c
index 7e6ddf6..3e5e5b8 100644
--- a/src/mpi/romio/mpi-io/iowaitall.c
+++ b/src/mpi/romio/mpi-io/iowaitall.c
@@ -33,6 +33,8 @@ int MPIO_Waitall( int count, MPIO_Request requests[], MPI_Status statuses[] )
int notdone, i, flag, err;
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
+
if (count == 1) {
err = MPIO_Wait(requests, statuses);
goto fn_exit;
@@ -65,6 +67,8 @@ int MPIO_Waitall( int count, MPIO_Request requests[], MPI_Status statuses[] )
err = MPI_SUCCESS;
fn_exit:
+
+ ROMIO_THREAD_CS_EXIT();
return err;
}
diff --git a/src/mpi/romio/mpi-io/iowaitany.c b/src/mpi/romio/mpi-io/iowaitany.c
index cd53825..747aa5b 100644
--- a/src/mpi/romio/mpi-io/iowaitany.c
+++ b/src/mpi/romio/mpi-io/iowaitany.c
@@ -34,6 +34,8 @@ int MPIO_Waitany(int count, MPIO_Request requests[], int *index,
int i, flag, err;
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
+
if (count == 1) {
err = MPIO_Wait( requests, status );
if (!err) *index = 0;
@@ -76,5 +78,7 @@ int MPIO_Waitany(int count, MPIO_Request requests[], int *index,
} while (flag == 0);
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return err;
}
diff --git a/src/mpi/romio/mpi-io/iowaitsome.c b/src/mpi/romio/mpi-io/iowaitsome.c
index 143384a..1bca9c6 100644
--- a/src/mpi/romio/mpi-io/iowaitsome.c
+++ b/src/mpi/romio/mpi-io/iowaitsome.c
@@ -34,6 +34,8 @@ int MPIO_Waitsome(int count, MPIO_Request requests[], int *outcount,
int i, flag, err;
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
+
if (count == 1) {
err = MPIO_Wait( requests, statuses );
if (!err) {
@@ -74,5 +76,6 @@ int MPIO_Waitsome(int count, MPIO_Request requests[], int *outcount,
} while (*outcount == 0);
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return err;
}
diff --git a/src/mpi/romio/mpi-io/iread.c b/src/mpi/romio/mpi-io/iread.c
index 0ff2a3e..4b23a11 100644
--- a/src/mpi/romio/mpi-io/iread.c
+++ b/src/mpi/romio/mpi-io/iread.c
@@ -83,6 +83,8 @@ int MPIOI_File_iread(MPI_File fh, MPI_Offset offset, int file_ptr_type, void *bu
ADIO_Offset off, bufsize;
MPI_Offset nbytes=0;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -152,6 +154,8 @@ int MPIOI_File_iread(MPI_File fh, MPI_Offset offset, int file_ptr_type, void *bu
offset, request, &error_code);
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/iread_all.c b/src/mpi/romio/mpi-io/iread_all.c
index f0959f8..afe44f6 100644
--- a/src/mpi/romio/mpi-io/iread_all.c
+++ b/src/mpi/romio/mpi-io/iread_all.c
@@ -89,6 +89,8 @@ int MPIOI_File_iread_all(MPI_File fh,
ADIO_File adio_fh;
void *xbuf=NULL, *e32_buf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -140,6 +142,8 @@ int MPIOI_File_iread_all(MPI_File fh,
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/iread_sh.c b/src/mpi/romio/mpi-io/iread_sh.c
index 1fac1bc..bd64313 100644
--- a/src/mpi/romio/mpi-io/iread_sh.c
+++ b/src/mpi/romio/mpi-io/iread_sh.c
@@ -55,6 +55,8 @@ int MPI_File_iread_shared(MPI_File fh, void *buf, int count,
ADIO_Offset off, shared_fp;
MPI_Offset nbytes=0;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -132,6 +134,7 @@ int MPI_File_iread_shared(MPI_File fh, void *buf, int count,
/* --END ERROR HANDLING-- */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/iwrite.c b/src/mpi/romio/mpi-io/iwrite.c
index 1103b09..ae6c6ae 100644
--- a/src/mpi/romio/mpi-io/iwrite.c
+++ b/src/mpi/romio/mpi-io/iwrite.c
@@ -90,6 +90,7 @@ int MPIOI_File_iwrite(MPI_File fh,
ADIO_File adio_fh;
MPI_Offset nbytes=0;
+ ROMIO_THREAD_CS_ENTER();
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -161,6 +162,7 @@ int MPIOI_File_iwrite(MPI_File fh,
offset, request, &error_code);
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/iwrite_all.c b/src/mpi/romio/mpi-io/iwrite_all.c
index a6de14d..9f486e7 100644
--- a/src/mpi/romio/mpi-io/iwrite_all.c
+++ b/src/mpi/romio/mpi-io/iwrite_all.c
@@ -84,6 +84,8 @@ int MPIOI_File_iwrite_all(MPI_File fh,
void *e32buf=NULL;
const void *xbuf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -129,6 +131,8 @@ int MPIOI_File_iwrite_all(MPI_File fh,
fn_exit:
if (e32buf != NULL) ADIOI_Free(e32buf);
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/iwrite_sh.c b/src/mpi/romio/mpi-io/iwrite_sh.c
index 67bdfd9..3f9612a 100644
--- a/src/mpi/romio/mpi-io/iwrite_sh.c
+++ b/src/mpi/romio/mpi-io/iwrite_sh.c
@@ -55,6 +55,8 @@ int MPI_File_iwrite_shared(MPI_File fh, ROMIO_CONST void *buf, int count,
ADIO_Offset off, shared_fp;
static char myname[] = "MPI_FILE_IWRITE_SHARED";
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -112,5 +114,7 @@ int MPI_File_iwrite_shared(MPI_File fh, ROMIO_CONST void *buf, int count,
shared_fp, request, &error_code);
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/mpioimpl.h b/src/mpi/romio/mpi-io/mpioimpl.h
index 452c2cb..074ad42 100644
--- a/src/mpi/romio/mpi-io/mpioimpl.h
+++ b/src/mpi/romio/mpi-io/mpioimpl.h
@@ -18,10 +18,9 @@
#ifdef ROMIO_INSIDE_MPICH
#include "glue_romio.h"
-#define ROMIO_THREAD_CS_ENTER(mutex) MPIR_Ext_cs_enter(mutex)
-#define ROMIO_THREAD_CS_EXIT(mutex) MPIR_Ext_cs_exit(mutex)
-#define ROMIO_THREAD_CS_YIELD(mutex) MPIR_Ext_cs_yield(mutex)
-#define MPIR_EXT_CS_YIELD_GLOBAL() MPIR_Ext_cs_yield_global()
+#define ROMIO_THREAD_CS_ENTER() MPIR_Ext_cs_enter()
+#define ROMIO_THREAD_CS_EXIT() MPIR_Ext_cs_exit()
+#define ROMIO_THREAD_CS_YIELD() MPIR_Ext_cs_yield()
/* committed datatype checking support in ROMIO */
#define MPIO_DATATYPE_ISCOMMITTED(dtype_, err_) \
@@ -34,10 +33,9 @@
error reporting features provided by MPICH must implement these
four functions. Defining these as empty should not change the behavior
of correct programs */
-#define ROMIO_THREAD_CS_ENTER(mutex)
-#define ROMIO_THREAD_CS_EXIT(mutex)
-#define ROMIO_THREAD_CS_YIELD(mutex)
-#define MPIR_EXT_CS_YIELD_GLOBAL()
+#define ROMIO_THREAD_CS_ENTER()
+#define ROMIO_THREAD_CS_EXIT()
+#define ROMIO_THREAD_CS_YIELD()
#define MPIO_DATATYPE_ISCOMMITTED(dtype_, err_) do {} while (0)
#ifdef HAVE_WINDOWS_H
#define MPIU_UNREFERENCED_ARG(a) a
diff --git a/src/mpi/romio/mpi-io/mpir-mpioinit.c b/src/mpi/romio/mpi-io/mpir-mpioinit.c
index a7f9d08..be78b45 100644
--- a/src/mpi/romio/mpi-io/mpir-mpioinit.c
+++ b/src/mpi/romio/mpi-io/mpir-mpioinit.c
@@ -13,7 +13,6 @@
#endif
extern int ADIO_Init_keyval;
-void *ADIO_THREAD_MUTEX = NULL;
/* common code to stuff an attribute on a communicator for the purpose of
* cleaning up in MPI_Finalize() */
@@ -49,9 +48,6 @@ void MPIR_MPIOInit(int * error_code) {
/* initialize ADIO */
ADIO_Init( (int *)0, (char ***)0, error_code);
-
- /* create mutexes */
- MPIR_Ext_thread_mutex_create((void **) &ADIO_THREAD_MUTEX);
}
*error_code = MPI_SUCCESS;
}
diff --git a/src/mpi/romio/mpi-io/open.c b/src/mpi/romio/mpi-io/open.c
index f100022..7cebb5a 100644
--- a/src/mpi/romio/mpi-io/open.c
+++ b/src/mpi/romio/mpi-io/open.c
@@ -59,6 +59,8 @@ int MPI_File_open(MPI_Comm comm, ROMIO_CONST char *filename, int amode,
HPMP_IO_OPEN_START(fl_xmpi, comm);
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
+
/* --BEGIN ERROR HANDLING-- */
MPIO_CHECK_COMM(comm, myname, error_code);
MPIO_CHECK_INFO_ALL(info, error_code, comm);
@@ -196,6 +198,7 @@ int MPI_File_open(MPI_Comm comm, ROMIO_CONST char *filename, int amode,
#endif /* MPI_hpux */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
fn_fail:
/* --BEGIN ERROR HANDLING-- */
diff --git a/src/mpi/romio/mpi-io/prealloc.c b/src/mpi/romio/mpi-io/prealloc.c
index c258295..1542e47 100644
--- a/src/mpi/romio/mpi-io/prealloc.c
+++ b/src/mpi/romio/mpi-io/prealloc.c
@@ -48,6 +48,8 @@ int MPI_File_preallocate(MPI_File fh, MPI_Offset size)
adio_fh, MPI_DATATYPE_NULL, -1);
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -97,6 +99,8 @@ int MPI_File_preallocate(MPI_File fh, MPI_Offset size)
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
/* TODO: bcast result? */
if (!mynod) return error_code;
else return MPI_SUCCESS;
diff --git a/src/mpi/romio/mpi-io/read.c b/src/mpi/romio/mpi-io/read.c
index 05ed206..6f12914 100644
--- a/src/mpi/romio/mpi-io/read.c
+++ b/src/mpi/romio/mpi-io/read.c
@@ -79,6 +79,8 @@ int MPIOI_File_read(MPI_File fh,
ADIO_Offset off, bufsize;
void *xbuf=NULL, *e32_buf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -178,6 +180,8 @@ int MPIOI_File_read(MPI_File fh,
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/read_all.c b/src/mpi/romio/mpi-io/read_all.c
index eed2606..e0b605d 100644
--- a/src/mpi/romio/mpi-io/read_all.c
+++ b/src/mpi/romio/mpi-io/read_all.c
@@ -80,6 +80,8 @@ int MPIOI_File_read_all(MPI_File fh,
ADIO_File adio_fh;
void *xbuf=NULL, *e32_buf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -133,6 +135,8 @@ int MPIOI_File_read_all(MPI_File fh,
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/read_allb.c b/src/mpi/romio/mpi-io/read_allb.c
index 5e2b31a..2110f71 100644
--- a/src/mpi/romio/mpi-io/read_allb.c
+++ b/src/mpi/romio/mpi-io/read_allb.c
@@ -67,6 +67,8 @@ int MPIOI_File_read_all_begin(MPI_File fh,
ADIO_File adio_fh;
void *xbuf=NULL, *e32_buf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -130,6 +132,8 @@ int MPIOI_File_read_all_begin(MPI_File fh,
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/read_alle.c b/src/mpi/romio/mpi-io/read_alle.c
index 1754b6c..e2853c1 100644
--- a/src/mpi/romio/mpi-io/read_alle.c
+++ b/src/mpi/romio/mpi-io/read_alle.c
@@ -60,6 +60,8 @@ int MPIOI_File_read_all_end(MPI_File fh,
MPIU_UNREFERENCED_ARG(buf);
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -81,6 +83,8 @@ int MPIOI_File_read_all_end(MPI_File fh,
adio_fh->split_coll_count = 0;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/read_ord.c b/src/mpi/romio/mpi-io/read_ord.c
index 0560d89..be87763 100644
--- a/src/mpi/romio/mpi-io/read_ord.c
+++ b/src/mpi/romio/mpi-io/read_ord.c
@@ -53,6 +53,8 @@ int MPI_File_read_ordered(MPI_File fh, void *buf, int count,
ADIO_Offset shared_fp=0;
ADIO_File adio_fh;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -102,6 +104,8 @@ int MPI_File_read_ordered(MPI_File fh, void *buf, int count,
/* --END ERROR HANDLING-- */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
/* FIXME: Check for error code from ReadStridedColl? */
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/read_ordb.c b/src/mpi/romio/mpi-io/read_ordb.c
index 88fbc9b..5548bde 100644
--- a/src/mpi/romio/mpi-io/read_ordb.c
+++ b/src/mpi/romio/mpi-io/read_ordb.c
@@ -50,6 +50,8 @@ int MPI_File_read_ordered_begin(MPI_File fh, void *buf, int count,
static char myname[] = "MPI_FILE_READ_ORDERED_BEGIN";
void *xbuf=NULL, *e32_buf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -129,5 +131,7 @@ int MPI_File_read_ordered_begin(MPI_File fh, void *buf, int count,
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/read_orde.c b/src/mpi/romio/mpi-io/read_orde.c
index 649d2e0..542f687 100644
--- a/src/mpi/romio/mpi-io/read_orde.c
+++ b/src/mpi/romio/mpi-io/read_orde.c
@@ -45,6 +45,8 @@ int MPI_File_read_ordered_end(MPI_File fh, void *buf, MPI_Status *status)
MPIU_UNREFERENCED_ARG(buf);
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -67,5 +69,7 @@ int MPI_File_read_ordered_end(MPI_File fh, void *buf, MPI_Status *status)
adio_fh->split_coll_count = 0;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/read_sh.c b/src/mpi/romio/mpi-io/read_sh.c
index 34e76b0..8ebbf87 100644
--- a/src/mpi/romio/mpi-io/read_sh.c
+++ b/src/mpi/romio/mpi-io/read_sh.c
@@ -52,6 +52,8 @@ int MPI_File_read_shared(MPI_File fh, void *buf, int count,
ADIO_File adio_fh;
void *xbuf=NULL, *e32_buf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -147,5 +149,7 @@ int MPI_File_read_shared(MPI_File fh, void *buf, int count,
ADIOI_Free(e32_buf);
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/register_datarep.c b/src/mpi/romio/mpi-io/register_datarep.c
index 53ebe3c..3895872 100644
--- a/src/mpi/romio/mpi-io/register_datarep.c
+++ b/src/mpi/romio/mpi-io/register_datarep.c
@@ -62,6 +62,8 @@ int MPI_Register_datarep(ROMIO_CONST char *datarep,
ADIOI_Datarep *adio_datarep;
static char myname[] = "MPI_REGISTER_DATAREP";
+ ROMIO_THREAD_CS_ENTER();
+
/* --BEGIN ERROR HANDLING-- */
/* check datarep name (use strlen instead of strnlen because
strnlen is not portable) */
@@ -137,5 +139,7 @@ int MPI_Register_datarep(ROMIO_CONST char *datarep,
error_code = MPI_SUCCESS;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/seek.c b/src/mpi/romio/mpi-io/seek.c
index 78602b1..c68394a 100644
--- a/src/mpi/romio/mpi-io/seek.c
+++ b/src/mpi/romio/mpi-io/seek.c
@@ -49,6 +49,8 @@ int MPI_File_seek(MPI_File fh, MPI_Offset offset, int whence)
HPMP_IO_START(fl_xmpi, BLKMPIFILESEEK, TRDTBLOCK, adio_fh, MPI_DATATYPE_NULL, -1);
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -132,5 +134,6 @@ int MPI_File_seek(MPI_File fh, MPI_Offset offset, int whence)
error_code = MPI_SUCCESS;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/seek_sh.c b/src/mpi/romio/mpi-io/seek_sh.c
index 18396a5..d3ce1ab 100644
--- a/src/mpi/romio/mpi-io/seek_sh.c
+++ b/src/mpi/romio/mpi-io/seek_sh.c
@@ -41,6 +41,8 @@ int MPI_File_seek_shared(MPI_File fh, MPI_Offset offset, int whence)
MPI_Offset curr_offset, eof_offset, tmp_offset;
ADIO_File adio_fh;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -176,5 +178,7 @@ int MPI_File_seek_shared(MPI_File fh, MPI_Offset offset, int whence)
error_code = MPI_SUCCESS;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/set_atom.c b/src/mpi/romio/mpi-io/set_atom.c
index 7cd5c5f..00be9fc 100644
--- a/src/mpi/romio/mpi-io/set_atom.c
+++ b/src/mpi/romio/mpi-io/set_atom.c
@@ -41,6 +41,8 @@ int MPI_File_set_atomicity(MPI_File fh, int flag)
ADIO_Fcntl_t *fcntl_struct;
ADIO_File adio_fh;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -84,5 +86,6 @@ int MPI_File_set_atomicity(MPI_File fh, int flag)
ADIOI_Free(fcntl_struct);
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/set_errh.c b/src/mpi/romio/mpi-io/set_errh.c
index 046ecf9..d943787 100644
--- a/src/mpi/romio/mpi-io/set_errh.c
+++ b/src/mpi/romio/mpi-io/set_errh.c
@@ -42,6 +42,8 @@ int MPI_File_set_errhandler(MPI_File mpi_fh, MPI_Errhandler errhandler)
ADIO_File fh;
MPID_THREADPRIV_DECL;
+ ROMIO_THREAD_CS_ENTER();
+
if (mpi_fh == MPI_FILE_NULL) {
ADIOI_DFLT_ERR_HANDLER = errhandler;
}
@@ -69,5 +71,6 @@ int MPI_File_set_errhandler(MPI_File mpi_fh, MPI_Errhandler errhandler)
}
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/set_info.c b/src/mpi/romio/mpi-io/set_info.c
index 4eb1405..2c898fe 100644
--- a/src/mpi/romio/mpi-io/set_info.c
+++ b/src/mpi/romio/mpi-io/set_info.c
@@ -40,6 +40,8 @@ int MPI_File_set_info(MPI_File fh, MPI_Info info)
static char myname[] = "MPI_FILE_SET_INFO";
ADIO_File adio_fh;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -56,6 +58,8 @@ fn_exit:
error_code = MPIO_Err_return_file(adio_fh, error_code);
/* --END ERROR HANDLING-- */
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
fn_fail:
goto fn_exit;
diff --git a/src/mpi/romio/mpi-io/set_size.c b/src/mpi/romio/mpi-io/set_size.c
index 26a8b4d..b658929 100644
--- a/src/mpi/romio/mpi-io/set_size.c
+++ b/src/mpi/romio/mpi-io/set_size.c
@@ -48,6 +48,8 @@ int MPI_File_set_size(MPI_File fh, MPI_Offset size)
MPI_DATATYPE_NULL, -1);
#endif /* MPI_hpux */
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -97,5 +99,7 @@ int MPI_File_set_size(MPI_File fh, MPI_Offset size)
#endif /* MPI_hpux */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/set_view.c b/src/mpi/romio/mpi-io/set_view.c
index e5fc2ef..4d98fdd 100644
--- a/src/mpi/romio/mpi-io/set_view.c
+++ b/src/mpi/romio/mpi-io/set_view.c
@@ -48,6 +48,8 @@ int MPI_File_set_view(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
ADIO_Offset shared_fp, byte_off;
ADIO_File adio_fh;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -191,6 +193,8 @@ int MPI_File_set_view(MPI_File fh, MPI_Offset disp, MPI_Datatype etype,
adio_fh->is_external32 = 1;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
fn_fail:
/* --BEGIN ERROR HANDLING-- */
diff --git a/src/mpi/romio/mpi-io/write.c b/src/mpi/romio/mpi-io/write.c
index 8aa22d1..eb9a77f 100644
--- a/src/mpi/romio/mpi-io/write.c
+++ b/src/mpi/romio/mpi-io/write.c
@@ -80,6 +80,8 @@ int MPIOI_File_write(MPI_File fh,
void *e32buf=NULL;
const void *xbuf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -177,6 +179,8 @@ int MPIOI_File_write(MPI_File fh,
fn_exit:
if (e32buf!= NULL) ADIOI_Free(e32buf);
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/write_all.c b/src/mpi/romio/mpi-io/write_all.c
index e48fe98..6f17cc3 100644
--- a/src/mpi/romio/mpi-io/write_all.c
+++ b/src/mpi/romio/mpi-io/write_all.c
@@ -81,6 +81,8 @@ int MPIOI_File_write_all(MPI_File fh,
void *e32buf=NULL;
const void *xbuf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -125,6 +127,8 @@ int MPIOI_File_write_all(MPI_File fh,
fn_exit:
if (e32buf != NULL) ADIOI_Free(e32buf);
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/write_allb.c b/src/mpi/romio/mpi-io/write_allb.c
index 40b2fe9..e184723 100644
--- a/src/mpi/romio/mpi-io/write_allb.c
+++ b/src/mpi/romio/mpi-io/write_allb.c
@@ -67,6 +67,8 @@ int MPIOI_File_write_all_begin(MPI_File fh,
void *e32buf=NULL;
const void *xbuf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -123,6 +125,8 @@ int MPIOI_File_write_all_begin(MPI_File fh,
fn_exit:
if ( e32buf != NULL) ADIOI_Free(e32buf);
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/write_alle.c b/src/mpi/romio/mpi-io/write_alle.c
index 5699858..6dc7f6d 100644
--- a/src/mpi/romio/mpi-io/write_alle.c
+++ b/src/mpi/romio/mpi-io/write_alle.c
@@ -59,6 +59,8 @@ int MPIOI_File_write_all_end(MPI_File fh,
MPIU_UNREFERENCED_ARG(buf);
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -86,6 +88,8 @@ int MPIOI_File_write_all_end(MPI_File fh,
error_code = MPI_SUCCESS;
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
return error_code;
}
#endif
diff --git a/src/mpi/romio/mpi-io/write_ord.c b/src/mpi/romio/mpi-io/write_ord.c
index 17b8d21..eb72734 100644
--- a/src/mpi/romio/mpi-io/write_ord.c
+++ b/src/mpi/romio/mpi-io/write_ord.c
@@ -56,6 +56,8 @@ int MPI_File_write_ordered(MPI_File fh, ROMIO_CONST void *buf, int count,
void *e32buf=NULL;
const void *xbuf;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -118,6 +120,7 @@ int MPI_File_write_ordered(MPI_File fh, ROMIO_CONST void *buf, int count,
fn_exit:
if (e32buf != NULL) ADIOI_Free(e32buf);
+ ROMIO_THREAD_CS_EXIT();
/* FIXME: Check for error code from WriteStridedColl? */
return error_code;
diff --git a/src/mpi/romio/mpi-io/write_ordb.c b/src/mpi/romio/mpi-io/write_ordb.c
index 829f13e..8b5a302 100644
--- a/src/mpi/romio/mpi-io/write_ordb.c
+++ b/src/mpi/romio/mpi-io/write_ordb.c
@@ -52,6 +52,8 @@ int MPI_File_write_ordered_begin(MPI_File fh, ROMIO_CONST void *buf, int count,
void *e32buf = NULL;
const void *xbuf=NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -123,6 +125,8 @@ int MPI_File_write_ordered_begin(MPI_File fh, ROMIO_CONST void *buf, int count,
/* --END ERROR HANDLING-- */
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
+
/* FIXME: Check for error code from WriteStridedColl? */
return error_code;
}
diff --git a/src/mpi/romio/mpi-io/write_orde.c b/src/mpi/romio/mpi-io/write_orde.c
index 4d294b8..8cfdba2 100644
--- a/src/mpi/romio/mpi-io/write_orde.c
+++ b/src/mpi/romio/mpi-io/write_orde.c
@@ -45,6 +45,8 @@ int MPI_File_write_ordered_end(MPI_File fh, ROMIO_CONST void *buf, MPI_Status *s
MPIU_UNREFERENCED_ARG(buf);
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -66,6 +68,8 @@ int MPI_File_write_ordered_end(MPI_File fh, ROMIO_CONST void *buf, MPI_Status *s
#endif
adio_fh->split_coll_count = 0;
+
fn_exit:
+ ROMIO_THREAD_CS_EXIT();
return MPI_SUCCESS;
}
diff --git a/src/mpi/romio/mpi-io/write_sh.c b/src/mpi/romio/mpi-io/write_sh.c
index ce6444b..ed8e1c1 100644
--- a/src/mpi/romio/mpi-io/write_sh.c
+++ b/src/mpi/romio/mpi-io/write_sh.c
@@ -54,6 +54,8 @@ int MPI_File_write_shared(MPI_File fh, ROMIO_CONST void *buf, int count,
void *e32buf = NULL;
const void *xbuf = NULL;
+ ROMIO_THREAD_CS_ENTER();
+
adio_fh = MPIO_File_resolve(fh);
/* --BEGIN ERROR HANDLING-- */
@@ -142,5 +144,6 @@ int MPI_File_write_shared(MPI_File fh, ROMIO_CONST void *buf, int count,
fn_exit:
if (e32buf != NULL) ADIOI_Free(e32buf);
+ ROMIO_THREAD_CS_EXIT();
return error_code;
}
-----------------------------------------------------------------------
Summary of changes:
src/glue/romio/glue_romio.c | 38 +++-----------------------
src/include/glue_romio.h.in | 9 ++----
src/mpi/romio/adio/common/ad_end.c | 5 ---
src/mpi/romio/adio/common/ad_iread_coll.c | 2 +-
src/mpi/romio/adio/common/ad_iwrite_coll.c | 2 +-
src/mpi/romio/adio/common/cb_config_list.c | 3 --
src/mpi/romio/adio/common/flatten.c | 14 +--------
src/mpi/romio/adio/include/adioi.h | 2 -
src/mpi/romio/mpi-io/close.c | 3 ++
src/mpi/romio/mpi-io/delete.c | 3 ++
src/mpi/romio/mpi-io/fsync.c | 2 +
src/mpi/romio/mpi-io/get_errh.c | 3 ++
src/mpi/romio/mpi-io/get_group.c | 3 ++
src/mpi/romio/mpi-io/get_info.c | 3 ++
src/mpi/romio/mpi-io/get_view.c | 4 +++
src/mpi/romio/mpi-io/glue/mpich/mpio_file.c | 2 -
src/mpi/romio/mpi-io/ioreq_c2f.c | 2 +
src/mpi/romio/mpi-io/ioreq_f2c.c | 3 ++
src/mpi/romio/mpi-io/iotest.c | 3 ++
src/mpi/romio/mpi-io/iotestall.c | 2 +
src/mpi/romio/mpi-io/iotestany.c | 3 ++
src/mpi/romio/mpi-io/iotestsome.c | 4 +++
src/mpi/romio/mpi-io/iowait.c | 3 ++
src/mpi/romio/mpi-io/iowaitall.c | 4 +++
src/mpi/romio/mpi-io/iowaitany.c | 4 +++
src/mpi/romio/mpi-io/iowaitsome.c | 3 ++
src/mpi/romio/mpi-io/iread.c | 4 +++
src/mpi/romio/mpi-io/iread_all.c | 4 +++
src/mpi/romio/mpi-io/iread_sh.c | 3 ++
src/mpi/romio/mpi-io/iwrite.c | 2 +
src/mpi/romio/mpi-io/iwrite_all.c | 4 +++
src/mpi/romio/mpi-io/iwrite_sh.c | 4 +++
src/mpi/romio/mpi-io/mpioimpl.h | 14 ++++-----
src/mpi/romio/mpi-io/mpir-mpioinit.c | 4 ---
src/mpi/romio/mpi-io/open.c | 3 ++
src/mpi/romio/mpi-io/prealloc.c | 4 +++
src/mpi/romio/mpi-io/read.c | 4 +++
src/mpi/romio/mpi-io/read_all.c | 4 +++
src/mpi/romio/mpi-io/read_allb.c | 4 +++
src/mpi/romio/mpi-io/read_alle.c | 4 +++
src/mpi/romio/mpi-io/read_ord.c | 4 +++
src/mpi/romio/mpi-io/read_ordb.c | 4 +++
src/mpi/romio/mpi-io/read_orde.c | 4 +++
src/mpi/romio/mpi-io/read_sh.c | 4 +++
src/mpi/romio/mpi-io/register_datarep.c | 4 +++
src/mpi/romio/mpi-io/seek.c | 3 ++
src/mpi/romio/mpi-io/seek_sh.c | 4 +++
src/mpi/romio/mpi-io/set_atom.c | 3 ++
src/mpi/romio/mpi-io/set_errh.c | 3 ++
src/mpi/romio/mpi-io/set_info.c | 4 +++
src/mpi/romio/mpi-io/set_size.c | 4 +++
src/mpi/romio/mpi-io/set_view.c | 4 +++
src/mpi/romio/mpi-io/write.c | 4 +++
src/mpi/romio/mpi-io/write_all.c | 4 +++
src/mpi/romio/mpi-io/write_allb.c | 4 +++
src/mpi/romio/mpi-io/write_alle.c | 4 +++
src/mpi/romio/mpi-io/write_ord.c | 3 ++
src/mpi/romio/mpi-io/write_ordb.c | 4 +++
src/mpi/romio/mpi-io/write_orde.c | 4 +++
src/mpi/romio/mpi-io/write_sh.c | 3 ++
60 files changed, 189 insertions(+), 77 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-235-g1def98d
by noreply@mpich.org 23 Sep '15
by noreply@mpich.org 23 Sep '15
23 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 1def98d77ed0c9cf977695d7461a87cd1983bbb7 (commit)
via 85ea4e067e1f8f3bab197f46431b024ad826e81e (commit)
from b78f14c8e3b732817f5772dc88f6a5d1fe56498c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/1def98d77ed0c9cf977695d7461a87cd1…
commit 1def98d77ed0c9cf977695d7461a87cd1983bbb7
Author: Pavan Balaji <balaji(a)anl.gov>
Date: Wed Sep 23 11:14:51 2015 -0500
Move memalloc mutex to an all-granularity mutex.
MPID_THREAD_CS_ENTER/EXIT routines are recursive for the global thread
level. In this case, they use the thread-local storage to figure out
the locking depth. For compilers that do not have native TLS support,
we emulate it by allocating our own TLS using MPIU_Calloc.
MPIU_Calloc uses MPID_THREAD_CS_ENTER/EXIT in debug mode to make its
allocations thread-safe. This is a recursive chain.
To fix this issue, we make memory allocation routines special in that
they get their own mutex, which is enabled in both global and
per-object modes.
Signed-off-by: Sangmin Seo <sseo(a)anl.gov>
diff --git a/src/mpi/init/initthread.c b/src/mpi/init/initthread.c
index 16bd63d..ab1f771 100644
--- a/src/mpi/init/initthread.c
+++ b/src/mpi/init/initthread.c
@@ -172,6 +172,8 @@ static int thread_cs_init( void )
/* There is a single, global lock, held for the duration of an MPI call */
MPID_Thread_mutex_create(&MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX, &err);
MPIU_Assert(err == 0);
+ MPID_Thread_mutex_create(&MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX, &err);
+ MPIU_Assert(err == 0);
#elif MPICH_THREAD_GRANULARITY == MPICH_THREAD_GRANULARITY_PER_OBJECT
/* MPICH_THREAD_GRANULARITY_PER_OBJECT: Multiple locks */
@@ -187,7 +189,7 @@ static int thread_cs_init( void )
MPIU_Assert(err == 0);
MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_PMI_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_MEMALLOC_MUTEX, &err);
+ MPID_Thread_mutex_create(&MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX, &err);
MPIU_Assert(err == 0);
#elif MPICH_THREAD_GRANULARITY == MPICH_THREAD_GRANULARITY_LOCK_FREE
diff --git a/src/util/mem/trmem.c b/src/util/mem/trmem.c
index 14ec057..73549ad 100644
--- a/src/util/mem/trmem.c
+++ b/src/util/mem/trmem.c
@@ -17,95 +17,95 @@ void MPIU_trinit(int rank)
void MPIU_trdump(FILE *fp, int minid)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
MPL_trdump(fp, minid);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
}
void *MPIU_trmalloc(size_t a, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
retval = MPL_trmalloc(a, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
return retval;
}
void MPIU_trfree(void *a_ptr, int line, const char fname[])
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
MPL_trfree(a_ptr, line, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
}
int MPIU_trvalid(const char str[])
{
int retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
retval = MPL_trvalid(str);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
return retval;
}
void MPIU_trspace(size_t *space, size_t *fr)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
MPL_trspace(space, fr);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
}
void MPIU_trid(int id)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
MPL_trid(id);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
}
void MPIU_trlevel(int level)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
MPL_trlevel(level);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
}
void MPIU_trDebugLevel(int level)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
MPL_trDebugLevel(level);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
}
void *MPIU_trcalloc(size_t nelem, size_t elsize, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
retval = MPL_trcalloc(nelem, elsize, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
return retval;
}
void *MPIU_trrealloc(void *p, size_t size, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
retval = MPL_trrealloc(p, size, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
return retval;
}
void *MPIU_trstrdup(const char *str, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
retval = MPL_trstrdup(str, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
return retval;
}
void MPIU_TrSetMaxMem(size_t size)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
MPL_TrSetMaxMem(size);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(ALLGRAN, MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX);
}
diff --git a/src/util/thread/mpiu_thread.h b/src/util/thread/mpiu_thread.h
index 33e5b93..e837d34 100644
--- a/src/util/thread/mpiu_thread.h
+++ b/src/util/thread/mpiu_thread.h
@@ -77,6 +77,7 @@ typedef struct {
#if MPICH_THREAD_GRANULARITY == MPICH_THREAD_GRANULARITY_GLOBAL || \
MPICH_THREAD_GRANULARITY == MPICH_THREAD_GRANULARITY_PER_OBJECT
MPIU_Thread_mutex_t global_mutex;
+ MPIU_Thread_mutex_t memalloc_mutex; /* for MPIU_{Malloc,Free,Calloc} */
#endif
#if MPICH_THREAD_GRANULARITY == MPICH_THREAD_GRANULARITY_PER_OBJECT
@@ -85,7 +86,6 @@ typedef struct {
MPIU_Thread_mutex_t completion_mutex;
MPIU_Thread_mutex_t ctx_mutex;
MPIU_Thread_mutex_t pmi_mutex;
- MPIU_Thread_mutex_t memalloc_mutex; /* for MPIU_{Malloc,Free,Calloc} */
#endif
} MPIR_Thread_info_t;
extern MPIR_Thread_info_t MPIR_ThreadInfo;
@@ -96,7 +96,7 @@ extern MPIR_Thread_info_t MPIR_ThreadInfo;
#define MPIR_THREAD_POBJ_COMPLETION_MUTEX MPIR_ThreadInfo.completion_mutex
#define MPIR_THREAD_POBJ_CTX_MUTEX MPIR_ThreadInfo.ctx_mutex
#define MPIR_THREAD_POBJ_PMI_MUTEX MPIR_ThreadInfo.pmi_mutex
-#define MPIR_THREAD_POBJ_MEMALLOC_MUTEX MPIR_ThreadInfo.memalloc_mutex
+#define MPIR_THREAD_ALLGRAN_MEMALLOC_MUTEX MPIR_ThreadInfo.memalloc_mutex
#define MPIR_THREAD_POBJ_COMM_MUTEX(_comm_ptr) _comm_ptr->mutex
#define MPIR_THREAD_POBJ_WIN_MUTEX(_win_ptr) _win_ptr->mutex
diff --git a/src/util/thread/mpiu_thread_global.h b/src/util/thread/mpiu_thread_global.h
index 959b34e..b4f2d23 100644
--- a/src/util/thread/mpiu_thread_global.h
+++ b/src/util/thread/mpiu_thread_global.h
@@ -7,11 +7,16 @@
#if !defined(MPIU_THREAD_GLOBAL_H_INCLUDED)
#define MPIU_THREAD_GLOBAL_H_INCLUDED
-/* GLOBAL locks are all real ops */
+/* GLOBAL locks are all real recursive ops */
#define MPIUI_THREAD_CS_ENTER_GLOBAL(mutex) MPIUI_THREAD_CS_ENTER_RECURSIVE("GLOBAL", mutex)
#define MPIUI_THREAD_CS_EXIT_GLOBAL(mutex) MPIUI_THREAD_CS_EXIT_RECURSIVE("GLOBAL", mutex)
#define MPIUI_THREAD_CS_YIELD_GLOBAL(mutex) MPIUI_THREAD_CS_YIELD_RECURSIVE("GLOBAL", mutex)
+/* ALLGRAN locks are all real nonrecursive ops */
+#define MPIUI_THREAD_CS_ENTER_ALLGRAN(mutex) MPIUI_THREAD_CS_ENTER_NONRECURSIVE("ALLGRAN", mutex)
+#define MPIUI_THREAD_CS_EXIT_ALLGRAN(mutex) MPIUI_THREAD_CS_EXIT_NONRECURSIVE("ALLGRAN", mutex)
+#define MPIUI_THREAD_CS_YIELD_ALLGRAN(mutex) MPIUI_THREAD_CS_YIELD_NONRECURSIVE("ALLGRAN", mutex)
+
/* POBJ locks are all NO-OPs */
#define MPIUI_THREAD_CS_ENTER_POBJ(mutex)
#define MPIUI_THREAD_CS_EXIT_POBJ(mutex)
diff --git a/src/util/thread/mpiu_thread_pobj.h b/src/util/thread/mpiu_thread_pobj.h
index 2713e4c..3e58ff0 100644
--- a/src/util/thread/mpiu_thread_pobj.h
+++ b/src/util/thread/mpiu_thread_pobj.h
@@ -74,11 +74,16 @@
* the order should be to acquire MPIDCOMM first, then MSGQUEUE. Release in
* reverse order. */
-/* POBJ locks are all real ops */
+/* POBJ locks are all real recursive ops */
#define MPIUI_THREAD_CS_ENTER_POBJ(mutex) MPIUI_THREAD_CS_ENTER_NONRECURSIVE("POBJ", mutex)
#define MPIUI_THREAD_CS_EXIT_POBJ(mutex) MPIUI_THREAD_CS_EXIT_NONRECURSIVE("POBJ", mutex)
#define MPIUI_THREAD_CS_YIELD_POBJ(mutex) MPIUI_THREAD_CS_YIELD_NONRECURSIVE("POBJ", mutex)
+/* ALLGRAN locks are all real nonrecursive ops */
+#define MPIUI_THREAD_CS_ENTER_ALLGRAN(mutex) MPIUI_THREAD_CS_ENTER_NONRECURSIVE("ALLGRAN", mutex)
+#define MPIUI_THREAD_CS_EXIT_ALLGRAN(mutex) MPIUI_THREAD_CS_EXIT_NONRECURSIVE("ALLGRAN", mutex)
+#define MPIUI_THREAD_CS_YIELD_ALLGRAN(mutex) MPIUI_THREAD_CS_YIELD_NONRECURSIVE("ALLGRAN", mutex)
+
/* GLOBAL locks are all NO-OPs */
#define MPIUI_THREAD_CS_ENTER_GLOBAL(mutex)
#define MPIUI_THREAD_CS_EXIT_GLOBAL(mutex)
http://git.mpich.org/mpich.git/commitdiff/85ea4e067e1f8f3bab197f46431b024ad…
commit 85ea4e067e1f8f3bab197f46431b024ad826e81e
Author: Pavan Balaji <balaji(a)anl.gov>
Date: Wed Sep 23 11:10:46 2015 -0500
Rename POBJ mutexes to better namespace them.
Signed-off-by: Sangmin Seo <sseo(a)anl.gov>
diff --git a/src/mpi/comm/contextid.c b/src/mpi/comm/contextid.c
index 704d834..1914d8f 100644
--- a/src/mpi/comm/contextid.c
+++ b/src/mpi/comm/contextid.c
@@ -349,7 +349,7 @@ int MPIR_Get_contextid_sparse_group(MPID_Comm * comm_ptr, MPID_Group * group_ptr
while (*context_id == 0) {
/* We lock only around access to the mask (except in the global locking
* case). If another thread is using the mask, we take a mask of zero. */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
if (initialize_context_mask) {
context_id_init();
@@ -418,7 +418,7 @@ int MPIR_Get_contextid_sparse_group(MPID_Comm * comm_ptr, MPID_Group * group_ptr
MPIU_DBG_MSG(COMM, VERBOSE, "Copied local_mask");
}
}
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
/* Note: MPIR_MAX_CONTEXT_MASK elements of local_mask are used by the
* context ID allocation algorithm. The additional element is ignored
@@ -451,7 +451,7 @@ int MPIR_Get_contextid_sparse_group(MPID_Comm * comm_ptr, MPID_Group * group_ptr
/* MT FIXME 2/3 cases don't seem to need the CONTEXTID CS, check and
* narrow this region */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
if (ignore_id) {
/* we don't care what the value was, but make sure that everyone
* who did care agreed on a value */
@@ -476,7 +476,7 @@ int MPIR_Get_contextid_sparse_group(MPID_Comm * comm_ptr, MPID_Group * group_ptr
* When we do a collective operation, we anyway yield
* for other others */
MPID_THREAD_CS_YIELD(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
- MPID_THREAD_CS_YIELD(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_YIELD(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
}
}
else if (own_mask) {
@@ -505,7 +505,7 @@ int MPIR_Get_contextid_sparse_group(MPID_Comm * comm_ptr, MPID_Group * group_ptr
* When we do a collective operation, we anyway yield
* for other others */
MPID_THREAD_CS_YIELD(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
- MPID_THREAD_CS_YIELD(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_YIELD(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
}
}
else {
@@ -514,9 +514,9 @@ int MPIR_Get_contextid_sparse_group(MPID_Comm * comm_ptr, MPID_Group * group_ptr
* do a collective operation, we anyway yield for other
* others */
MPID_THREAD_CS_YIELD(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
- MPID_THREAD_CS_YIELD(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_YIELD(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
}
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
/* Test for context ID exhaustion: All threads that will participate in
* the new communicator owned the mask and could not allocate a context
@@ -530,13 +530,13 @@ int MPIR_Get_contextid_sparse_group(MPID_Comm * comm_ptr, MPID_Group * group_ptr
int minfree;
if (own_mask) {
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
mask_in_use = 0;
if (lowest_context_id == comm_ptr->context_id && lowest_tag == tag) {
lowest_context_id = MPIR_MAXID;
lowest_tag = -1;
}
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
}
context_mask_stats(&nfree, &ntotal);
@@ -1211,12 +1211,12 @@ void MPIR_Free_contextid(MPIU_Context_id_t context_id)
}
/* --END ERROR HANDLING-- */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
/* MT: Note that this update must be done atomically in the multithreaedd
* case. In the "one, single lock" implementation, that lock is indeed
* held when this operation is called. */
context_mask[idx] |= (0x1 << bitpos);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_CTX_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_CTX_MUTEX);
MPIU_DBG_MSG_FMT(COMM, VERBOSE,
(MPIU_DBG_FDEST,
diff --git a/src/mpi/init/initthread.c b/src/mpi/init/initthread.c
index 0e1e45a..16bd63d 100644
--- a/src/mpi/init/initthread.c
+++ b/src/mpi/init/initthread.c
@@ -177,17 +177,17 @@ static int thread_cs_init( void )
/* MPICH_THREAD_GRANULARITY_PER_OBJECT: Multiple locks */
MPID_Thread_mutex_create(&MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_create(&MPIR_THREAD_HANDLE_MUTEX, &err);
+ MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_HANDLE_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_create(&MPIR_THREAD_MSGQ_MUTEX, &err);
+ MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_MSGQ_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_create(&MPIR_THREAD_COMPLETION_MUTEX, &err);
+ MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_COMPLETION_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_create(&MPIR_THREAD_CTX_MUTEX, &err);
+ MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_CTX_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_create(&MPIR_THREAD_PMI_MUTEX, &err);
+ MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_PMI_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_create(&MPIR_THREAD_MEMALLOC_MUTEX, &err);
+ MPID_Thread_mutex_create(&MPIR_THREAD_POBJ_MEMALLOC_MUTEX, &err);
MPIU_Assert(err == 0);
#elif MPICH_THREAD_GRANULARITY == MPICH_THREAD_GRANULARITY_LOCK_FREE
@@ -228,15 +228,15 @@ int MPIR_Thread_CS_Finalize( void )
* one for each logical class (e.g., each type of object) */
MPID_Thread_mutex_destroy(&MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_destroy(&MPIR_THREAD_HANDLE_MUTEX, &err);
+ MPID_Thread_mutex_destroy(&MPIR_THREAD_POBJ_HANDLE_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_destroy(&MPIR_THREAD_MSGQ_MUTEX, &err);
+ MPID_Thread_mutex_destroy(&MPIR_THREAD_POBJ_MSGQ_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_destroy(&MPIR_THREAD_COMPLETION_MUTEX, &err);
+ MPID_Thread_mutex_destroy(&MPIR_THREAD_POBJ_COMPLETION_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_destroy(&MPIR_THREAD_CTX_MUTEX, &err);
+ MPID_Thread_mutex_destroy(&MPIR_THREAD_POBJ_CTX_MUTEX, &err);
MPIU_Assert(err == 0);
- MPID_Thread_mutex_destroy(&MPIR_THREAD_PMI_MUTEX, &err);
+ MPID_Thread_mutex_destroy(&MPIR_THREAD_POBJ_PMI_MUTEX, &err);
MPIU_Assert(err == 0);
diff --git a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c
index 4ee8677..2c896e7 100644
--- a/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c
+++ b/src/mpid/ch3/channels/nemesis/netmod/mxm/mxm_poll.c
@@ -236,9 +236,9 @@ static int _mxm_handle_rreq(MPID_Request * req)
MPID_nem_mxm_req_area *req_area = NULL;
void *tmp_buf = NULL;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
found = MPIDI_CH3U_Recvq_DP(req);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
/* an MPI_ANY_SOURCE request may have been previously removed from the
* CH3 queue by an FDP (find and dequeue posted) operation */
if (req->dev.match.parts.rank != MPI_ANY_SOURCE) {
diff --git a/src/mpid/ch3/channels/nemesis/src/mpid_nem_lmt.c b/src/mpid/ch3/channels/nemesis/src/mpid_nem_lmt.c
index 424c61e..ac077cf 100644
--- a/src/mpid/ch3/channels/nemesis/src/mpid_nem_lmt.c
+++ b/src/mpid/ch3/channels/nemesis/src/mpid_nem_lmt.c
@@ -193,7 +193,7 @@ static int pkt_RTS_handler(MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt, MPIDI_msg_sz_t
MPIDI_FUNC_ENTER(MPID_STATE_PKT_RTS_HANDLER);
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIU_DBG_MSG_FMT(CH3_OTHER,VERBOSE,(MPIU_DBG_FDEST, "received LMT RTS pkt, sreq=0x%08x, rank=%d, tag=%d, context=%d, data_sz=" MPIDI_MSG_SZ_FMT,
rts_pkt->sender_req_id, rts_pkt->match.parts.rank, rts_pkt->match.parts.tag, rts_pkt->match.parts.context_id,
@@ -289,7 +289,7 @@ static int pkt_RTS_handler(MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt, MPIDI_msg_sz_t
MPIU_CHKPMEM_COMMIT();
fn_exit:
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIDI_FUNC_EXIT(MPID_STATE_PKT_RTS_HANDLER);
return mpi_errno;
fn_fail:
diff --git a/src/mpid/ch3/include/mpidimpl.h b/src/mpid/ch3/include/mpidimpl.h
index dbea0be..51d1420 100644
--- a/src/mpid/ch3/include/mpidimpl.h
+++ b/src/mpid/ch3/include/mpidimpl.h
@@ -260,7 +260,7 @@ extern MPIDI_Process_t MPIDI_Process;
if (!MPID_THREADPRIV_FIELD(request_handles)) { \
MPID_Request *prev, *cur; \
/* batch allocate a linked list of requests */ \
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_HANDLE_MUTEX); \
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_HANDLE_MUTEX); \
prev = MPIU_Handle_obj_alloc_unsafe(&MPID_Request_mem); \
prev->next = NULL; \
assert(prev); \
@@ -270,7 +270,7 @@ extern MPIDI_Process_t MPIDI_Process;
cur->next = prev; \
prev = cur; \
} \
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_HANDLE_MUTEX); \
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_HANDLE_MUTEX); \
MPID_THREADPRIV_FIELD(request_handles) = cur; \
MPID_THREADPRIV_FIELD(request_handle_count) += MPID_REQUEST_TLS_MAX; \
} \
@@ -1225,12 +1225,12 @@ int MPIDI_CH3I_Get_accumulate(const void *origin_addr, int origin_count,
#ifndef MPIDI_CH3I_INCR_PROGRESS_COMPLETION_COUNT
#define MPIDI_CH3I_INCR_PROGRESS_COMPLETION_COUNT \
do { \
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_COMPLETION_MUTEX); \
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_COMPLETION_MUTEX); \
++MPIDI_CH3I_progress_completion_count; \
MPIU_DBG_MSG_D(CH3_PROGRESS,VERBOSE, \
"just incremented MPIDI_CH3I_progress_completion_count=%d", \
MPIDI_CH3I_progress_completion_count); \
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_COMPLETION_MUTEX); \
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_COMPLETION_MUTEX); \
} while (0)
#endif
diff --git a/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c b/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c
index 7caf3a2..78c864d 100644
--- a/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c
+++ b/src/mpid/ch3/src/ch3u_comm_spawn_multiple.c
@@ -173,7 +173,7 @@ int MPIDI_Comm_spawn_multiple(int count, char **commands,
*/
}
/* XXX DJG don't need this, PMI API is thread-safe? */
- /*MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_PMI_MUTEX);*/
+ /*MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);*/
/* release the global CS for spawn PMI calls */
MPID_THREAD_CS_EXIT(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
pmi_errno = PMI2_Job_Spawn(count, (const char **)commands,
@@ -185,7 +185,7 @@ int MPIDI_Comm_spawn_multiple(int count, char **commands,
/*jobId, jobIdSize,*/ /* XXX DJG job stuff? */
pmi_errcodes);
MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
- /*MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_PMI_MUTEX);*/
+ /*MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);*/
MPIU_Free(argcs);
if (pmi_errno != PMI2_SUCCESS) {
MPIR_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER,
@@ -225,7 +225,7 @@ int MPIDI_Comm_spawn_multiple(int count, char **commands,
preput_keyval_vector.val = port_name;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
pmi_errno = PMI_Spawn_multiple(count, (const char **)
commands,
(const char ***) argvs,
@@ -234,7 +234,7 @@ int MPIDI_Comm_spawn_multiple(int count, char **commands,
info_keyval_vectors, 1,
&preput_keyval_vector,
pmi_errcodes);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
if (pmi_errno != PMI_SUCCESS) {
MPIR_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER,
"**pmi_spawn_multiple", "**pmi_spawn_multiple %d", pmi_errno);
@@ -339,16 +339,16 @@ int MPIDI_CH3_GetParentPort(char ** parent_port)
#ifdef USE_PMI2_API
{
int vallen = 0;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
pmi_errno = PMI2_KVS_Get(kvsname, PMI2_ID_NULL, PARENT_PORT_KVSKEY, val, sizeof(val), &vallen);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
if (pmi_errno)
MPIR_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**pmi_kvsget", "**pmi_kvsget %s", PARENT_PORT_KVSKEY);
}
#else
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
pmi_errno = PMI_KVS_Get( kvsname, PARENT_PORT_KVSKEY, val, sizeof(val));
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
if (pmi_errno) {
mpi_errno = MPIR_Err_create_code(MPI_SUCCESS, MPIR_ERR_FATAL, FCNAME, __LINE__, MPI_ERR_OTHER, "**pmi_kvsget", "**pmi_kvsget %d", pmi_errno);
goto fn_exit;
diff --git a/src/mpid/ch3/src/ch3u_eager.c b/src/mpid/ch3/src/ch3u_eager.c
index 9cf33a2..1a81c5a 100644
--- a/src/mpid/ch3/src/ch3u_eager.c
+++ b/src/mpid/ch3/src/ch3u_eager.c
@@ -296,7 +296,7 @@ int MPIDI_CH3_PktHandler_EagerShortSend( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
int found;
int mpi_errno = MPI_SUCCESS;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
/* printf( "Receiving short eager!\n" ); fflush(stdout); */
MPIU_DBG_MSG_FMT(CH3_OTHER,VERBOSE,(MPIU_DBG_FDEST,
@@ -508,7 +508,7 @@ int MPIDI_CH3_PktHandler_EagerShortSend( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
/* MT note: it may be possible to narrow this CS after careful
* consideration. Note though that the (!found) case must be wholly
* protected by this CS. */
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
return mpi_errno;
}
@@ -615,7 +615,7 @@ int MPIDI_CH3_PktHandler_EagerSend( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
MPIDI_msg_sz_t data_len;
int mpi_errno = MPI_SUCCESS;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIU_DBG_MSG_FMT(CH3_OTHER,VERBOSE,(MPIU_DBG_FDEST,
"received eager send pkt, sreq=0x%08x, rank=%d, tag=%d, context=%d",
@@ -685,7 +685,7 @@ int MPIDI_CH3_PktHandler_EagerSend( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
}
fn_fail:
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
return mpi_errno;
}
diff --git a/src/mpid/ch3/src/ch3u_recvq.c b/src/mpid/ch3/src/ch3u_recvq.c
index b081a3e..4518cb4 100644
--- a/src/mpid/ch3/src/ch3u_recvq.c
+++ b/src/mpid/ch3/src/ch3u_recvq.c
@@ -683,7 +683,7 @@ int MPIDI_CH3U_Recvq_DP(MPID_Request * rreq)
prev_rreq = NULL;
/* MT FIXME is this right? or should the caller do this? */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIR_T_PVAR_TIMER_START(RECVQ, time_failed_matching_postedq);
cur_rreq = recvq_posted_head;
while (cur_rreq != NULL) {
@@ -713,7 +713,7 @@ int MPIDI_CH3U_Recvq_DP(MPID_Request * rreq)
if (!found)
MPIR_T_PVAR_TIMER_END(RECVQ, time_failed_matching_postedq);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIDI_FUNC_EXIT(MPID_STATE_MPIDI_CH3U_RECVQ_DP);
return found;
@@ -1132,7 +1132,7 @@ int MPIDI_CH3U_Complete_posted_with_error(MPIDI_VC_t *vc)
MPIDI_FUNC_ENTER(MPID_STATE_MPIDU_COMPLETE_POSTED_WITH_ERROR);
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIR_ERR_SETSIMPLE(error, MPIX_ERR_PROC_FAILED, "**proc_failed");
@@ -1150,7 +1150,7 @@ int MPIDI_CH3U_Complete_posted_with_error(MPIDI_VC_t *vc)
}
fn_exit:
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIDI_FUNC_EXIT(MPID_STATE_MPIDU_COMPLETE_POSTED_WITH_ERROR);
return mpi_errno;
diff --git a/src/mpid/ch3/src/ch3u_rndv.c b/src/mpid/ch3/src/ch3u_rndv.c
index bdff365..f6bb567 100644
--- a/src/mpid/ch3/src/ch3u_rndv.c
+++ b/src/mpid/ch3/src/ch3u_rndv.c
@@ -124,7 +124,7 @@ int MPIDI_CH3_PktHandler_RndvReqToSend( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
rts_pkt->match.parts.rank,rts_pkt->data_sz,
"ReceivedRndv");
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
rreq = MPIDI_CH3U_Recvq_FDP_or_AEU(&rts_pkt->match, &found);
MPIR_ERR_CHKANDJUMP1(!rreq, mpi_errno,MPI_ERR_OTHER, "**nomemreq", "**nomemuereq %d", MPIDI_CH3U_Recvq_count_unexp());
@@ -138,7 +138,7 @@ int MPIDI_CH3_PktHandler_RndvReqToSend( MPIDI_VC_t *vc, MPIDI_CH3_Pkt_t *pkt,
set_request_info(rreq, rts_pkt, MPIDI_REQUEST_RNDV_MSG);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
*buflen = sizeof(MPIDI_CH3_Pkt_t);
diff --git a/src/mpid/ch3/src/mpid_cancel_send.c b/src/mpid/ch3/src/mpid_cancel_send.c
index 5caff05..5f4b683 100644
--- a/src/mpid/ch3/src/mpid_cancel_send.c
+++ b/src/mpid/ch3/src/mpid_cancel_send.c
@@ -56,9 +56,9 @@ int MPID_Cancel_send(MPID_Request * sreq)
MPIU_DBG_MSG(CH3_OTHER,VERBOSE,
"attempting to cancel message sent to self");
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
rreq = MPIDI_CH3U_Recvq_FDU(sreq->handle, &sreq->dev.match);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (rreq)
{
MPIU_Assert(rreq->partner_request == sreq);
diff --git a/src/mpid/ch3/src/mpid_comm_revoke.c b/src/mpid/ch3/src/mpid_comm_revoke.c
index d4f75d5..09d836f 100644
--- a/src/mpid/ch3/src/mpid_comm_revoke.c
+++ b/src/mpid/ch3/src/mpid_comm_revoke.c
@@ -84,9 +84,9 @@ int MPID_Comm_revoke(MPID_Comm *comm_ptr, int is_remote)
* aren't any unexpected messages hanging around. */
/* Clean up the receive and unexpected queues */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIDI_CH3U_Clean_recvq(comm_ptr);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
} else if (is_remote) { /* If this is local, we've already revoked and don't need to do it again. */
/* Decrement the revoke counter */
comm_ptr->dev.waiting_for_revoke--;
diff --git a/src/mpid/ch3/src/mpid_improbe.c b/src/mpid/ch3/src/mpid_improbe.c
index f9a615a..4dbb6b7 100644
--- a/src/mpid/ch3/src/mpid_improbe.c
+++ b/src/mpid/ch3/src/mpid_improbe.c
@@ -42,9 +42,9 @@ int MPID_Improbe(int source, int tag, MPID_Comm *comm, int context_offset,
If still not found, call progress, and check again. */
/* check shm*/
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
*message = MPIDI_CH3U_Recvq_FDU_matchonly(source, tag, context_id, comm, flag);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (!*flag) {
/* not found, check network */
mpi_errno = MPIDI_Anysource_improbe_fn(tag, comm, context_offset, flag, message, status);
@@ -54,9 +54,9 @@ int MPID_Improbe(int source, int tag, MPID_Comm *comm, int context_offset,
mpi_errno = MPIDI_CH3_Progress_poke();
if (mpi_errno) MPIR_ERR_POP(mpi_errno);
/* check shm again */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
*message = MPIDI_CH3U_Recvq_FDU_matchonly(source, tag, context_id, comm, flag);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (!*flag) {
/* check network again */
mpi_errno = MPIDI_Anysource_improbe_fn(tag, comm, context_offset, flag, message, status);
@@ -80,9 +80,9 @@ int MPID_Improbe(int source, int tag, MPID_Comm *comm, int context_offset,
}
#endif
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
*message = MPIDI_CH3U_Recvq_FDU_matchonly(source, tag, context_id, comm, flag);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (!*flag) {
/* Always try to advance progress before returning failure
@@ -93,9 +93,9 @@ int MPID_Improbe(int source, int tag, MPID_Comm *comm, int context_offset,
had changed */
mpi_errno = MPID_Progress_poke();
if (mpi_errno) MPIR_ERR_POP(mpi_errno);
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
*message = MPIDI_CH3U_Recvq_FDU_matchonly(source, tag, context_id, comm, flag);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
}
if (*flag && *message) {
diff --git a/src/mpid/ch3/src/mpid_iprobe.c b/src/mpid/ch3/src/mpid_iprobe.c
index 713bf86..e30a1b2 100644
--- a/src/mpid/ch3/src/mpid_iprobe.c
+++ b/src/mpid/ch3/src/mpid_iprobe.c
@@ -46,9 +46,9 @@ int MPID_Iprobe(int source, int tag, MPID_Comm *comm, int context_offset,
If still not found, call progress, and check again. */
/* check shm*/
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
found = MPIDI_CH3U_Recvq_FU(source, tag, context, status);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (!found) {
/* not found, check network */
mpi_errno = MPIDI_Anysource_iprobe_fn(tag, comm, context_offset, &found, status);
@@ -58,9 +58,9 @@ int MPID_Iprobe(int source, int tag, MPID_Comm *comm, int context_offset,
mpi_errno = MPIDI_CH3_Progress_poke();
if (mpi_errno) MPIR_ERR_POP(mpi_errno);
/* check shm again */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
found = MPIDI_CH3U_Recvq_FU(source, tag, context, status);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (!found) {
/* check network again */
mpi_errno = MPIDI_Anysource_iprobe_fn(tag, comm, context_offset, &found, status);
@@ -90,9 +90,9 @@ int MPID_Iprobe(int source, int tag, MPID_Comm *comm, int context_offset,
a request. Note that in some cases it will be possible to
atomically query the unexpected receive list (which is what the
probe routines are for). */
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
found = MPIDI_CH3U_Recvq_FU( source, tag, context, status );
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (!found) {
/* Always try to advance progress before returning failure
from the iprobe test. */
@@ -101,9 +101,9 @@ int MPID_Iprobe(int source, int tag, MPID_Comm *comm, int context_offset,
a second test of the receive queue if we knew that nothing
had changed */
mpi_errno = MPID_Progress_poke();
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
found = MPIDI_CH3U_Recvq_FU( source, tag, context, status );
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
}
*flag = found;
diff --git a/src/mpid/ch3/src/mpid_irecv.c b/src/mpid/ch3/src/mpid_irecv.c
index 8f19987..47528f5 100644
--- a/src/mpid/ch3/src/mpid_irecv.c
+++ b/src/mpid/ch3/src/mpid_irecv.c
@@ -39,13 +39,13 @@ int MPID_Irecv(void * buf, MPI_Aint count, MPI_Datatype datatype, int rank, int
MPIR_ERR_SETANDJUMP(mpi_errno,MPIX_ERR_REVOKED,"**revoked");
}
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
rreq = MPIDI_CH3U_Recvq_FDU_or_AEP(rank, tag,
comm->recvcontext_id + context_offset,
comm, buf, count, datatype, &found);
if (rreq == NULL)
{
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIR_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**nomemreq");
}
@@ -58,7 +58,7 @@ int MPID_Irecv(void * buf, MPI_Aint count, MPI_Datatype datatype, int rank, int
/* Release the message queue - we've removed this request from
the queue already */
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (MPIDI_Request_get_msg_type(rreq) == MPIDI_REQUEST_EAGER_MSG)
{
@@ -160,7 +160,7 @@ int MPID_Irecv(void * buf, MPI_Aint count, MPI_Datatype datatype, int rank, int
/* We must wait until here to exit the msgqueue critical section
on this request (we needed to set the recv_pending_count
and the datatype pointer) */
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
}
fn_exit:
diff --git a/src/mpid/ch3/src/mpid_mprobe.c b/src/mpid/ch3/src/mpid_mprobe.c
index 4e00173..6e50eaf 100644
--- a/src/mpid/ch3/src/mpid_mprobe.c
+++ b/src/mpid/ch3/src/mpid_mprobe.c
@@ -40,9 +40,9 @@ int MPID_Mprobe(int source, int tag, MPID_Comm *comm, int context_offset,
queue and improbing the netmod, then do a progress
test to make some progress. */
do {
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
*message = MPIDI_CH3U_Recvq_FDU_matchonly(source, tag, context_id, comm,&found);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (found) goto fn_exit;
mpi_errno = MPIDI_Anysource_improbe_fn(tag, comm, context_offset, &found, message, status);
@@ -93,9 +93,9 @@ int MPID_Mprobe(int source, int tag, MPID_Comm *comm, int context_offset,
MPIDI_CH3_Progress_start(&progress_state);
do
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
*message = MPIDI_CH3U_Recvq_FDU_matchonly(source, tag, context_id, comm, &found);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (found)
break;
diff --git a/src/mpid/ch3/src/mpid_probe.c b/src/mpid/ch3/src/mpid_probe.c
index 9d8a043..2c37309 100644
--- a/src/mpid/ch3/src/mpid_probe.c
+++ b/src/mpid/ch3/src/mpid_probe.c
@@ -42,9 +42,9 @@ int MPID_Probe(int source, int tag, MPID_Comm * comm, int context_offset,
do {
int found;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
found = MPIDI_CH3U_Recvq_FU(source, tag, context, status);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (found) goto fn_exit;
mpi_errno = MPIDI_Anysource_iprobe_fn(tag, comm, context_offset, &found, status);
@@ -86,9 +86,9 @@ int MPID_Probe(int source, int tag, MPID_Comm * comm, int context_offset,
{
int found;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
found = MPIDI_CH3U_Recvq_FU(source, tag, context, status);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (found) break;
mpi_errno = MPIDI_CH3_Progress_wait(&progress_state);
diff --git a/src/mpid/ch3/src/mpid_recv.c b/src/mpid/ch3/src/mpid_recv.c
index 22199ce..d226784 100644
--- a/src/mpid/ch3/src/mpid_recv.c
+++ b/src/mpid/ch3/src/mpid_recv.c
@@ -46,12 +46,12 @@ int MPID_Recv(void * buf, MPI_Aint count, MPI_Datatype datatype, int rank, int t
MPIR_ERR_SETANDJUMP(mpi_errno,MPIX_ERR_REVOKED,"**revoked");
}
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
rreq = MPIDI_CH3U_Recvq_FDU_or_AEP(rank, tag,
comm->recvcontext_id + context_offset,
comm, buf, count, datatype, &found);
if (rreq == NULL) {
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIR_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**nomemreq");
}
@@ -64,7 +64,7 @@ int MPID_Recv(void * buf, MPI_Aint count, MPI_Datatype datatype, int rank, int t
/* Release the message queue - we've removed this request from
the queue already */
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
if (MPIDI_Request_get_msg_type(rreq) == MPIDI_REQUEST_EAGER_MSG)
{
int recv_pending;
@@ -180,7 +180,7 @@ int MPID_Recv(void * buf, MPI_Aint count, MPI_Datatype datatype, int rank, int t
/* We must wait until here to exit the msgqueue critical section
on this request (we needed to set the recv_pending_count
and the datatype pointer) */
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
}
fn_exit:
diff --git a/src/mpid/ch3/src/mpidi_isend_self.c b/src/mpid/ch3/src/mpidi_isend_self.c
index 1141629..72c9f89 100644
--- a/src/mpid/ch3/src/mpidi_isend_self.c
+++ b/src/mpid/ch3/src/mpidi_isend_self.c
@@ -39,7 +39,7 @@ int MPIDI_Isend_self(const void * buf, MPI_Aint count, MPI_Datatype datatype, in
match.parts.tag = tag;
match.parts.context_id = comm->context_id + context_offset;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
rreq = MPIDI_CH3U_Recvq_FDP_or_AEU(&match, &found);
/* --BEGIN ERROR HANDLING-- */
@@ -85,7 +85,7 @@ int MPIDI_Isend_self(const void * buf, MPI_Aint count, MPI_Datatype datatype, in
MPIDI_msg_sz_t data_sz;
/* we found a posted req, which we now own, so we can release the CS */
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
MPIU_DBG_MSG(CH3_OTHER,VERBOSE,
"found posted receive request; copying data");
@@ -147,7 +147,7 @@ int MPIDI_Isend_self(const void * buf, MPI_Aint count, MPI_Datatype datatype, in
MPIDI_Request_set_msg_type(rreq, MPIDI_REQUEST_SELF_MSG);
/* can release now that we've set fields in the unexpected request */
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MSGQ_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MSGQ_MUTEX);
/* kick the progress engine in case another thread that is performing a
blocking recv or probe is waiting in the progress engine */
diff --git a/src/mpid/ch3/src/mpidi_pg.c b/src/mpid/ch3/src/mpidi_pg.c
index b568242..72dbd98 100644
--- a/src/mpid/ch3/src/mpidi_pg.c
+++ b/src/mpid/ch3/src/mpidi_pg.c
@@ -706,13 +706,13 @@ static int getConnInfoKVS( int rank, char *buf, int bufsize, MPIDI_PG_t *pg )
MPIR_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**nomem");
}
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
pmi_errno = PMI_KVS_Get(pg->connData, key, buf, bufsize );
if (pmi_errno) {
MPIDI_PG_CheckForSingleton();
pmi_errno = PMI_KVS_Get(pg->connData, key, buf, bufsize );
}
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_PMI_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_PMI_MUTEX);
if (pmi_errno) {
MPIR_ERR_SETANDJUMP(mpi_errno,MPI_ERR_OTHER,"**pmi_kvs_get");
}
diff --git a/src/util/mem/handlemem.c b/src/util/mem/handlemem.c
index c2c7ccf..1eea3c2 100644
--- a/src/util/mem/handlemem.c
+++ b/src/util/mem/handlemem.c
@@ -322,7 +322,7 @@ Input Parameters:
MPI_Requests) and should not call any other routines in the common
case.
- Threading: The 'MPID_THREAD_CS_ENTER/EXIT(POBJ, MPIR_THREAD_HANDLE_MUTEX)' enables both
+ Threading: The 'MPID_THREAD_CS_ENTER/EXIT(POBJ, MPIR_THREAD_POBJ_HANDLE_MUTEX)' enables both
finer-grain
locking with a single global mutex and with a mutex specific for handles.
@@ -334,9 +334,9 @@ Input Parameters:
void *MPIU_Handle_obj_alloc(MPIU_Object_alloc_t *objmem)
{
void *ret;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_HANDLE_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_HANDLE_MUTEX);
ret = MPIU_Handle_obj_alloc_unsafe(objmem);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_HANDLE_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_HANDLE_MUTEX);
return ret;
}
@@ -459,7 +459,7 @@ void MPIU_Handle_obj_free( MPIU_Object_alloc_t *objmem, void *object )
{
MPIU_Handle_common *obj = (MPIU_Handle_common *)object;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_HANDLE_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_HANDLE_MUTEX);
MPIU_DBG_MSG_FMT(HANDLE,TYPICAL,(MPIU_DBG_FDEST,
"Freeing object ptr %p (0x%08x kind=%s) refcount=%d",
@@ -502,7 +502,7 @@ void MPIU_Handle_obj_free( MPIU_Object_alloc_t *objmem, void *object )
obj->next = objmem->avail;
objmem->avail = obj;
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_HANDLE_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_HANDLE_MUTEX);
}
/*
diff --git a/src/util/mem/trmem.c b/src/util/mem/trmem.c
index 2b8769c..14ec057 100644
--- a/src/util/mem/trmem.c
+++ b/src/util/mem/trmem.c
@@ -17,95 +17,95 @@ void MPIU_trinit(int rank)
void MPIU_trdump(FILE *fp, int minid)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
MPL_trdump(fp, minid);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
}
void *MPIU_trmalloc(size_t a, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
retval = MPL_trmalloc(a, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
return retval;
}
void MPIU_trfree(void *a_ptr, int line, const char fname[])
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
MPL_trfree(a_ptr, line, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
}
int MPIU_trvalid(const char str[])
{
int retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
retval = MPL_trvalid(str);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
return retval;
}
void MPIU_trspace(size_t *space, size_t *fr)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
MPL_trspace(space, fr);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
}
void MPIU_trid(int id)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
MPL_trid(id);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
}
void MPIU_trlevel(int level)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
MPL_trlevel(level);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
}
void MPIU_trDebugLevel(int level)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
MPL_trDebugLevel(level);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
}
void *MPIU_trcalloc(size_t nelem, size_t elsize, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
retval = MPL_trcalloc(nelem, elsize, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
return retval;
}
void *MPIU_trrealloc(void *p, size_t size, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
retval = MPL_trrealloc(p, size, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
return retval;
}
void *MPIU_trstrdup(const char *str, int lineno, const char fname[])
{
void *retval;
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
retval = MPL_trstrdup(str, lineno, fname);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
return retval;
}
void MPIU_TrSetMaxMem(size_t size)
{
- MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_ENTER(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
MPL_TrSetMaxMem(size);
- MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_MEMALLOC_MUTEX);
+ MPID_THREAD_CS_EXIT(POBJ, MPIR_THREAD_POBJ_MEMALLOC_MUTEX);
}
diff --git a/src/util/thread/mpiu_thread.h b/src/util/thread/mpiu_thread.h
index 296fb83..33e5b93 100644
--- a/src/util/thread/mpiu_thread.h
+++ b/src/util/thread/mpiu_thread.h
@@ -91,12 +91,12 @@ typedef struct {
extern MPIR_Thread_info_t MPIR_ThreadInfo;
#define MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX MPIR_ThreadInfo.global_mutex
-#define MPIR_THREAD_HANDLE_MUTEX MPIR_ThreadInfo.handle_mutex
-#define MPIR_THREAD_MSGQ_MUTEX MPIR_ThreadInfo.msgq_mutex
-#define MPIR_THREAD_COMPLETION_MUTEX MPIR_ThreadInfo.completion_mutex
-#define MPIR_THREAD_CTX_MUTEX MPIR_ThreadInfo.ctx_mutex
-#define MPIR_THREAD_PMI_MUTEX MPIR_ThreadInfo.pmi_mutex
-#define MPIR_THREAD_MEMALLOC_MUTEX MPIR_ThreadInfo.memalloc_mutex
+#define MPIR_THREAD_POBJ_HANDLE_MUTEX MPIR_ThreadInfo.handle_mutex
+#define MPIR_THREAD_POBJ_MSGQ_MUTEX MPIR_ThreadInfo.msgq_mutex
+#define MPIR_THREAD_POBJ_COMPLETION_MUTEX MPIR_ThreadInfo.completion_mutex
+#define MPIR_THREAD_POBJ_CTX_MUTEX MPIR_ThreadInfo.ctx_mutex
+#define MPIR_THREAD_POBJ_PMI_MUTEX MPIR_ThreadInfo.pmi_mutex
+#define MPIR_THREAD_POBJ_MEMALLOC_MUTEX MPIR_ThreadInfo.memalloc_mutex
#define MPIR_THREAD_POBJ_COMM_MUTEX(_comm_ptr) _comm_ptr->mutex
#define MPIR_THREAD_POBJ_WIN_MUTEX(_win_ptr) _win_ptr->mutex
-----------------------------------------------------------------------
Summary of changes:
src/mpi/comm/contextid.c | 22 +++++-----
src/mpi/init/initthread.c | 24 +++++-----
.../ch3/channels/nemesis/netmod/mxm/mxm_poll.c | 4 +-
src/mpid/ch3/channels/nemesis/src/mpid_nem_lmt.c | 4 +-
src/mpid/ch3/include/mpidimpl.h | 8 ++--
src/mpid/ch3/src/ch3u_comm_spawn_multiple.c | 16 +++---
src/mpid/ch3/src/ch3u_eager.c | 8 ++--
src/mpid/ch3/src/ch3u_recvq.c | 8 ++--
src/mpid/ch3/src/ch3u_rndv.c | 4 +-
src/mpid/ch3/src/mpid_cancel_send.c | 4 +-
src/mpid/ch3/src/mpid_comm_revoke.c | 4 +-
src/mpid/ch3/src/mpid_improbe.c | 16 +++---
src/mpid/ch3/src/mpid_iprobe.c | 16 +++---
src/mpid/ch3/src/mpid_irecv.c | 8 ++--
src/mpid/ch3/src/mpid_mprobe.c | 8 ++--
src/mpid/ch3/src/mpid_probe.c | 8 ++--
src/mpid/ch3/src/mpid_recv.c | 8 ++--
src/mpid/ch3/src/mpidi_isend_self.c | 6 +-
src/mpid/ch3/src/mpidi_pg.c | 4 +-
src/util/mem/handlemem.c | 10 ++--
src/util/mem/trmem.c | 48 ++++++++++----------
src/util/thread/mpiu_thread.h | 14 +++---
src/util/thread/mpiu_thread_global.h | 7 +++-
src/util/thread/mpiu_thread_pobj.h | 7 +++-
24 files changed, 139 insertions(+), 127 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-233-gb78f14c
by noreply@mpich.org 22 Sep '15
by noreply@mpich.org 22 Sep '15
22 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via b78f14c8e3b732817f5772dc88f6a5d1fe56498c (commit)
from 16e3319b40808591a8f48e2f09e4574c20e38254 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/b78f14c8e3b732817f5772dc88f6a5d1f…
commit b78f14c8e3b732817f5772dc88f6a5d1fe56498c
Author: Rob Latham <robl(a)mcs.anl.gov>
Date: Tue Sep 15 21:56:21 2015 -0500
implement and use MPL_strerror
The mpl printf routines tried to use strerror but we apparently forgot
to write a configure check for it. In the unlikely case where strerror
not available we provide a dead-simple version.
Signed-off-by: Pavan Balaji <balaji(a)anl.gov>
diff --git a/src/mpl/configure.ac b/src/mpl/configure.ac
index 8d348e6..c4e798c 100644
--- a/src/mpl/configure.ac
+++ b/src/mpl/configure.ac
@@ -194,6 +194,12 @@ if test "$ac_cv_func_putenv" = "yes" ; then
PAC_FUNC_NEEDS_DECL([#include <stdlib.h>],putenv)
fi
+# Check for strerror
+AC_CHECK_FUNCS(strerror)
+if test "$ac_cv_func_strerror" = "yes" ; then
+ PAC_FUNC_NEEDS_DECL([#include <string.h>],strerror)
+fi
+
dnl Check for ATTRIBUTE
PAC_C_GNU_ATTRIBUTE
diff --git a/src/mpl/include/mplstr.h b/src/mpl/include/mplstr.h
index 0699b15..26cecb6 100644
--- a/src/mpl/include/mplstr.h
+++ b/src/mpl/include/mplstr.h
@@ -48,6 +48,15 @@ extern int strncmp(const char *s1, const char *s2, size_t n);
#error "strncmp is required"
#endif /* MPL_HAVE_STRNCMP */
+#if defined MPL_NEEDS_STRERROR_DECL
+extern char *strerror(int errnum);
+#endif
+#if defined MPL_HAVE_STRERROR
+#define MPL_strerror strerror
+#else
+char *MPL_strerror(int errnum);
+#endif /* MPL_HAVE_STRERROR */
+
/* *INDENT-ON* */
#if defined(__cplusplus)
}
diff --git a/src/mpl/src/mplmsg.c b/src/mpl/src/mplmsg.c
index 8286569..94a38d9 100644
--- a/src/mpl/src/mplmsg.c
+++ b/src/mpl/src/mplmsg.c
@@ -51,17 +51,10 @@ int MPL_internal_sys_error_printf(const char *name, int errnum, const char *str,
const char *format_str = 0;
/* Prepend information on the system error */
-#ifdef HAVE_STRERROR
if (!format_str)
format_str = "Error in system call %s: %s\n";
- fprintf(stderr, format_str, name, strerror(errnum));
-#else
- if (!format_str)
- format_str = "Error in system call %s errno = %d\n";
-
- fprintf(stderr, "Error in %s: errno = %d\n", name, errnum);
-#endif
+ fprintf(stderr, format_str, name, MPL_strerror(errnum));
/* Now add the message that is specific to this use, if any */
if (str) {
diff --git a/src/mpl/src/mplstr.c b/src/mpl/src/mplstr.c
index 1f1f8f6..941493b 100644
--- a/src/mpl/src/mplstr.c
+++ b/src/mpl/src/mplstr.c
@@ -298,3 +298,17 @@ char *MPL_strsep(char **stringp, const char *delim)
}
}
+
+/* there's no standard portable way to convert error codes to human readable
+ * strings. The standard way to do that is via strerror() but if for some
+ * resason we don't have it, then we'll merely output the error code seen */
+#if !defined MPL_HAVE_STRERROR
+char *MPL_strerror(int errnum)
+{
+#define STRERROR_SIZE 256
+ static char msgbuf[STRERROR_SIZE];
+ snprintf(msgbuf, STRERROR_SIZE, "errno = %d", errnum);
+#undef STRERROR_SIZE
+ return msgbuf;
+}
+#endif /* MPL_HAVE_STRERROR */
-----------------------------------------------------------------------
Summary of changes:
src/mpl/configure.ac | 6 ++++++
src/mpl/include/mplstr.h | 9 +++++++++
src/mpl/src/mplmsg.c | 9 +--------
src/mpl/src/mplstr.c | 14 ++++++++++++++
4 files changed, 30 insertions(+), 8 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-232-g16e3319
by noreply@mpich.org 21 Sep '15
by noreply@mpich.org 21 Sep '15
21 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 16e3319b40808591a8f48e2f09e4574c20e38254 (commit)
via 6cae5cab8a6d3f99b1b2f0ba317fa9ed48b604bc (commit)
via a4b4bc990587665f11f2a9f7afaaa219c7e3ab7f (commit)
via ca076d13ad58f586c55b5eaf7c17f1d8517f28ba (commit)
via 861c6db4af70feaf110c563b028407d7d95f0f71 (commit)
from 7b8bd055dfdeb7a0d9c264e088376ff8fa9341b1 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/16e3319b40808591a8f48e2f09e4574c2…
commit 16e3319b40808591a8f48e2f09e4574c20e38254
Author: Sangmin Seo <sseo(a)anl.gov>
Date: Mon Sep 21 17:44:30 2015 -0500
romio: add matching MPIR_Ext_cs_exit calls.
Some ROMIO functions returned without calling MPIR_Ext_cs_exit.
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/src/mpi/romio/adio/common/cb_config_list.c b/src/mpi/romio/adio/common/cb_config_list.c
index 60cb6c1..508722a 100644
--- a/src/mpi/romio/adio/common/cb_config_list.c
+++ b/src/mpi/romio/adio/common/cb_config_list.c
@@ -145,6 +145,7 @@ int ADIOI_cb_gather_name_array(MPI_Comm comm,
if (found) {
ADIOI_Assert(array != NULL);
*arrayp = array;
+ MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
return 0;
}
}
diff --git a/src/mpi/romio/adio/common/flatten.c b/src/mpi/romio/adio/common/flatten.c
index 1fb7f54..743f09f 100644
--- a/src/mpi/romio/adio/common/flatten.c
+++ b/src/mpi/romio/adio/common/flatten.c
@@ -34,7 +34,7 @@ void ADIOI_Flatten_datatype(MPI_Datatype datatype)
#ifdef FLATTEN_DEBUG
DBG_FPRINTF(stderr,"ADIOI_Flatten_datatype:: is_contig %#X\n",is_contig);
#endif
- if (is_contig) return;
+ if (is_contig) goto fn_exit;
/* has it already been flattened? */
flat = ADIOI_Flatlist;
@@ -43,7 +43,7 @@ void ADIOI_Flatten_datatype(MPI_Datatype datatype)
#ifdef FLATTEN_DEBUG
DBG_FPRINTF(stderr,"ADIOI_Flatten_datatype:: found datatype %#X\n", datatype);
#endif
- return;
+ goto fn_exit;
}
else {
prev = flat;
@@ -100,6 +100,8 @@ void ADIOI_Flatten_datatype(MPI_Datatype datatype)
);
}
#endif
+
+ fn_exit:
MPIR_Ext_cs_exit(ADIO_THREAD_MUTEX);
}
http://git.mpich.org/mpich.git/commitdiff/6cae5cab8a6d3f99b1b2f0ba317fa9ed4…
commit 6cae5cab8a6d3f99b1b2f0ba317fa9ed48b604bc
Author: Sangmin Seo <sseo(a)anl.gov>
Date: Mon Sep 21 11:38:21 2015 -0500
romio: add MPIR_Ext_cs_yield_global.
If the progress engine is blocked in wait callbacks of the extended
generalized request, we have to yield for another thread to be able to
unblock the progress engine. We added MPIR_Ext_cs_yield_global to
resolve the issue.
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/src/glue/romio/glue_romio.c b/src/glue/romio/glue_romio.c
index f78afc3..5de161f 100644
--- a/src/glue/romio/glue_romio.c
+++ b/src/glue/romio/glue_romio.c
@@ -72,13 +72,18 @@ void MPIR_Ext_cs_exit(void *mutex_p)
MPID_THREAD_CS_EXIT(GLOBAL, *((MPID_Thread_mutex_t *) mutex_p));
}
+void MPIR_Ext_cs_yield(void *mutex_p)
+{
+ MPID_THREAD_CS_YIELD(GLOBAL, *((MPID_Thread_mutex_t *) mutex_p));
+}
+
/* This routine is for a thread to yield control when the thread is waiting for
* the completion of communication inside a ROMIO routine but the progress
* engine is blocked by another thread. */
-void MPIR_Ext_cs_yield(void *mutex_p)
+void MPIR_Ext_cs_yield_global(void)
{
/* TODO: check whether the progress engine is blocked */
- MPID_THREAD_CS_YIELD(GLOBAL, *((MPID_Thread_mutex_t *) mutex_p));
+ MPID_THREAD_CS_YIELD(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
}
/* will consider MPI_DATATYPE_NULL to be an error */
diff --git a/src/include/glue_romio.h.in b/src/include/glue_romio.h.in
index 72ce3ac..d2b97a9 100644
--- a/src/include/glue_romio.h.in
+++ b/src/include/glue_romio.h.in
@@ -56,6 +56,7 @@ void MPIR_Ext_thread_mutex_destroy(void *mutex_p);
void MPIR_Ext_cs_enter(void *mutex_p);
void MPIR_Ext_cs_exit(void *mutex_p);
void MPIR_Ext_cs_yield(void *mutex_p);
+void MPIR_Ext_cs_yield_global(void);
/* to facilitate error checking */
int MPIR_Ext_datatype_iscommitted(MPI_Datatype datatype);
diff --git a/src/mpi/romio/adio/common/ad_iread_coll.c b/src/mpi/romio/adio/common/ad_iread_coll.c
index 1cd8ed9..6cf85e9 100644
--- a/src/mpi/romio/adio/common/ad_iread_coll.c
+++ b/src/mpi/romio/adio/common/ad_iread_coll.c
@@ -1329,6 +1329,10 @@ static int ADIOI_GEN_irc_wait_fn(int count, void **array_of_states,
if ((timeout > 0) && (timeout < (MPI_Wtime() - starttime)))
goto fn_exit;
+
+ /* If the progress engine is blocked, we have to yield for another
+ * thread to be able to unblock the progress engine. */
+ MPIR_EXT_CS_YIELD_GLOBAL();
}
}
diff --git a/src/mpi/romio/adio/common/ad_iwrite_coll.c b/src/mpi/romio/adio/common/ad_iwrite_coll.c
index c5ac8b4..3cb86ad 100644
--- a/src/mpi/romio/adio/common/ad_iwrite_coll.c
+++ b/src/mpi/romio/adio/common/ad_iwrite_coll.c
@@ -1554,6 +1554,10 @@ static int ADIOI_GEN_iwc_wait_fn(int count, void **array_of_states,
if ((timeout > 0) && (timeout < (MPI_Wtime() - starttime)))
goto fn_exit;
+
+ /* If the progress engine is blocked, we have to yield for another
+ * thread to be able to unblock the progress engine. */
+ MPIR_EXT_CS_YIELD_GLOBAL();
}
}
diff --git a/src/mpi/romio/mpi-io/mpioimpl.h b/src/mpi/romio/mpi-io/mpioimpl.h
index c96ec64..452c2cb 100644
--- a/src/mpi/romio/mpi-io/mpioimpl.h
+++ b/src/mpi/romio/mpi-io/mpioimpl.h
@@ -21,6 +21,7 @@
#define ROMIO_THREAD_CS_ENTER(mutex) MPIR_Ext_cs_enter(mutex)
#define ROMIO_THREAD_CS_EXIT(mutex) MPIR_Ext_cs_exit(mutex)
#define ROMIO_THREAD_CS_YIELD(mutex) MPIR_Ext_cs_yield(mutex)
+#define MPIR_EXT_CS_YIELD_GLOBAL() MPIR_Ext_cs_yield_global()
/* committed datatype checking support in ROMIO */
#define MPIO_DATATYPE_ISCOMMITTED(dtype_, err_) \
@@ -36,6 +37,7 @@
#define ROMIO_THREAD_CS_ENTER(mutex)
#define ROMIO_THREAD_CS_EXIT(mutex)
#define ROMIO_THREAD_CS_YIELD(mutex)
+#define MPIR_EXT_CS_YIELD_GLOBAL()
#define MPIO_DATATYPE_ISCOMMITTED(dtype_, err_) do {} while (0)
#ifdef HAVE_WINDOWS_H
#define MPIU_UNREFERENCED_ARG(a) a
http://git.mpich.org/mpich.git/commitdiff/a4b4bc990587665f11f2a9f7afaaa219c…
commit a4b4bc990587665f11f2a9f7afaaa219c7e3ab7f
Author: Pavan Balaji <balaji(a)anl.gov>
Date: Mon Sep 21 16:06:17 2015 -0500
Remove unused declarations.
Signed-off-by: Sangmin Seo <sseo(a)anl.gov>
diff --git a/src/mpi/comm/intercomm_merge.c b/src/mpi/comm/intercomm_merge.c
index 3fe11c2..fcdd0f1 100644
--- a/src/mpi/comm/intercomm_merge.c
+++ b/src/mpi/comm/intercomm_merge.c
@@ -255,7 +255,6 @@ int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm)
int mpi_errno = MPI_SUCCESS;
MPID_Comm *comm_ptr = NULL;
MPID_Comm *new_intracomm_ptr;
- MPID_THREADPRIV_DECL;
MPID_MPI_STATE_DECL(MPID_STATE_MPI_INTERCOMM_MERGE);
MPIR_ERRTEST_INITIALIZED_ORDIE();
@@ -263,8 +262,6 @@ int MPI_Intercomm_merge(MPI_Comm intercomm, int high, MPI_Comm *newintracomm)
MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
MPID_MPI_FUNC_ENTER(MPID_STATE_MPI_INTERCOMM_MERGE);
- MPID_THREADPRIV_GET;
-
/* Validate parameters, especially handles needing to be converted */
# ifdef HAVE_ERROR_CHECKING
{
diff --git a/src/mpi/datatype/type_match_size.c b/src/mpi/datatype/type_match_size.c
index 7e7e735..b8bbbe8 100644
--- a/src/mpi/datatype/type_match_size.c
+++ b/src/mpi/datatype/type_match_size.c
@@ -83,7 +83,6 @@ int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *datatype)
MPI_Datatype matched_datatype = MPI_DATATYPE_NULL;
int i;
MPI_Aint tsize;
- MPID_THREADPRIV_DECL;
MPID_MPI_STATE_DECL(MPID_STATE_MPI_TYPE_MATCH_SIZE);
MPIR_ERRTEST_INITIALIZED_ORDIE();
@@ -92,8 +91,6 @@ int MPI_Type_match_size(int typeclass, int size, MPI_Datatype *datatype)
MPID_THREAD_CS_ENTER(GLOBAL, MPIR_THREAD_GLOBAL_ALLFUNC_MUTEX);
MPID_MPI_FUNC_ENTER(MPID_STATE_MPI_TYPE_MATCH_SIZE);
- MPID_THREADPRIV_GET;
-
/* Validate parameters and objects (post conversion) */
# ifdef HAVE_ERROR_CHECKING
{
http://git.mpich.org/mpich.git/commitdiff/ca076d13ad58f586c55b5eaf7c17f1d85…
commit ca076d13ad58f586c55b5eaf7c17f1d8517f28ba
Author: Pavan Balaji <balaji(a)anl.gov>
Date: Mon Sep 21 15:53:10 2015 -0500
Added back the implementation of recursive locks.
Since ROMIO is somewhat decoupled from MPICH, we still have to jump
through some hoops to get locks working correctly. This patch
essentially reverts the removal of the recursive locks in
[fa11ecd3c995].
Signed-off-by: Sangmin Seo <sseo(a)anl.gov>
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/src/util/thread/mpiu_thread.h b/src/util/thread/mpiu_thread.h
index 2a14446..296fb83 100644
--- a/src/util/thread/mpiu_thread.h
+++ b/src/util/thread/mpiu_thread.h
@@ -119,6 +119,10 @@ typedef struct {
/* error string storage for MPIU_Strerror */
char strerrbuf[MPIU_STRERROR_BUF_SIZE];
+
+#if (MPICH_THREAD_LEVEL == MPI_THREAD_MULTIPLE)
+ int lock_depth;
+#endif
} MPIUI_Per_thread_t;
#if defined (MPICH_IS_THREADED)
diff --git a/src/util/thread/mpiu_thread_global.h b/src/util/thread/mpiu_thread_global.h
index 0832c9c..959b34e 100644
--- a/src/util/thread/mpiu_thread_global.h
+++ b/src/util/thread/mpiu_thread_global.h
@@ -8,9 +8,9 @@
#define MPIU_THREAD_GLOBAL_H_INCLUDED
/* GLOBAL locks are all real ops */
-#define MPIUI_THREAD_CS_ENTER_GLOBAL(mutex) MPIUI_THREAD_CS_ENTER_NONRECURSIVE("GLOBAL", mutex)
-#define MPIUI_THREAD_CS_EXIT_GLOBAL(mutex) MPIUI_THREAD_CS_EXIT_NONRECURSIVE("GLOBAL", mutex)
-#define MPIUI_THREAD_CS_YIELD_GLOBAL(mutex) MPIUI_THREAD_CS_YIELD_NONRECURSIVE("GLOBAL", mutex)
+#define MPIUI_THREAD_CS_ENTER_GLOBAL(mutex) MPIUI_THREAD_CS_ENTER_RECURSIVE("GLOBAL", mutex)
+#define MPIUI_THREAD_CS_EXIT_GLOBAL(mutex) MPIUI_THREAD_CS_EXIT_RECURSIVE("GLOBAL", mutex)
+#define MPIUI_THREAD_CS_YIELD_GLOBAL(mutex) MPIUI_THREAD_CS_YIELD_RECURSIVE("GLOBAL", mutex)
/* POBJ locks are all NO-OPs */
#define MPIUI_THREAD_CS_ENTER_POBJ(mutex)
diff --git a/src/util/thread/mpiu_thread_multiple.h b/src/util/thread/mpiu_thread_multiple.h
index 895f5c0..5ac8e65 100644
--- a/src/util/thread/mpiu_thread_multiple.h
+++ b/src/util/thread/mpiu_thread_multiple.h
@@ -12,6 +12,7 @@
#define MPIU_THREAD_CHECK_BEGIN if (MPIR_ThreadInfo.isThreaded) {
#define MPIU_THREAD_CHECK_END }
+/* Nonrecursive mutex macros */
#define MPIUI_THREAD_CS_ENTER_NONRECURSIVE(lockname, mutex) \
do { \
int err_; \
@@ -38,6 +39,44 @@
MPIU_THREAD_CHECK_END; \
} while (0)
+
+/* Recursive mutex macros */
+/* We don't need to protect the depth variable since it is thread
+ * private and sequentially accessed within a thread */
+#define MPIUI_THREAD_CS_ENTER_RECURSIVE(lockname, mutex) \
+ do { \
+ int depth_; \
+ MPIU_THREADPRIV_DECL; \
+ MPIU_THREADPRIV_GET; \
+ \
+ MPIU_THREAD_CHECK_BEGIN; \
+ depth_ = MPIU_THREADPRIV_FIELD(lock_depth); \
+ MPIU_DBG_MSG_S(THREAD, TYPICAL, "recursive locking %s", lockname); \
+ if (depth_ == 0) { \
+ MPIUI_THREAD_CS_ENTER_NONRECURSIVE(lockname, mutex); \
+ } \
+ MPIU_THREADPRIV_FIELD(lock_depth) += 1; \
+ MPIU_THREAD_CHECK_END; \
+ } while (0)
+
+#define MPIUI_THREAD_CS_EXIT_RECURSIVE(lockname, mutex) \
+ do { \
+ int depth_; \
+ MPIU_THREADPRIV_DECL; \
+ MPIU_THREADPRIV_GET; \
+ \
+ MPIU_THREAD_CHECK_BEGIN; \
+ depth_ = MPIU_THREADPRIV_FIELD(lock_depth); \
+ MPIU_DBG_MSG_S(THREAD, TYPICAL, "recursive unlocking %s", lockname); \
+ if (depth_ == 1) { \
+ MPIUI_THREAD_CS_EXIT_NONRECURSIVE(lockname, mutex); \
+ } \
+ MPIU_THREADPRIV_FIELD(lock_depth) -= 1; \
+ MPIU_THREAD_CHECK_END; \
+ } while (0)
+
+#define MPIUI_THREAD_CS_YIELD_RECURSIVE MPIUI_THREAD_CS_YIELD_NONRECURSIVE
+
#define MPIU_THREAD_CS_ENTER(name, mutex) MPIUI_THREAD_CS_ENTER_##name(mutex)
#define MPIU_THREAD_CS_EXIT(name, mutex) MPIUI_THREAD_CS_EXIT_##name(mutex)
#define MPIU_THREAD_CS_YIELD(name, mutex) MPIUI_THREAD_CS_YIELD_##name(mutex)
http://git.mpich.org/mpich.git/commitdiff/861c6db4af70feaf110c563b028407d7d…
commit 861c6db4af70feaf110c563b028407d7d95f0f71
Author: Pavan Balaji <balaji(a)anl.gov>
Date: Mon Sep 21 15:20:04 2015 -0500
Rename MPIUI_THREAD_CS_*_REAL to MPIUI_THREAD_CS_*_NONRECURSIVE.
We only have nonrecursive mutex functions right now. The plan is to
add back the recursive functions.
Signed-off-by: Sangmin Seo <sseo(a)anl.gov>
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/src/util/thread/mpiu_thread_global.h b/src/util/thread/mpiu_thread_global.h
index 0b72c29..0832c9c 100644
--- a/src/util/thread/mpiu_thread_global.h
+++ b/src/util/thread/mpiu_thread_global.h
@@ -8,9 +8,9 @@
#define MPIU_THREAD_GLOBAL_H_INCLUDED
/* GLOBAL locks are all real ops */
-#define MPIUI_THREAD_CS_ENTER_GLOBAL(mutex) MPIUI_THREAD_CS_ENTER_REAL("GLOBAL", mutex)
-#define MPIUI_THREAD_CS_EXIT_GLOBAL(mutex) MPIUI_THREAD_CS_EXIT_REAL("GLOBAL", mutex)
-#define MPIUI_THREAD_CS_YIELD_GLOBAL(mutex) MPIUI_THREAD_CS_YIELD_REAL("GLOBAL", mutex)
+#define MPIUI_THREAD_CS_ENTER_GLOBAL(mutex) MPIUI_THREAD_CS_ENTER_NONRECURSIVE("GLOBAL", mutex)
+#define MPIUI_THREAD_CS_EXIT_GLOBAL(mutex) MPIUI_THREAD_CS_EXIT_NONRECURSIVE("GLOBAL", mutex)
+#define MPIUI_THREAD_CS_YIELD_GLOBAL(mutex) MPIUI_THREAD_CS_YIELD_NONRECURSIVE("GLOBAL", mutex)
/* POBJ locks are all NO-OPs */
#define MPIUI_THREAD_CS_ENTER_POBJ(mutex)
diff --git a/src/util/thread/mpiu_thread_multiple.h b/src/util/thread/mpiu_thread_multiple.h
index 082c920..895f5c0 100644
--- a/src/util/thread/mpiu_thread_multiple.h
+++ b/src/util/thread/mpiu_thread_multiple.h
@@ -12,7 +12,7 @@
#define MPIU_THREAD_CHECK_BEGIN if (MPIR_ThreadInfo.isThreaded) {
#define MPIU_THREAD_CHECK_END }
-#define MPIUI_THREAD_CS_ENTER_REAL(lockname, mutex) \
+#define MPIUI_THREAD_CS_ENTER_NONRECURSIVE(lockname, mutex) \
do { \
int err_; \
MPIU_THREAD_CHECK_BEGIN; \
@@ -21,7 +21,7 @@
MPIU_THREAD_CHECK_END; \
} while (0)
-#define MPIUI_THREAD_CS_EXIT_REAL(lockname, mutex) \
+#define MPIUI_THREAD_CS_EXIT_NONRECURSIVE(lockname, mutex) \
do { \
int err_; \
MPIU_THREAD_CHECK_BEGIN; \
@@ -30,7 +30,7 @@
MPIU_THREAD_CHECK_END; \
} while (0)
-#define MPIUI_THREAD_CS_YIELD_REAL(lockname, mutex) \
+#define MPIUI_THREAD_CS_YIELD_NONRECURSIVE(lockname, mutex) \
do { \
MPIU_THREAD_CHECK_BEGIN; \
MPIU_DBG_MSG_S(THREAD, TYPICAL, "yielding %s", lockname); \
diff --git a/src/util/thread/mpiu_thread_pobj.h b/src/util/thread/mpiu_thread_pobj.h
index 8990cdd..2713e4c 100644
--- a/src/util/thread/mpiu_thread_pobj.h
+++ b/src/util/thread/mpiu_thread_pobj.h
@@ -75,9 +75,9 @@
* reverse order. */
/* POBJ locks are all real ops */
-#define MPIUI_THREAD_CS_ENTER_POBJ(mutex) MPIUI_THREAD_CS_ENTER_REAL("POBJ", mutex)
-#define MPIUI_THREAD_CS_EXIT_POBJ(mutex) MPIUI_THREAD_CS_EXIT_REAL("POBJ", mutex)
-#define MPIUI_THREAD_CS_YIELD_POBJ(mutex) MPIUI_THREAD_CS_YIELD_REAL("POBJ", mutex)
+#define MPIUI_THREAD_CS_ENTER_POBJ(mutex) MPIUI_THREAD_CS_ENTER_NONRECURSIVE("POBJ", mutex)
+#define MPIUI_THREAD_CS_EXIT_POBJ(mutex) MPIUI_THREAD_CS_EXIT_NONRECURSIVE("POBJ", mutex)
+#define MPIUI_THREAD_CS_YIELD_POBJ(mutex) MPIUI_THREAD_CS_YIELD_NONRECURSIVE("POBJ", mutex)
/* GLOBAL locks are all NO-OPs */
#define MPIUI_THREAD_CS_ENTER_GLOBAL(mutex)
-----------------------------------------------------------------------
Summary of changes:
src/glue/romio/glue_romio.c | 9 ++++-
src/include/glue_romio.h.in | 1 +
src/mpi/comm/intercomm_merge.c | 3 --
src/mpi/datatype/type_match_size.c | 3 --
src/mpi/romio/adio/common/ad_iread_coll.c | 4 ++
src/mpi/romio/adio/common/ad_iwrite_coll.c | 4 ++
src/mpi/romio/adio/common/cb_config_list.c | 1 +
src/mpi/romio/adio/common/flatten.c | 6 ++-
src/mpi/romio/mpi-io/mpioimpl.h | 2 +
src/util/thread/mpiu_thread.h | 4 ++
src/util/thread/mpiu_thread_global.h | 6 ++--
src/util/thread/mpiu_thread_multiple.h | 45 ++++++++++++++++++++++++++--
src/util/thread/mpiu_thread_pobj.h | 6 ++--
13 files changed, 75 insertions(+), 19 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-227-g7b8bd05
by noreply@mpich.org 21 Sep '15
by noreply@mpich.org 21 Sep '15
21 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 7b8bd055dfdeb7a0d9c264e088376ff8fa9341b1 (commit)
from 4f2066fcba02d54eb2d21820eebb9bc254485e5a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/7b8bd055dfdeb7a0d9c264e088376ff8f…
commit 7b8bd055dfdeb7a0d9c264e088376ff8fa9341b1
Author: William Throwe <wtt6(a)cornell.edu>
Date: Mon Sep 14 19:09:51 2015 -0400
ROMIO configure looks for lstat in wrong header
The ROMIO configure script checks for a declaration of lstat in
unistd.h, but, at least on the Linux machines I checked, lstat is in
sys/stat.h. (The detection failure led to a linker error when building
ROMIO as part of OpenMPI on one of my admittedly strangely configured
machines, somehow.) It appears from the man page that either location
is possible, so check both.
Signed-off-by: Rob Latham <robl(a)mcs.anl.gov>
diff --git a/src/mpi/romio/configure.ac b/src/mpi/romio/configure.ac
index 6e10c08..bb9c25a 100644
--- a/src/mpi/romio/configure.ac
+++ b/src/mpi/romio/configure.ac
@@ -1562,7 +1562,8 @@ fi
AC_CHECK_FUNCS(lstat)
if test "$ac_cv_func_lstat" = "yes" ; then
# Do we need to declare lstat?
- PAC_FUNC_NEEDS_DECL([#include <unistd.h>],lstat)
+ PAC_FUNC_NEEDS_DECL([#include <unistd.h>
+ #include <sys/stat.h>],lstat)
fi
AC_CHECK_FUNCS(readlink)
if test "$ac_cv_func_readlink" = "yes" ; then
-----------------------------------------------------------------------
Summary of changes:
src/mpi/romio/configure.ac | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-226-g4f2066f
by noreply@mpich.org 18 Sep '15
by noreply@mpich.org 18 Sep '15
18 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 4f2066fcba02d54eb2d21820eebb9bc254485e5a (commit)
from caf1e9d1409e61468f8d3506676674ff458c8c9b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/4f2066fcba02d54eb2d21820eebb9bc25…
commit 4f2066fcba02d54eb2d21820eebb9bc254485e5a
Author: Yanfei Guo <yguo(a)anl.gov>
Date: Fri Sep 18 12:34:36 2015 -0500
maint/jenkins: fix dir creation bug in test-worker.sh
Due to incorrect variable expansion, the creation of fake build
directories in the workspace is not done correctly, which results in
failures of test jobs.
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/maint/jenkins/test-worker.sh b/maint/jenkins/test-worker.sh
index d8c3986..2a0e115 100755
--- a/maint/jenkins/test-worker.sh
+++ b/maint/jenkins/test-worker.sh
@@ -111,7 +111,9 @@ CollectResults() {
-o -name "m.txt" \
-o -name "mi.txt" \
-o -name "summary.junit.xml" \) \
- -exec sh -c "mkdir -p $SRC/$(dirname {})" \;
+ | while read -r line; do
+ mkdir -p "$SRC/$(dirname $line)"
+ done
fi
find . \
-----------------------------------------------------------------------
Summary of changes:
maint/jenkins/test-worker.sh | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
++ Note: This message has been sent by a notification only system. Please do not reply ++
IronPort Spam Quarantine Notification
If a spam message was missed, or if a message was incorrectly flagged as spam, you can add the sender to a personal safelist or blocklist via the quarantine. Senders on the safelist will not be flagged as spam, and senders on the blocklist will be automatically quarantined. For more information, visit:
https://wiki.inside.anl.gov/inside/Ironport_Anti-Spam_Appliances/Documentat…
The message(s) below have been quarantined by the Argonne National Laboratory spam filtering system.
There are 1 new messages in your Email Quarantine since you received your last Spam Quarantine Notification. If the messages below are spam, you do not need to take any action. Messages will be automatically deleted from the quarantine after 28 day(s).
If any of the messages below are not spam, click the 'Release' link to have them sent to your Inbox.
Messages that have been correctly flagged as spam do not need to be reported.
----------- New Quarantine Messages ---------------
Message 1
From: "emily" <ghyrs(a)mcdy78oz6df8.manufacturing4services.com>
Subject: *****SPAM*****MPICH | High-Performance Portable MPI commits(a)mpich.org
Date: 17 Sep 2015
Release: http://mailgateway.anl.gov:8080/Message?action=Release&mid=94153666&h=ce7eb…
---------------------------------------------------
To manage your quarantine please visit the URL below:
http://mailgateway.anl.gov:8080/Search?h=fc87c670d8c3e2454112880d759ad6c4&e…
If you have any questions regarding the Laboratory spam filtering product, please contact the CIS helpdesk at help(a)anl.gov or x-9999 option 2.
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-225-gcaf1e9d
by noreply@mpich.org 17 Sep '15
by noreply@mpich.org 17 Sep '15
17 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via caf1e9d1409e61468f8d3506676674ff458c8c9b (commit)
from d7f5e47881ab46486f6197b6f344ac08bb9c6b42 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/caf1e9d1409e61468f8d3506676674ff4…
commit caf1e9d1409e61468f8d3506676674ff458c8c9b
Author: Yanfei Guo <yguo(a)anl.gov>
Date: Thu Sep 17 21:56:34 2015 -0500
testsuite: comment out new keyval double free tests
These tests may not be correctly implemented. They are undergoing
an investigation.
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/test/mpi/attr/testlist b/test/mpi/attr/testlist
index 07868d1..9f2d8a1 100644
--- a/test/mpi/attr/testlist
+++ b/test/mpi/attr/testlist
@@ -18,6 +18,6 @@ fkeyval 1
fkeyvalcomm 1
fkeyvaltype 1
keyval_double_free 1
-keyval_double_free_comm 1
-keyval_double_free_type 1
-keyval_double_free_win 1
+#keyval_double_free_comm
+#keyval_double_free_type
+#keyval_double_free_win
-----------------------------------------------------------------------
Summary of changes:
test/mpi/attr/testlist | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-224-gd7f5e47
by noreply@mpich.org 17 Sep '15
by noreply@mpich.org 17 Sep '15
17 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via d7f5e47881ab46486f6197b6f344ac08bb9c6b42 (commit)
from 496ca6471d629048c18d847b238b6964c107a759 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/d7f5e47881ab46486f6197b6f344ac08b…
commit d7f5e47881ab46486f6197b6f344ac08bb9c6b42
Author: Yanfei Guo <yguo(a)anl.gov>
Date: Wed Sep 16 14:01:40 2015 -0500
maint/jenkins: untar MPICH tarball on local disk
The untar process of MPICH tarball is performed on local disk instead of
NFS home directory. It reduces the stress on NFS when nightly jobs
starts and improves the performance.
After the test is finished, the script will create a fake directory
structure for the file generated during the test.
Signed-off-by: Ken Raffenetti <raffenet(a)mcs.anl.gov>
diff --git a/maint/jenkins/test-worker.sh b/maint/jenkins/test-worker.sh
index 68a5cd2..d8c3986 100755
--- a/maint/jenkins/test-worker.sh
+++ b/maint/jenkins/test-worker.sh
@@ -78,10 +78,12 @@ TMP_SRC=$TMP_WORKSPACE
# Preparing the source
case "$BUILD_MODE" in
"nightly")
- tar zxvf mpich-master.tar.gz
SRC=$WORKSPACE/mpich-master
TMP_SRC=$TMP_WORKSPACE/mpich-master
- cp -a $WORKSPACE/mpich-master $TMP_WORKSPACE/
+ cp $WORKSPACE/mpich-master.tar.gz $TMP_WORKSPACE/
+ pushd "$TMP_WORKSPACE"
+ tar zxvf mpich-master.tar.gz
+ popd
;;
"per-commit")
git clean -x -d -f
@@ -99,6 +101,19 @@ esac
CollectResults() {
# TODO: copy saved test binaries (for failed cases)
+ if [[ "$BUILD_MODE" != "per-commit" ]]; then
+ find . \
+ \( -name "filtered-make.txt" \
+ -o -name "apply-xfail.sh" \
+ -o -name "autogen.log" \
+ -o -name "config.log" \
+ -o -name "c.txt" \
+ -o -name "m.txt" \
+ -o -name "mi.txt" \
+ -o -name "summary.junit.xml" \) \
+ -exec sh -c "mkdir -p $SRC/$(dirname {})" \;
+ fi
+
find . \
\( -name "filtered-make.txt" -o \
-name "apply-xfail.sh" -o \
-----------------------------------------------------------------------
Summary of changes:
maint/jenkins/test-worker.sh | 19 +++++++++++++++++--
1 files changed, 17 insertions(+), 2 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0
[mpich] MPICH primary repository branch, master, updated. v3.2b4-223-g496ca64
by noreply@mpich.org 17 Sep '15
by noreply@mpich.org 17 Sep '15
17 Sep '15
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "MPICH primary repository".
The branch, master has been updated
via 496ca6471d629048c18d847b238b6964c107a759 (commit)
from bf2369811689b096c7f82046d68c5ecd5d80e6dc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://git.mpich.org/mpich.git/commitdiff/496ca6471d629048c18d847b238b6964c…
commit 496ca6471d629048c18d847b238b6964c107a759
Author: Pavan Balaji <balaji(a)anl.gov>
Date: Wed Sep 16 09:31:22 2015 -0500
Remove unused thread-private declarations.
Signed-off-by: Halim Amer <aamer(a)anl.gov>
diff --git a/src/nameserv/pmi/pmi_nameserv.c b/src/nameserv/pmi/pmi_nameserv.c
index 53ef856..9805ba2 100644
--- a/src/nameserv/pmi/pmi_nameserv.c
+++ b/src/nameserv/pmi/pmi_nameserv.c
@@ -45,7 +45,6 @@ int MPID_NS_Publish( MPID_NS_Handle handle, const MPID_Info *info_ptr,
{
int mpi_errno = MPI_SUCCESS;
int rc;
- MPID_THREADPRIV_DECL;
MPIU_UNREFERENCED_ARG(info_ptr);
MPIU_UNREFERENCED_ARG(handle);
@@ -72,7 +71,6 @@ int MPID_NS_Lookup( MPID_NS_Handle handle, const MPID_Info *info_ptr,
{
int mpi_errno = MPI_SUCCESS;
int rc;
- MPID_THREADPRIV_DECL;
MPIU_UNREFERENCED_ARG(info_ptr);
MPIU_UNREFERENCED_ARG(handle);
@@ -99,7 +97,6 @@ int MPID_NS_Unpublish( MPID_NS_Handle handle, const MPID_Info *info_ptr,
{
int mpi_errno = MPI_SUCCESS;
int rc;
- MPID_THREADPRIV_DECL;
MPIU_UNREFERENCED_ARG(info_ptr);
MPIU_UNREFERENCED_ARG(handle);
-----------------------------------------------------------------------
Summary of changes:
src/nameserv/pmi/pmi_nameserv.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
hooks/post-receive
--
MPICH primary repository
1
0