summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make the first parameter of H5PB_remove_entry() non-const to support someDavid Young2019-12-192-2/+2
| | | | changes I will commit shortly.
* There's no need to name parameters in a function declaration, and it makes themDavid Young2019-12-181-2/+2
| | | | very long, so just delete the parameters.
* Allocate regionsin the shadow file of page size or greater size with pageDavid Young2019-12-181-1/+1
| | | | | | | alignment. The VFD SWMR code had always assumed that the regions were aligned to page size. It would blithely round the start addresses of regions to the next lower page. When the region was freed, the freespace manager (H5MV) would suffer an assertion or corruption.
* Tell the tick number in diagnostic messages.David Young2019-12-181-2/+3
|
* Align the shadow images on page boundaries so that they don't overlap. ThisDavid Young2019-12-181-8/+8
| | | | | seems to be the programmer's original intention. It sure makes debugging easier to have non-overlapping shadow images.
* In the faked-up shadow-index entries, assign independent page numbers in theDavid Young2019-12-181-4/+4
| | | | | | | HDF5 file and in the shadow file. I had added assertions that the page numbers were unique, and this caused those assertions to fail. I don't know if I'll keep the assertions, but this is an inexpensive change that makes the test more realistic.
* Allocate and zero using calloc(3) instead of malloc(3)+memset(3).David Young2019-12-181-2/+1
|
* Follow the naming convention enforced by FUNC_ENTER_/FUNC_EXIT_* macros (?)David Young2019-12-181-5/+5
| | | | | where static routines have to have double underscores (__) in their name or else the library asserts false.
* Delete a macro that's not used.David Young2019-12-131-26/+0
|
* Remove disused duplicate of H5F__idx_entry_cmp(). I probably introduced thatDavid Young2019-12-131-34/+0
| | | | | by accident when I merged Vailin's changes that moved some functions from one file to another.
* Remove the ugly casts on calloc() and malloc(). Change some malloc() toDavid Young2019-12-131-6/+6
| | | | calloc() so that all bytes are initialized to something.
* Fix some typos. NFCI.David Young2019-12-132-2/+2
|
* Wrap some comments at <= 80 characters.David Young2019-12-101-6/+7
|
* Shorten the type name `H5F_vfd_swmr_eot_queue_entry_t` to `eot_queue_entry_t`:David Young2019-12-104-102/+57
| | | | | | | people have to read and type this stuff! Use TAILQ_* macros instead of an unnecessary custom implementation of doubly-linked lists.
* Fix typo. NFCI.David Young2019-12-101-1/+1
|
* Remove disused #ifdef QAK code.David Young2019-12-095-72/+0
|
* Be brief: don't cast the last parameter of H5Pset_file_space_strategy(), theDavid Young2019-12-092-21/+17
| | | | constant `1`, to `hsize_t`.
* Don't see a 1GB threshold for tracking free filespace, that workaround for VFDDavid Young2019-12-092-2/+2
| | | | | SWMR was never 100% effective, and now that there is a delay line on filespace frees, it is not necesesary.
* 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.