summaryrefslogtreecommitdiffstats
path: root/src/H5FPprivate.h
diff options
context:
space:
mode:
authorJohn Mainzer <mainzer@hdfgroup.org>2004-04-19 17:42:34 (GMT)
committerJohn Mainzer <mainzer@hdfgroup.org>2004-04-19 17:42:34 (GMT)
commit4a85877fdc3b6b4a4e87dad27149148c7ac6ebf5 (patch)
tree40d5a2ea5107c34e5163495cd59acdfa6fb029f2 /src/H5FPprivate.h
parent55a64a7359e61dc1d67c4bce9d50fc5166735b10 (diff)
downloadhdf5-4a85877fdc3b6b4a4e87dad27149148c7ac6ebf5.zip
hdf5-4a85877fdc3b6b4a4e87dad27149148c7ac6ebf5.tar.gz
hdf5-4a85877fdc3b6b4a4e87dad27149148c7ac6ebf5.tar.bz2
[svn-r8391] Purpose:
Checkpoint checkin of FP bug fixes. FP is still quite buggy, but I must go deal with other matters. Description: Fixed two major bugs: 1) H5FPserver.c was clobbering meta data in its care. 2) H5FPserver.c was allocating the same space multiple times, causing both data and meta data corruption. Also made minor fixes, added debugging code, and familiarized myself with the FP code. All development work with FP enabled was done on Eirene. On this platform, FP now passes its test reliably with up to 9 processes. At 10 processes it seg faults every time. I haven't looked into this issue. There are also several known locking bugs which have to be fixed. However, they are of sufficiently low probability that I didn't bother with them on this pass. FP has not been tested with deletions -- this should be done. Also, need to test FP chunked I/O. Solution: 1) Modified cache in H5FPserver.c to merge changes correctly. Found and fixed a bug in H5TB.c in passing. 2) Multiple space allocation was caused by a race condition with set eoa requests. Most of these eoa requests appeared to be superfluous, so I deleted them. Those issued during the superblock read seemed necessary, so I inserted a barrier at the end of the superblock read, to prevent races with allocations. Platforms tested: h5committested
Diffstat (limited to 'src/H5FPprivate.h')
-rw-r--r--src/H5FPprivate.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/H5FPprivate.h b/src/H5FPprivate.h
index aa85969..2c2f8b1 100644
--- a/src/H5FPprivate.h
+++ b/src/H5FPprivate.h
@@ -316,10 +316,16 @@ extern herr_t H5FP_request_flush_metadata(H5FD_t *file, unsigned file_id,
H5FP_status_t *status);
extern herr_t H5FP_request_close(H5FD_t *file, unsigned sap_file_id,
unsigned *req_id, H5FP_status_t *status);
+
+/* the following function should probably become a private function
+ * in H5FPclient.c if H5FP_client_alloc() does the job. -- JRM
+ */
extern herr_t H5FP_request_allocate(H5FD_t *file, H5FD_mem_t mem_type,
hsize_t size, haddr_t *addr,
haddr_t *eoa, unsigned *req_id,
H5FP_status_t *status);
+extern haddr_t H5FP_client_alloc(H5FD_t *file, H5FD_mem_t type,
+ hid_t dxpl_id, hsize_t size);
extern herr_t H5FP_request_free(H5FD_t *file, H5FD_mem_t mem_type,
haddr_t addr, hsize_t size,
unsigned *req_id, H5FP_status_t *status);