GitLab maintenance scheduled for Today, 2019-12-05, from 17:00 to 18:00 CT - Services will be unavailable during this time.

Commit def2fe28 authored by Shane Snyder's avatar Shane Snyder

bug fixes in disabling instr. in modules

parent 81c31e82
......@@ -69,11 +69,12 @@ static int my_rank = -1;
#define HDF5_PRE_RECORD() do { \
HDF5_LOCK(); \
if(!hdf5_runtime && !instrumentation_disabled) hdf5_runtime_initialize(); \
if(!hdf5_runtime) { \
HDF5_UNLOCK(); \
return(ret); \
if(!instrumentation_disabled) { \
if(!hdf5_runtime) hdf5_runtime_initialize(); \
if(hdf5_runtime) break; \
} \
HDF5_UNLOCK(); \
return(ret); \
} while(0)
#define HDF5_POST_RECORD() do { \
......@@ -339,6 +340,7 @@ static void hdf5_cleanup_runtime()
free(hdf5_runtime);
hdf5_runtime = NULL;
instrumentation_disabled = 0;
return;
}
......@@ -365,6 +367,10 @@ static void hdf5_shutdown(
HDF5_LOCK();
assert(hdf5_runtime);
/* disable further instrumentation */
instrumentation_disabled = 1;
hdf5_rec_count = hdf5_runtime->file_rec_count;
/* if there are globally shared files, do a shared file reduction */
......@@ -440,9 +446,6 @@ static void hdf5_shutdown(
/* shutdown internal structures used for instrumenting */
hdf5_cleanup_runtime();
/* disable further instrumentation */
instrumentation_disabled = 1;
HDF5_UNLOCK();
return;
}
......
......@@ -61,10 +61,14 @@ void darshan_instrument_lustre_file(const char* filepath, int fd)
int ret;
LUSTRE_LOCK();
if(instrumentation_disabled)
{
LUSTRE_UNLOCK();
return;
}
/* try to init module if not already and if instrumentation isn't disabled */
if(!lustre_runtime && !instrumentation_disabled)
lustre_runtime_initialize();
/* try to init module if not already */
if(!lustre_runtime) lustre_runtime_initialize();
/* if we aren't initialized, just back out */
if(!lustre_runtime)
......@@ -226,6 +230,10 @@ static void lustre_shutdown(
LUSTRE_LOCK();
assert(lustre_runtime);
/* disable further instrumentation while we shutdown */
instrumentation_disabled = 1;
lustre_runtime->record_buffer = *lustre_buf;
lustre_runtime->record_buffer_size = *lustre_buf_sz;
......@@ -268,9 +276,7 @@ static void lustre_shutdown(
darshan_clear_record_refs(&(lustre_runtime->record_id_hash), 1);
free(lustre_runtime);
lustre_runtime = NULL;
/* disable further instrumentation */
instrumentation_disabled = 1;
instrumentation_disabled = 0;
LUSTRE_UNLOCK();
return;
......
......@@ -97,11 +97,12 @@ static int my_rank = -1;
#define MPIIO_PRE_RECORD() do { \
MPIIO_LOCK(); \
if(!mpiio_runtime && !instrumentation_disabled) mpiio_runtime_initialize(); \
if(!mpiio_runtime) { \
MPIIO_UNLOCK(); \
return(ret); \
if(!instrumentation_disabled) { \
if(!mpiio_runtime) mpiio_runtime_initialize(); \
if(mpiio_runtime) break; \
} \
MPIIO_UNLOCK(); \
return(ret); \
} while(0)
#define MPIIO_POST_RECORD() do { \
......@@ -1169,6 +1170,7 @@ static void mpiio_cleanup_runtime()
free(mpiio_runtime);
mpiio_runtime = NULL;
instrumentation_disabled = 0;
return;
}
......@@ -1276,6 +1278,10 @@ static void mpiio_shutdown(
MPIIO_LOCK();
assert(mpiio_runtime);
/* disable further instrumentation while we shutdown */
instrumentation_disabled = 1;
mpiio_rec_count = mpiio_runtime->file_rec_count;
/* perform any final transformations on MPIIO file records before
......@@ -1384,9 +1390,6 @@ static void mpiio_shutdown(
/* shutdown internal structures used for instrumenting */
mpiio_cleanup_runtime();
/* disable further instrumentation */
instrumentation_disabled = 1;
MPIIO_UNLOCK();
return;
}
......
......@@ -116,11 +116,12 @@ static int my_rank = -1;
*/
#define NULL_PRE_RECORD() do { \
NULL_LOCK(); \
if(!null_runtime && !instrumentation_disabled) null_runtime_initialize(); \
if(!null_runtime) { \
NULL_UNLOCK(); \
return(ret); \
if(!instrumentation_disabled) { \
if(!null_runtime) null_runtime_initialize(); \
if(null_runtime) break; \
} \
NULL_UNLOCK(); \
return(ret); \
} while(0)
/* the NULL_POST_RECORD macro is executed after performing NULL
......@@ -294,6 +295,7 @@ static void null_cleanup_runtime()
free(null_runtime);
null_runtime = NULL;
instrumentation_disabled = 0;
return;
}
......@@ -315,6 +317,9 @@ static void null_shutdown(
NULL_LOCK();
assert(null_runtime);
/* disable further instrumentation while we shutdown */
instrumentation_disabled = 1;
/* NOTE: this function can be used to run collective operations prior to
* shutting down the module, as implied by the MPI communicator passed in
* as the first agrument. Typically, module developers will want to run a
......@@ -336,9 +341,6 @@ static void null_shutdown(
/* shutdown internal structures used for instrumenting */
null_cleanup_runtime();
/* disable further instrumentation */
instrumentation_disabled = 1;
NULL_UNLOCK();
return;
}
......
......@@ -65,11 +65,12 @@ static int my_rank = -1;
#define PNETCDF_PRE_RECORD() do { \
PNETCDF_LOCK(); \
if(!pnetcdf_runtime && !instrumentation_disabled) pnetcdf_runtime_initialize(); \
if(!pnetcdf_runtime) { \
PNETCDF_UNLOCK(); \
return(ret); \
if(!instrumentation_disabled) { \
if(!pnetcdf_runtime) pnetcdf_runtime_initialize(); \
if(pnetcdf_runtime) break; \
} \
PNETCDF_UNLOCK(); \
return(ret); \
} while(0)
#define PNETCDF_POST_RECORD() do { \
......@@ -336,6 +337,7 @@ static void pnetcdf_cleanup_runtime()
free(pnetcdf_runtime);
pnetcdf_runtime = NULL;
instrumentation_disabled = 0;
return;
}
......@@ -363,6 +365,10 @@ static void pnetcdf_shutdown(
PNETCDF_LOCK();
assert(pnetcdf_runtime);
/* disable further instrumentation while we shutdown */
instrumentation_disabled = 1;
pnetcdf_rec_count = pnetcdf_runtime->file_rec_count;
/* if there are globally shared files, do a shared file reduction */
......@@ -439,9 +445,6 @@ static void pnetcdf_shutdown(
/* shutdown internal structures used for instrumenting */
pnetcdf_cleanup_runtime();
/* disable further instrumentation */
instrumentation_disabled = 1;
PNETCDF_UNLOCK();
return;
}
......
......@@ -168,11 +168,12 @@ static int darshan_mem_alignment = 1;
#define POSIX_PRE_RECORD() do { \
POSIX_LOCK(); \
if(!posix_runtime && !instrumentation_disabled) posix_runtime_initialize(); \
if(!posix_runtime) { \
POSIX_UNLOCK(); \
return(ret); \
if(!instrumentation_disabled) { \
if(!posix_runtime) posix_runtime_initialize(); \
if(posix_runtime) break; \
} \
POSIX_UNLOCK(); \
return(ret); \
} while(0)
#define POSIX_POST_RECORD() do { \
......@@ -1684,6 +1685,7 @@ static void posix_cleanup_runtime()
free(posix_runtime);
posix_runtime = NULL;
instrumentation_disabled = 0;
return;
}
......@@ -1783,6 +1785,10 @@ static void posix_shutdown(
POSIX_LOCK();
assert(posix_runtime);
/* disable instrumentation while we shutdown */
instrumentation_disabled = 1;
posix_rec_count = posix_runtime->file_rec_count;
/* perform any final transformations on POSIX file records before
......@@ -1892,9 +1898,6 @@ static void posix_shutdown(
/* shutdown internal structures used for instrumenting */
posix_cleanup_runtime();
/* disable further instrumentation */
instrumentation_disabled = 1;
POSIX_UNLOCK();
return;
}
......
......@@ -160,11 +160,12 @@ static void stdio_cleanup_runtime();
#define STDIO_PRE_RECORD() do { \
STDIO_LOCK(); \
if(!stdio_runtime && !instrumentation_disabled) stdio_runtime_initialize(); \
if(!stdio_runtime) { \
STDIO_UNLOCK(); \
return(ret); \
if(!instrumentation_disabled) { \
if(!stdio_runtime) stdio_runtime_initialize(); \
if(stdio_runtime) break; \
} \
STDIO_UNLOCK(); \
return(ret); \
} while(0)
#define STDIO_POST_RECORD() do { \
......@@ -728,7 +729,11 @@ void DARSHAN_DECL(rewind)(FILE *stream)
* value in this wrapper.
*/
STDIO_LOCK();
if(!stdio_runtime && !instrumentation_disabled) stdio_runtime_initialize();
if(instrumentation_disabled) {
STDIO_UNLOCK();
return;
}
if(!stdio_runtime) stdio_runtime_initialize();
if(!stdio_runtime) {
STDIO_UNLOCK();
return;
......@@ -912,10 +917,6 @@ static void stdio_runtime_initialize()
/* try to store default number of records for this module */
stdio_buf_size = DARSHAN_DEF_MOD_REC_COUNT * sizeof(struct darshan_stdio_file);
/* don't do anything if already initialized or instrumenation is disabled */
if(stdio_runtime || instrumentation_disabled)
return;
/* register the stdio module with darshan core */
darshan_core_register_module(
DARSHAN_STDIO_MOD,
......@@ -1070,6 +1071,10 @@ static void stdio_shutdown(
STDIO_LOCK();
assert(stdio_runtime);
/* disable further instrumentation */
instrumentation_disabled = 1;
stdio_rec_count = stdio_runtime->file_rec_count;
/* if there are globally shared files, do a shared file reduction */
......@@ -1173,9 +1178,6 @@ static void stdio_shutdown(
/* shutdown internal structures used for instrumenting */
stdio_cleanup_runtime();
/* disable further instrumentation */
instrumentation_disabled = 1;
STDIO_UNLOCK();
return;
......@@ -1239,6 +1241,7 @@ static void stdio_cleanup_runtime()
free(stdio_runtime);
stdio_runtime = NULL;
instrumentation_disabled = 0;
return;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment