David Young
88e8b4fd7d
Merge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
2020-07-31 16:15:25 -05:00
David Young
d01bcf6667
Perform virtual dataset tests with multiple source files, too.
2020-07-31 16:14:10 -05:00
David Young
6caa0c5ac5
Let us use virtual datasets with multiple source files that are open with VFD
...
SWMR mode: pass H5P_FILE_ACCESS_ANY_VFD so that the discrepancy between VFD
SWMR file-access properties and default file-access properties is ignored.
2020-07-31 16:12:27 -05:00
David Young
7321d0e813
Improve code readability: extract common subexpressions into temporary
...
variables.
2020-07-30 17:21:24 -05:00
David Young
a8cbf2579d
In test_reader_md_concur(), the child has to exit(3), not FAIL_STACK_ERROR, on
...
error.
2020-07-30 17:01:16 -05:00
David Young
bf004fcba8
Bug fixes: don't double-close a FAPL ID. Always close a file ID.
2020-07-30 17:00:38 -05:00
David Young
92887cad1c
Update an out-of-date comment.
2020-07-30 16:58:37 -05:00
David Young
b6b92aff09
Remove superfluous casts from void * to another pointer type prior to
...
assignment. Use a safer sizeof(array element) idiom. NFCI.
2020-07-30 16:56:20 -05:00
David Young
2a64d2fe93
Change H5F_open to perform deduplication of open VFDs in a more flexible way,
...
using the new routine H5FDdeduplicate().
Simplify H5F_open() a bit, pushing some of the configuration checks into the
SMWR VFD. For example, check that page buffering is enabled in
H5FD_vfd_swmr_open() instead of in H5F_open(). Compare VFD SWMR configurations
in H5FD_vfd_swmr_dedup() instead of in H5F_open().
Clone the default file-access property list at a new file-access property list
ID, H5P_FILE_ACCESS_ANY_VFD. The new ID is used to indicate that if the file
that's being opened is already open under an existing virtual file, and if that
virtual file would not ordinarily be opened with the default FAPL, then it's ok
to use that virtual file.
Add a new optional method, `dedup`, to H5FD_class_t, and use it to customize a
VFD's deduplication.
Customize the SWMR VFD's deduplication. Make it honor H5P_FILE_ACCESS_ANY_VFD
Embed the VFD SWMR configuration in the H5FD_vfd_swmr_t to facilitate
comparison of configuration between new and old SWMR virtual files.
In H5F__sfile_search(), match using a pointer comparison instead of H5FD_cmp(),
because we will only ever enter H5F__sfile_search() with a deduplicated
H5FD_t *.
2020-07-30 16:53:01 -05:00
David Young
0b189968ff
Merge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
2020-07-28 09:41:09 -05:00
David Young
5632094d5c
Initialize refresh member.
2020-07-28 09:40:35 -05:00
David Young
0cb028b717
Merge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
2020-07-28 09:20:28 -05:00
David Young
d93bc843aa
Promote more warnings to errors.
2020-07-28 09:14:12 -05:00
David Young
0fd4a7f5e1
Merge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
2020-07-21 11:25:28 -05:00
David Young
04e775b127
Straggler from last: update declaration of vfd_swmr_create_fapl().
2020-07-21 11:15:44 -05:00
David Young
78bd491aad
Add to the "bigset" writer a -M command-line option that enables the use of
...
multiple files with virtual datasets.
Add to vfd_swmr_create_fapl() printf(3)-like arguments for setting the shadow
filename. Update all callers.
2020-07-21 11:13:05 -05:00
David Young
a9fefff620
Add evsnprintf for printing a va_list to a buffer or aborting the program on
...
an overflow or other error.
2020-07-21 10:18:43 -05:00
David Young
6e3ad3213d
Delete superfluous comments that interpret obvious program syntax/semantics.
2020-07-21 10:15:56 -05:00
David Young
0ae43ff6cd
Mention an improvement asked for by ITER.
2020-07-21 10:04:49 -05:00
David Young
43cec81db6
Only count metadata reads/writes on the page buffer. Neaten the count logs.
2020-07-21 10:01:12 -05:00
David Young
c66f7d5b65
Merge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
2020-07-15 16:47:07 -05:00
David Young
c9d8f3e4f1
Log the number of page-buffer accesses at various multiples of the page size
...
with log outlet `pb_access_sizes`.
2020-07-15 16:44:52 -05:00
David Young
be0b2f132d
Perform the few_big and many_small tests with and without VDS enabled.
2020-07-15 16:43:48 -05:00
David Young
91a7258dbf
Don't perform EOT processing on the same H5F_shared_t more than once if it has
...
multiple referring H5F_t on the EOT queue. This stops the VFD SWMR writer from
advancing the shadow file's tick number too fast when we're using virtual
datasets (VDS) with VFD SWMR.
2020-07-15 16:28:52 -05:00
David Young
767afc60be
Update comment.
2020-07-15 16:26:52 -05:00
David Young
0e9f3038d2
Merge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
2020-07-14 15:13:45 -05:00
David Young
a0be3626c8
Delete whitespace at EOL. NFCI.
2020-07-14 15:13:20 -05:00
David Young
814b428b2a
When H5FD_vfd_swmr_read() reads a page from the shadow file whose checksum
...
fails, re-load the shadow-file header and log the last-read and current tick
number.
2020-07-14 15:10:30 -05:00
David Young
2056e23fc9
Avoid some casts, change some parameters from H5FD_t to H5FD_vfd_swmr_t when
...
that's what both the callers and callees expect. NFCI.
2020-07-14 15:09:18 -05:00
David Young
c3120ac3da
Delete some dead code.
2020-07-14 15:06:02 -05:00
David Young
5c9d2724be
Add some new diagnostic logging.
2020-07-14 15:04:37 -05:00
David Young
3d89d6ca4e
Suppress the error-stack printouts while attempting to open and read an
...
attribute: failures are expected.
2020-07-14 15:02:49 -05:00
David Young
30a62d1380
Don't check an unsigned integer for being negative. Quiets a GCC warning.
2020-07-14 15:01:50 -05:00
David Young
7840f5f3b5
Merge branch 'feature/vfd_swmr' into may-merge-mainzer-to-mine
2020-07-14 09:06:43 -05:00
David Young
63c7ec2496
Bug fix: avoid leaking memory and other resources, perform the reader-only
...
close activities under the correct condition! Extract the reader-only open and
close code into helper routines.
2020-07-14 09:00:44 -05:00
David Young
f7fab27b25
If the function-enter macro fails, return FAIL. Now the compiler can see that
...
if H5FD__vfd_swmr_header_deserialize() succeeds, then the header that was
passed in was actually initialized. This squashes a used-before-initialized
warning from GCC.
2020-07-14 08:58:11 -05:00
David Young
12e5f29e48
Take care to initialize the metadata file descriptor to -1 so that we don't try
...
to close descriptor 0, later.
2020-07-14 08:56:32 -05:00
David Young
323380e6b9
If a group's attribute isn't present, that's ok. Retry.
2020-07-14 08:55:26 -05:00
David Young
8593cd2d93
Close attribute after use.
2020-07-14 08:54:56 -05:00
David Young
fefc6cf885
Delete dead code. NFCI.
2020-07-14 08:54:44 -05:00
David Young
326b98fd08
Delete whitespace at EOL. Join consecutive line. NFCI.
2020-07-13 10:09:40 -05:00
David Young
62240b1a55
Delete whitespace at EOL.
2020-07-13 10:03:12 -05:00
David Young
0e1b6bfcef
Fix a copy-pasto in an error message.
2020-07-10 16:18:39 -05:00
David Young
a2308ffd2c
Move the dapl initialization to state_init and, if VDS is enabled,
...
set the virtual view to "first missing."
2020-07-10 16:17:51 -05:00
David Young
2882736643
Delete unused local variables. Delete an empty line. NFCI.
2020-07-10 16:16:40 -05:00
David Young
0c98fe96e5
Don't leak a fapl on error.
2020-07-10 16:16:01 -05:00
David Young
09b17b6563
Remove gratuitous local variable initialization: it's better to let the
...
compiler detect use-before-initialization. Use the safer `memset(p, ...,
sizeof(*p))` idiom.
2020-07-10 16:12:05 -05:00
David Young
98f441a606
Add a new log outlet and some log statements for EOT queue manipulation.
2020-07-10 16:10:41 -05:00
David Young
8aeba09f55
Straggler from previous: bsdqueue.h -> H5queue.h
2020-07-10 16:09:37 -05:00
David Young
847d22244a
Change some H5F_t uses to H5F_shared_t uses: gradually we will rid VFD SWMR of
...
H5F_t.
2020-07-10 16:06:22 -05:00