summaryrefslogtreecommitdiffstats
path: root/src/H5Fpkg.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2003-02-10 17:26:09 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2003-02-10 17:26:09 (GMT)
commit24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435 (patch)
tree6b2eb3bb1e782c40718204882428e6471b6281ac /src/H5Fpkg.h
parent738661ab9f409b8d961ba1402d6c4dd5f99ecb43 (diff)
downloadhdf5-24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435.zip
hdf5-24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435.tar.gz
hdf5-24d8506dd564c5cc0fdebb5ebdfaec7bda5a7435.tar.bz2
[svn-r6387] Purpose:
Bug Fix Description: Metadata cache in parallel I/O can cause hangs in applications which perform independent I/O on chunked datasets, because the metadata cache can attempt to flush out dirty metadata from only a single process, instead of collectively from all processes. Solution: Pass a dataset transfer property list down from every API function which could possibly trigger metadata I/O. Then, split the metadata cache into two sets of entries to allow dirty metadata to be set aside when a hash table collision occurs during independent I/O. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) serial & parallel Misc. update: Updated release_docs/RELEASE
Diffstat (limited to 'src/H5Fpkg.h')
-rw-r--r--src/H5Fpkg.h26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h
index 9326060..aab992a 100644
--- a/src/H5Fpkg.h
+++ b/src/H5Fpkg.h
@@ -176,24 +176,17 @@ H5_DLLVAR hbool_t H5_mpiposix_1_metawrite_g;
#endif /* H5_HAVE_PARALLEL */
/* Private functions, not part of the publicly documented API */
-H5_DLL void H5F_encode_length_unusual(const H5F_t *f, uint8_t **p,
- uint8_t *l);
-H5_DLL H5F_t *H5F_open(const char *name, unsigned flags, hid_t fcpl_id,
- hid_t fapl_id);
-H5_DLL herr_t H5F_close(H5F_t *f);
-H5_DLL herr_t H5F_close_all(void);
-H5_DLL herr_t H5F_flush_all(hbool_t invalidate);
-H5_DLL herr_t H5F_debug(H5F_t *f, haddr_t addr, FILE * stream,
- int indent, int fwidth);
-H5_DLL herr_t H5F_istore_debug(H5F_t *f, haddr_t addr, FILE * stream,
- int indent, int fwidth, int ndims);
+#ifdef NOT_YET
+H5_DLL void H5F_encode_length_unusual(const H5F_t *f, uint8_t **p, uint8_t *l);
+#endif /* NOT_YET */
H5_DLL herr_t H5F_mountpoint(struct H5G_entry_t *find/*in,out*/);
+H5_DLL herr_t H5F_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream,
+ int indent, int fwidth);
/* Functions that operate on indexed storage */
H5_DLL herr_t H5F_istore_init (H5F_t *f);
-H5_DLL herr_t H5F_istore_flush (H5F_t *f, hbool_t preempt);
-H5_DLL herr_t H5F_istore_dest (H5F_t *f);
-H5_DLL herr_t H5F_istore_stats (H5F_t *f, hbool_t headers);
+H5_DLL herr_t H5F_istore_flush (H5F_t *f, hid_t dxpl_id, hbool_t preempt);
+H5_DLL herr_t H5F_istore_dest (H5F_t *f, hid_t dxpl_id);
H5_DLL herr_t H5F_istore_read(H5F_t *f, hid_t dxpl_id,
const struct H5O_layout_t *layout,
struct H5P_genplist_t *dc_plist,
@@ -206,14 +199,15 @@ H5_DLL herr_t H5F_istore_write(H5F_t *f, hid_t dxpl_id,
const hsize_t size_m[], const hssize_t offset_m[],
const hssize_t offset[], const hsize_t size[],
const void *buf);
+H5_DLL herr_t H5F_istore_stats (H5F_t *f, hbool_t headers);
+H5_DLL herr_t H5F_istore_debug(H5F_t *f, hid_t dxpl_id, haddr_t addr, FILE * stream,
+ int indent, int fwidth, int ndims);
/* Functions that operate on contiguous storage wrt boot block */
H5_DLL herr_t H5F_contig_read(H5F_t *f, hsize_t max_data, H5FD_mem_t type, haddr_t addr,
size_t size, hid_t dxpl_id, void *_buf/*out*/);
H5_DLL herr_t H5F_contig_write(H5F_t *f, hsize_t max_data, H5FD_mem_t type, haddr_t addr,
size_t size, hid_t dxpl_id, const void *buf);
-
-/* Functions that operate on contiguous storage wrt boot block */
H5_DLL herr_t H5F_contig_readv(H5F_t *f, hsize_t max_data, H5FD_mem_t type, haddr_t addr,
size_t nseq, size_t size[], hsize_t offset[], hid_t dxpl_id, void *_buf/*out*/);
H5_DLL herr_t H5F_contig_writev(H5F_t *f, hsize_t max_data, H5FD_mem_t type, haddr_t addr,