summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,David Young2019-12-091185-87383/+167234
| | | | | | | | 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-022-1/+6
| | | | | | | 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).
* Update status of the expand/shrink test.David Young2019-11-251-6/+7
|
* Mention the Markdown cheat sheet and tutorial, per John's request.David Young2019-11-221-1/+8
|
* Fix for punch list #28:Vailin Choi2019-11-203-48/+65
| | | | | | 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-209-230/+1414
| | | | | | 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.
* Add my name to some entries.David Young2019-11-191-3/+3
|
* Mention the items that Vailin is working on.David Young2019-11-191-2/+2
|
* Use bold to highlight items status.David Young2019-11-191-3/+3
|
* Add some notes about what's done and what I'm working on.David Young2019-11-191-3/+25
|
* Add URL for the punch list.David Young2019-11-191-1/+3
|
* 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-1430-35/+115
| | | | | | | | | (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-144-10/+1
|
* Add the latest version of the RFC.David Young2019-11-131-0/+0
|
* Put the Markdown punch list on the right branch.dyoung2019-11-131-0/+102
|
* VFD SWMR sparse readers failed to open the .h5 file because the sparse writerDavid Young2019-10-232-1/+49
| | | | | | | had finished its work and closed the .h5 file, thus removing the shadow file. Make the sparse writer wait to close the .h5 file for a signal from testvfdswmr.sh. In testvfdswmr.sh, send the signal when the readers have all finished.
* Expect the h5ls usage message to mention --poll twice.David Young2019-10-215-0/+10
|
* First, reduce code duplication in h5tools_fopen(). Then, stop h5tools_fopen()David Young2019-10-211-33/+22
| | | | | from using the SWMR VFD unless the h5tools_fopen() arguments specifically choose that VFD.
* Fix some tools: try all other VFDs before SWMR.David Young2019-10-181-3/+3
|
* 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.
* I've changed `test/dsets` so that every time it needs to visit allDavid Young2019-10-171-32/+121
| | | | | | | | | | | | | | | | | cells in a matrix in an arbitrary order, first it chooses a random starting `offset` in [0, rows * columns - 1]. Then it chooses a random `increment` that's relatively prime to `rows * columns`. Then it visits every cell in `rows * columns` steps: for (i = 0; i < rows * columns; i++) { visit(cell[offset / columns][offset % columns]); offset = (increment + offset) % (rows * columns); } By moving the HDrandom() calls outside of the main loop and visiting each cell only once, this probably speeds things up quite a bit. It's also more resilient to a crummy random sequence. The new code visits cells in an order that's probably arbitrary enough for testing purposes.
* 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
|
* The err_compat test relied on some "lines" on the standard output streamDavid Young2019-10-082-3/+7
| | | | | | | | to end with whitespace padding rather than newlines. My introduction of variadic TESTING() got rid of the padding. I have straightened this out by newline-terminating the stdout lines in the test program and in its expected out. I also add some newlines to the program's standard error output so that the expected error output still matches.
* 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-036-73/+83
|
* Make some NetBSD compatibility patches.David Young2019-10-0329-40/+162
|
* Refactor a bit, remove dead code, move some helper functions to the topDavid Young2019-10-021-261/+355
| | | | of the file, remove unused variables.
* 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.
* Initialize `data` and `odata` to NULL like the exit sequencesDavid Young2019-09-301-2/+6
| | | | expect. Free `odata`.
* Add a test for single-page metadata (SPMDE) writes. Mention in aDavid Young2019-09-301-10/+150
| | | | | | | | | | | | comment to myself that I need to reduce code duplication with the MPMDE test. In vfd_read_each_equals(), print the correct expected value when there is a discrepancy. No functional change intended: correct a comment in vfd_read_each_equals. Fix indentation in the test_raw_data_handling() header comment.
* Rename the metadata test again to reflect how it's checking the pageDavid Young2019-09-271-13/+28
| | | | | | buffer's treatment of multipage metadata entries (MPMDEs). Mention why an H5PB_flush() is not necessary for MPMDEs to reach visibility at the VFD layer.
* Don't use FILENAME and FILENAME[0] because that looks like worrisomeDavid Young2019-09-271-83/+83
| | | | | | | | | | | | | | | | | | macro magic. Use namebases and namebase, instead. Extract a bunch of copy-and-paste VFD SWMR setup into a new subroutine, swmr_fapl_augment(). Make sure that the metadata reads all-0s until it reads all -1s. Extract a subroutine, vfd_read_each_equals(), that reads and compares a region with one of its arguments. Rename from test_basic_metadata_handling() to test_metadata_delay_basic(), since that gets at what we're testing better. Don't perform an H5PB_flush(), it's not necessary for this test because H5Fvfd_swmr_end_tick() has done essentially the same thing.
* 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.
* Initialize VFD SWMR configuration block to zeroes. I was hopeful thatDavid Young2019-09-261-0/+2
| | | | | this would fix a bug, but I don't think it had any effect. Still, a necessary change.
* 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.