summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,David Young2019-12-09328-20189/+64326
| | | | | | | | including the merge of `hdffv/hdf5/develop`, back to the branch that Vailin and I share. Now I need to put this branch on a fork with a less confusing name than vchoi_fork!
* Fix the FSM bug when setting the FSM threshold to a non-default value.Vailin Choi2019-12-021-1/+1
| | | | | | | Check for smaller or larger section size after merging and shrinking a section, for this case is the section that is smaller than threshold (see H5MF_xfree() in H5MF.c). It is possible for the section to be smaller after merging/shrinking (see H5MF__sect_large_shrink() in H5MFsection.c).
* Fix for punch list #28:Vailin Choi2019-11-201-46/+22
| | | | | | Given that the VFD SWMR configuration FAPL property is set, the writer field must be consistent with the flags passed in the H5Fopen() (either H5F_ACC_RDWR for the VFD SWMR writer, or H5F_ACC_RDONLY for the VFD SWMR readers).
* Changes for punch list #4: Add support for opening mulitple files in either ↵Vailin Choi2019-11-207-175/+430
| | | | | | VFD SWMR writer or reader mode. See EOT queue in section 3.2.2 and 3.3 and 3.3.2 in the RFC. Update punch list with items completed and in progress.
* Remove the last (?) vestige of gettimeofday alternate implementation ofDavid Young2019-11-191-4/+0
| | | | VFD SWMR.
* Fix for punch list #9 Move VFD SWMR H5F code to its own file: H5Fvfd_swmr.c.vchoi2019-11-155-1770/+1869
|
* Fix for punch list #13 item #1: Odd behavior in the superblock refresh routine.Vailin Choi2019-11-141-11/+4
| | | | | | The test "driver_addr != sblock->driver_addr" is failing for superblock version 2 & 3. Fix: there is no driver_addr in superblock version 2 & 3. It should decode the root group object header address (root_addr) and verify accordingly.
* Modifications for the following items in the punch list:Vailin Choi2019-11-147-11/+94
| | | | | | | | | (A) #5: Add the "pb_expansion_threshold" field to the "H5F_vfd_swmr_config_t" structure and update H5Pset_vfd_swmr_config() and H5Pget_vfd_swmr_config() accordingly (B) #13 bullet 2: Comment H5F_vfd_swmr_config_t in H5Fpublic.h properly (copied from John's description in the RFC) (C) Change the field name "vfd_swmr_writer" to "writer" in "struct H5F_vfd_swmr_config_t" (as indicated on page 11 in the RFC) and all references to it
* Good-bye md_open_tries.David Young2019-11-143-7/+1
|
* Delay for no more than 1/100 second between any retry in H5C_load_entry().David Young2019-10-181-1/+1
| | | | | | This lets test/testflushrefresh.sh pass again. It was timing out while it waited for expected failures to occur because the retry loop ran for way too long.
* Ntheever skip a read (skip_read is always false). This lets my demos work andDavid Young2019-10-181-10/+2
| | | | it does not seem to affect either my unit tests or testvfdswmr.sh.
* Use PRIuHADDR.David Young2019-10-171-2/+2
|
* Move a disused variable inside of the #if 0 region that needs it.David Young2019-10-171-2/+2
|
* Repair comments.David Young2019-10-171-3/+3
|
* Add NetBSD and Berkeley licenses for `struct timespec` helper macros.David Young2019-10-071-0/+64
|
* Provide the BSD `struct timespec` arithmetic macro, timespecsub().David Young2019-10-072-10/+46
|
* Fix an off-by-one error in the retries API that made the test "protectDavid Young2019-10-071-3/+16
| | | | an entry to verify retries" in `test/cache` fail.
* Introduce PRI*HADDR and PRI*HSIZE for printing haddr_t and hsize_t.David Young2019-10-031-57/+67
|
* Make some NetBSD compatibility patches.David Young2019-10-031-1/+18
|
* Fix some comments where "read" was written instead of "write." NFCI.David Young2019-10-021-7/+7
|
* F ix off-by-one bug affecting metadata-read retries: retries == tries - 1.David Young2019-10-022-6/+6
|
* Use int64_t instead of uint64_t to avoid some warnings about signDavid Young2019-09-301-4/+4
| | | | conversion.
* Fix a typo: adress -> address.David Young2019-09-271-1/+1
|
* Skip the metadata accumulator and always perform I/O through the VFD, soDavid Young2019-09-261-61/+6
| | | | | | | that writes are not delayed. In H5PB__flush_entry, simplify by eliminating a temporary variable and a constant.
* If a page entry is delayed *until* tick `t`, and tick `t` has arrived,David Young2019-09-261-3/+2
| | | | | it is eligible to flush *now*, so do that. Don't wait until tick `t + 1`.
* Fix a comment: I don't know what `*pbe_ptr` was. Refer to `page`, sinceDavid Young2019-09-261-1/+1
| | | | that seems to be the intention. No functional change intended.
* Rename local variable `delay_write_until` as `until`. ReduceDavid Young2019-09-261-11/+7
| | | | | parenthesization in an `if` condition. Join some lines. No functional change intended.
* Oops, straggler from last: rename the nanosecond constants. While I amDavid Young2019-09-261-6/+2
| | | | here, delete dead code.
* SECOND_TO_NANOSECS is the name of a function, not a constant. Rename toDavid Young2019-09-261-8/+8
| | | | nanosecs_per_second. Ditto for the tenth-second constant.
* In H5PB_flush(), skip a page-buffer entry if its write is delayed.David Young2019-09-261-0/+9
|
* Commit to the clock_gettime() versions of VFD SWMR and delete theDavid Young2019-09-251-76/+4
| | | | | | gettimeofday() alternate. Perform nanoseconds arithmetic using uint64_t instead of long to avoid unwanted overflows on 32-bit systems like my i386 (!) development box.
* Add to the page buffer a local printf-like debug function that I canDavid Young2019-09-251-0/+22
| | | | turn on and off. Use it here and there.
* Clean up excessive casting and parenthesization. No functional changeDavid Young2019-09-241-1/+1
| | | | intended.
* Don't set up raw-data pages for delayed writes. This preventsDavid Young2019-09-191-0/+4
| | | | | | | | | an assertion from firing: "entry_ptr->delay_write_until == 0" failed: file "../../../vchoi_fork/src/H5PB.c", line 4093, function "H5PB__write_raw" In a comment, mention a change that has to be made to accommodate parallel mode.
* Make whitespace consistent: no leading tabs!David Young2019-09-161-1/+1
|
* Update function documentation. NFCI.David Young2019-09-161-3/+3
|
* Use h5_retry_init/_next to retry loading the SWMR shadow file.David Young2019-09-123-10/+15
|
* Convert several warnings about const to non-const conversion at H5Tcopy()David Young2019-09-122-2/+2
| | | | invocations to one warning in the H5Tcopy() implementation.
* Quiet compiler warnings about signedness by changing a signedDavid Young2019-09-121-1/+1
| | | | integer to an unsigned one.
* Replace a missing curly brace.David Young2019-09-101-1/+1
|
* Merge the latest h5_retry_t code from my `sleepy` branch.David Young2019-09-104-20/+132
|
* Consolidate VFD SWMR variable declarations in a new header file,David Young2019-08-284-63/+76
| | | | | | | | | | | | | | | H5FDvfd_swmr_private.h. Perform tick processing in FUNC_ENTER_API_NOCLEAR, where it was missing. Track the number of times the HDF5 library has been entered/exited through its public API. Only perform tick processing on the first entry and last exit. This stops us from performing tick processing in API calls invoked by application callbacks. Performing tick processing in nested API calls led to crashes. Note well: FUNC_LEAVE_API now performs tick processing even on an error exit! Previously, it did not. I'm not sure if the change is ok.
* In the error message, provide specific information that will help thedyoung2019-08-221-1/+1
| | | | developer fix the error.
* Quiet warnings, especially signed/unsigned casts.dyoung2019-08-225-41/+51
|
* Merge branch 'feature/vfd_swmr' of ↵mainzer2019-07-061-7/+3
|\ | | | | | | | | | | https://bitbucket.hdfgroup.org/scm/~vchoi/my_hdf5_fork into feature/vfd_swmr updated to permit a push. Should be no changes in VFD SWMR proper.
| * Modifications to the vfd swmr concurrent tests:Vailin Choi2019-01-311-7/+3
| | | | | | | | | | | | | | | | (1) Increase the # of records to write (Nrecords) in testvfdswmr.sh.in so as to ensure the writer will not exit before the reader (2) Use H5E_BEGIN_TRY/END_TRY when H5Fopen() the test file in reader tests (3) Add "READER" or "WRITER" to debugging messages (4) Misc cleanup
* | Tidied up comments and removed some stats code that is un-reachable.mainzer2019-07-064-33/+29
|/
* Checkin of fixes for a number of bugs in reads to page 0, and in filemainzer2019-01-303-10/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | open in the VFD SWMR reader case. Note that the following failures in testvfdswmr.sh: 1) Unable to find metadata file on VFD SWMR reader open. 2) Occasional sanity check failures in the page buffer on raw data write. 3) Filter failures on raw data read in VFD SWMR readers when compression is enabled. 4) Unexpected data errors in VFD SWMR readers when compression is disabled. Note that I expect that items 3 & 4 two aspects of the same issues -- the fact that we don't guarantee that raw data is consistent with metadata. Item 2) must be addressed, but it is so infrequent that it isn't doesn't affect the conclusion VFD SWMR seems to work, and thus it can wait until phase 2. I am given to understand that Vailin has largely addressed item 1), and will be checking in her solution to this soon. Tested on Charis and Jelly.
* Checkin of fix for the failure to evict all tagged entries issue.mainzer2019-01-162-17/+27
|
* Commented out some test code that resulted spurious failuresmainzer2019-01-161-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | in un-related tests (i.e. earray, fheap, etc.). On jelly and charis, vfd_swmr now passes. testvfdswmr.sh displas the following failures: 1) occasionally ccan't open the metadata file. This shows up more on jelly than charis. 2) occasional complaints about incorrect raw data 3) occasional complaints from Quincey's evict tagged entries code that it can't evict all the tagged entries. 4) Numerous filter failures. At a guess, this is an artifact of raw data not making it to file in sync with the metadata. I didn't see this on charis, as I don't have compression configured. 5) An assertion failure in the page buffer in which a sanity check is failing in the code to update the replacement policy. This is worrying --- I'll need to look into it on my return.