Commit Graph

18646 Commits

Author SHA1 Message Date
David Young
2d4e4e217c Delete a macro that's not used. 2019-12-13 10:34:03 -06:00
David Young
17d6de5396 Remove disused duplicate of H5F__idx_entry_cmp(). I probably introduced that
by accident when I merged Vailin's changes that moved some functions from one
file to another.
2019-12-13 10:25:25 -06:00
David Young
93175a115c Remove the ugly casts on calloc() and malloc(). Change some malloc() to
calloc() so that all bytes are initialized to something.
2019-12-13 10:24:02 -06:00
David Young
5d163c8d78 Fix some typos. NFCI. 2019-12-13 10:22:19 -06:00
David Young
8f62e5dafb Wrap some comments at <= 80 characters. 2019-12-10 10:56:04 -06:00
David Young
fed174988d Shorten the type name H5F_vfd_swmr_eot_queue_entry_t to eot_queue_entry_t:
people have to read and type this stuff!

Use TAILQ_* macros instead of an unnecessary custom implementation of
doubly-linked lists.
2019-12-10 10:52:58 -06:00
David Young
38902de493 Fix typo. NFCI. 2019-12-09 18:05:04 -06:00
David Young
305a64f674 Remove disused #ifdef QAK code. 2019-12-09 15:47:08 -06:00
David Young
a6be1c0397 Be brief: don't cast the last parameter of H5Pset_file_space_strategy(), the
constant `1`, to `hsize_t`.
2019-12-09 15:42:40 -06:00
David Young
0f33e41541 Don't see a 1GB threshold for tracking free filespace, that workaround for VFD
SWMR was never 100% effective, and now that there is a delay line on filespace
frees, it is not necesesary.
2019-12-09 15:30:17 -06:00
David Young
c8f533cfc3 Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,
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!
2019-12-09 10:30:58 -06:00
Vailin Choi
adcf8a315e Fix the FSM bug when setting the FSM threshold to a non-default value.
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).
2019-12-02 11:07:25 -06:00
David Young
4d50f9a7a8 Update status of the expand/shrink test. 2019-11-25 11:01:42 -06:00
David Young
0f9678b415 Mention the Markdown cheat sheet and tutorial, per John's request. 2019-11-22 15:36:56 -06:00
Vailin Choi
12438c22b7 Fix for punch list #28:
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).
2019-11-20 16:23:03 -06:00
Vailin Choi
68ad19d9cc Changes for punch list #4: Add support for opening mulitple files in either 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.
2019-11-20 11:39:26 -06:00
David Young
d3055b85b9 Add my name to some entries. 2019-11-19 17:16:06 -06:00
David Young
65c38da1f0 Mention the items that Vailin is working on. 2019-11-19 16:35:02 -06:00
David Young
7579e10abb Use bold to highlight items status. 2019-11-19 15:53:57 -06:00
David Young
898871545d Add some notes about what's done and what I'm working on. 2019-11-19 15:52:38 -06:00
David Young
d84343004e Add URL for the punch list. 2019-11-19 14:14:17 -06:00
David Young
c905d7105a Remove the last (?) vestige of gettimeofday alternate implementation of
VFD SWMR.
2019-11-19 14:12:29 -06:00
vchoi
e847ec43ac Fix for punch list #9 Move VFD SWMR H5F code to its own file: H5Fvfd_swmr.c. 2019-11-15 14:17:02 -06:00
Vailin Choi
350a786486 Fix for punch list #13 item #1: Odd behavior in the superblock refresh routine.
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.
2019-11-14 15:15:37 -06:00
Vailin Choi
227688c9cd Modifications for the following items in the punch list:
(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
2019-11-14 13:15:23 -06:00
David Young
f2bb4e3dbc Good-bye md_open_tries. 2019-11-14 11:11:15 -06:00
David Young
492d8b8b2a Add the latest version of the RFC. 2019-11-13 15:04:46 -06:00
dyoung
d017ff1850 Put the Markdown punch list on the right branch. 2019-11-13 12:17:20 -06:00
David Young
0ea6e75d9f VFD SWMR sparse readers failed to open the .h5 file because the sparse writer
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.
2019-10-23 10:47:14 -05:00
David Young
e84a416ad8 Expect the h5ls usage message to mention --poll twice. 2019-10-21 17:08:25 -05:00
David Young
7e4d20453e First, reduce code duplication in h5tools_fopen(). Then, stop h5tools_fopen()
from using the SWMR VFD unless the h5tools_fopen() arguments specifically
choose that VFD.
2019-10-21 16:17:10 -05:00
David Young
6f1469fce4 Fix some tools: try all other VFDs before SWMR. 2019-10-18 15:58:02 -05:00
David Young
63df4fae56 Delay for no more than 1/100 second between any retry in H5C_load_entry().
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.
2019-10-18 14:54:06 -05:00
David Young
e100cbdd3c Ntheever skip a read (skip_read is always false). This lets my demos work and
it does not seem to affect either my unit tests or testvfdswmr.sh.
2019-10-18 14:52:59 -05:00
David Young
90a602634e I've changed test/dsets so that every time it needs to visit all
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.
2019-10-17 16:36:17 -05:00
David Young
fcd490a0bc Use PRIuHADDR. 2019-10-17 13:17:06 -05:00
David Young
8efc3d9757 Move a disused variable inside of the #if 0 region that needs it. 2019-10-17 13:15:54 -05:00
David Young
0850f06862 Repair comments. 2019-10-17 13:14:38 -05:00
David Young
2dd9c3b92f The err_compat test relied on some "lines" on the standard output stream
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.
2019-10-08 16:17:42 -05:00
David Young
c2b841f513 Add NetBSD and Berkeley licenses for struct timespec helper macros. 2019-10-07 17:36:30 -05:00
David Young
730b2fbcb2 Provide the BSD struct timespec arithmetic macro, timespecsub(). 2019-10-07 12:15:40 -05:00
David Young
19304abb51 Fix an off-by-one error in the retries API that made the test "protect
an entry to verify retries" in `test/cache` fail.
2019-10-07 11:50:20 -05:00
David Young
743c9358d1 Introduce PRI*HADDR and PRI*HSIZE for printing haddr_t and hsize_t. 2019-10-03 17:34:05 -05:00
David Young
82f647534c Make some NetBSD compatibility patches. 2019-10-03 17:30:46 -05:00
David Young
09bb031cf1 Refactor a bit, remove dead code, move some helper functions to the top
of the file, remove unused variables.
2019-10-02 17:27:24 -05:00
David Young
4311b2ef9d Fix some comments where "read" was written instead of "write." NFCI. 2019-10-02 16:01:27 -05:00
David Young
b1b98cfafe F ix off-by-one bug affecting metadata-read retries: retries == tries - 1. 2019-10-02 15:48:50 -05:00
David Young
5025be74ea Use int64_t instead of uint64_t to avoid some warnings about sign
conversion.
2019-09-30 14:48:57 -05:00
David Young
20dd9b1372 Initialize data and odata to NULL like the exit sequences
expect.  Free `odata`.
2019-09-30 14:28:13 -05:00
David Young
38f3ece57a Add a test for single-page metadata (SPMDE) writes. Mention in a
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.
2019-09-30 14:07:15 -05:00