diff options
author | John Mainzer <mainzer@hdfgroup.org> | 2006-05-24 07:36:28 (GMT) |
---|---|---|
committer | John Mainzer <mainzer@hdfgroup.org> | 2006-05-24 07:36:28 (GMT) |
commit | a415cc6b17269c893704b3410a764b1c5d3d812e (patch) | |
tree | 36c29aba9c7b776bec0a65999d796d389bec9090 /src/H5ACpkg.h | |
parent | 5f4234fabfe2ee0c07d74776d36352a8daf49e31 (diff) | |
download | hdf5-a415cc6b17269c893704b3410a764b1c5d3d812e.zip hdf5-a415cc6b17269c893704b3410a764b1c5d3d812e.tar.gz hdf5-a415cc6b17269c893704b3410a764b1c5d3d812e.tar.bz2 |
[svn-r12374] Purpose:
1) Check in potential fix to unreproduceable bug in t_cache observed on
Cobalt
2) Check in code supporting added pinned entry features in the metadata
cache.
Description:
1) Elena encountered a bug in t_cache when running on Cobalt. On
investigation I found a potential race condition in t_cache that
could explain her observation.
2) Quincey requested additions to the metadata cache allowing renaming
of pinned entryies, and marking of pinned or protected entries as
dirty.
Solution:
1) Modified t_cache.c to prevent the potential race condition. Elena
was unable to reproduce the bug on Cobalt, so we don't know if my
fix actually addressed the problem.
2) Added code supporting the requested functions. The changes were
relatively trivial, but required substantial new test code.
Platforms tested:
h5committest, serial test on heping, parallel test on phoenix.
Misc. update:
Diffstat (limited to 'src/H5ACpkg.h')
-rw-r--r-- | src/H5ACpkg.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/H5ACpkg.h b/src/H5ACpkg.h index 903eca3..e31f245 100644 --- a/src/H5ACpkg.h +++ b/src/H5ACpkg.h @@ -263,6 +263,18 @@ * contain the value 0 on all processes other than process 0. * It exists primarily for sanity checking. * + * write_done: In the parallel test bed, it is necessary to ensure that + * all writes to the server process from cache 0 complete + * before it enters the barrier call with the other caches. + * + * The write_done callback allows t_cache to do this without + * requiring an ACK on each write. Since these ACKs greatly + * increase the run time on some platforms, this is a + * significant optimization. + * + * This field must be set to NULL when the callback is not + * needed. + * ****************************************************************************/ #ifdef H5_HAVE_PARALLEL @@ -308,6 +320,8 @@ typedef struct H5AC_aux_t int32_t c_slist_len; + void (* write_done)(void); + } H5AC_aux_t; /* struct H5AC_aux_t */ #endif /* H5_HAVE_PARALLEL */ |