summaryrefslogtreecommitdiffstats
path: root/src/H5Fvfd_swmr.c
Commit message (Collapse)AuthorAgeFilesLines
* VFD SWMR: sync with develop (#1825)Dana Robinson2022-06-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bin directory sync * doxygen changes * C++ sync with develop * Fortran sync with develop * Sync various docs with develop * Java sync with develop * More doxygen sync with develop * tools sync with develop * h5test.h testing macros get enclosed in do..while loops (#1721) * Minor examples normalization with develop * hl sync with develop * sprintf to snprintf (#1815) * Misc sync w/ develop * Brings some selection I/O bits over from develop * Brings over some const fixes from develop * Brings over more const bits from develop * Minor bits missed in early syncs * Brings over rest of selection I/O * Sync of mirror VFD changes w/ develop * Committing clang-format changes * Adds missing testpar file Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Fixes for:vchoi2022-06-071-3/+3
| | | | | | | | | | | | (1) H5O_refresh_metadata(): address failure when make check-passthrough-vol: use H5VL_object_data() to retrieve the vol object. (2) H5FD__vfd_swmr_open(): use HADDR_UNDEF as maxaddr when opening the underlying hdf5 file; otherwise it will casue problem when the hdf5 file is opened with the core driver. (3) src/H5Fvfd_swmr.c and vfd swmr tests: --Use long long for constant define in H5Fvfd_swmr.c and when snprintf the updater file's sequence number --Modify test/vfd_swmr.c to accommodate endianness of machine and also long long for sequence number --Modify vfd_swmr_bigset_writer.c, vfd_swmr_common.c, vfd_swmr_gfail_writer.c, vfd_swmr_gperf_writer.c to use long long for constant define
* Committing clang-format changesgithub-actions2022-06-031-6/+5
|
* Merge in VFD SWMR changes by John Mainzer.vchoi2022-06-031-4/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit log message from John: Returned VFD SWMR to using the VFD SWMR reader VFD only in the reader case. In passing, added a private VFD SWMR reader VFD fapl entry that is pushed and popped off the FAPL during file open, and removed the code that set the VFD SWMR reader VFD as the driver in the FAPL when VFD SWMR is configured. This was necessary, as there is no mechanism to prevent the user from overwriting this entry on the FAPL before file open. While we don't use it now, it also gives us a mechanism for allowing the user to specify an underlying VFD for VFD SWMR. Modified code to compare file opens to compare the terminal VFDs, not the top level VFDs. Failure to do this allowed multiple opens of the same file with the same VFD but with different pass through VFDs to appear to be treated as different files -- with the obvious file corruption issues. To support this, added a new VFD ctl op code to return a pointer to the instance of H5FD_t associated with the terminal VFD. Note that this change does not address the case of the same file being opened twice with different terminal VFDs -- that will have to be addressed another day. Overview of major changes from John: 1) Reworked file open so that the VFD SWMR reader VFD is only used when a file is opened VFD SWMR reader. This required the following changes: a) Removed code to set the driver in H5Pset_vfd_swmr_config() b) Added a private fapl entry for the VFD SWMR reader VFD c) Modified H5F_open to test for VFD SWMR reader opens, and push the vfd swmr reader vfd FAPL entry on the VFD stack if so. In this case the entry is popped off the VFD stack on exit so as to avoid any net modification from the supplied FAPL. 2) Removed dedup code, and augmented H5FD_cmp() to provide the necessary functionality. This required the following changes: a) Added the get terminal VFD op code to the H5FD ctl call. This allows duplicate file opens with the same VFD but different overlying pass through VFDs to be recognized. Updated ctl callback in VFDs as required to support the new op code. b) Modified H5FD_cmp to use the above ctl op code to allow it to recognize duplicate file opens with the same VFD but with different overlying passthoguh VFDs. This is necessary to recognize duplicate VFD SWMR reader and regular opens. Note that this does not allow us to recognize duplicate opens with different terminal VFDs.
* Committing clang-format changesgithub-actions2022-04-211-9/+10
|
* Modifications to:vchoi2022-04-211-9/+50
| | | | | | | | | | | | A) Allow automatic generation of metadata file names for VDS support B) Allow VFD SWMR reader to open an existing HDF5 file either before the VFD SWMR writer has opened it or after it has closed. C) Remove the usage of H5P_FILE_ACCESS_ANY_VFD. D) Add H5FD_FEAT_SUPPORTS_VFD_SWMR feature flag. E) Do not map H5FD_MEM_GHEAP to H5FD_MEM_DRAW when vfd swmr IS enabled; map H5FD_MEM_GHEAP to H5FD_MEM_DRAW when vfd swmr is NOT enabled. For details regarding #A and #B above, see version 9 of the RFC.
* VFD SWMR: Merges from develop (#1670)Dana Robinson2022-04-211-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Cleans up SWMR test scripts (both legacy and VFD) * Brings over format source changes for Java * Normalization of HL, Fortran, C++, Java w/ develop * Removes the STATIC flavor of FUNC_ENTER macros (#1622) * Removes the STATIC flavor of FUNC_ENTER macros * Remove H5_NO_ALIGNMENT_RESTRICTIONS (#1426) * Do not conditionally compile code that uses a pointer dereference and assignment to copy a potentially unaligned variable to aligned automatic storage, or vice versa. Instead, always use naked `memcpy(3)`s. Disassembling the generated code reveals that the `memcpy(3)`s optimize (`-O3`) to a single `mov` instruction for x86_64, which is not strict about alignment. This change reduces the size of code and scripts by 143 lines, eases our way to cross-compilation, and avoids invoking undefined behavior. * Committing clang-format changes * Per discussion, use HD and add comments. Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> * Removes unused definitions from module headers (#1624) * Misc stuff from develop (includes some parallel things) * Brings over SWMR test quiet mode changes from develop Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* VFD SWMR: Normalization with develop and cleanup (#1559)Dana Robinson2022-03-311-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Brought over plugin and test script changes * Removes remaining register keywords (#1481) * Fixed warnings in the aux process code * Minor fixes from develop * Minor changes from develop, fixed format warnings * Formatted source * Added HD prefix to timespec_get * Cleanup in new files * Removes the MANIFEST file and unused release files (#1497) * Removes the MANIFEST file and unused release files * Updated tar command * checkposix corrections * More checkposix fixes * Ripped out unused instrumentation functionality * Brought over cache tagging changes from develop * Changes to tagged metadata expulsion iteration * Fixed typo * Brought over H5O__free() changes from develop * Brings (unused) parallel page buffer test in line with develop * Moved the functionality in supervise.subr to test_vfd_swmr.sh * Tools VFD parameter updates * Committing clang-format changes * H5F VFD SWMR refactoring * Committing clang-format changes * Misc changes * Acceptance test cleanup * HD prefix * H5_get_option instead of getopt * Some bool fixes * Changes to VFD SWMR acceptance tests * Minor cleanup * Use AC_MSG_RESULT/AC_MSG_ERROR/AC_MSG_WARN instead of echo (#1532) * Merges from develop Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* VFD SWMR: Normalization with develop (#1506)Dana Robinson2022-03-231-424/+383
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Brought over plugin and test script changes * Removes remaining register keywords (#1481) * Fixed warnings in the aux process code * Minor fixes from develop * Minor changes from develop, fixed format warnings * Formatted source * Added HD prefix to timespec_get * Cleanup in new files * Removes the MANIFEST file and unused release files (#1497) * Removes the MANIFEST file and unused release files * Updated tar command * checkposix corrections * More checkposix fixes * Ripped out unused instrumentation functionality * Brought over cache tagging changes from develop * Changes to tagged metadata expulsion iteration * Fixed typo * Brought over H5O__free() changes from develop * Brings (unused) parallel page buffer test in line with develop * Moved the functionality in supervise.subr to test_vfd_swmr.sh * Tools VFD parameter updates * Committing clang-format changes * H5F VFD SWMR refactoring * Committing clang-format changes * Misc changes Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* VFD SWMR: normalization with develop (#1472)Dana Robinson2022-03-061-9/+7
| | | Much normalization with develop. Still needs tools changes wrt VFD plugins.
* VFD SWMR: Aux process changes (#1451)Dana Robinson2022-02-181-1/+0
| | | | | | | | | | | * Removed the aux process submodule * Directly added aux process files after submodule delete * Updated Akadio copyright on appropriate files * Committing clang-format changes Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
* Updated VFD SWMR's Akadio licenseDana Robinson2022-02-171-0/+1
|
* Committing clang-format changesgithub-actions2022-01-041-9/+8
|
* Merge branch 'group_tests_issues' of https://github.com/vchoi-hdfgroup/hdf5 ↵vchoi2022-01-041-6/+6
|\ | | | | | | into group_tests_issues
| * Committing clang-format changesgithub-actions2021-12-211-6/+6
| |
* | (A) Address issue #2 and issue #4 of the group test failures.vchoi2022-01-041-3/+38
|/ | | | | | | | | | | | | | | | | | | | See Kent's documentation "Designed to Fail Tests and Issues". (a) Fix for issue #2: --Print out meaningful message about max_lag when there is checksum error in loading an entry via H5C__load_entry(). --H5C.c: H5C_protect() (b) Fix for issue #4: --Allocate more space when the copy of the index read from the metadata file is bigger than the existing size --H5Fvfd_swmr.c: H5F_vfd_swmr_reader_end_of_tick() (B) When putting the old index into the delayed free list, use the old writer_index_offset instead of the current writer_index_offset --H5Fvfd_swmr.c: vfd_swmr_enlarge_shadow_index() (C) When there is error form calling H5F_vfd_swmr_process_eot_queue() in VFD_SWMR_ENTER(err) and VFD_SWMR_LEAVE(err), should report FAIL instead of "err" --H5private.h: VFD_SWMR_ENTER and VFD_SWMR_LEAVE macros (D) Add tests to verify issue #2 and issue #4 are fixed.
* Address issue #1 and issue #3 of the group test failures.vchoi2021-12-211-1/+24
| | | | | | | | See Kent's documentation "Designed to Fail Tests and Issues". (A) Fix for issue #1: HDassert the < and = cases between old and new entry length. John will take care of the > case. (B) Fix for issue #3: set the cache copy of page_size again if different from f->shared->fs_page_size.
* Fix the failure triggered by running the bigset test with 2D dataset that ↵vchoi2021-12-141-10/+12
| | | | | | | expands for more than 200 times. It is due to the indexing error for the metadata file index and the change list array.
* Committing clang-format changesgithub-actions2021-11-171-137/+141
|
* 1) Core changes for adding NFS/updater support as described in the RFC.vchoi2021-11-171-87/+517
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/H5Pfapl.c src/H5Fvfd_swmr.c src/H5Fpublic.h src/H5Fpkg.h src/H5Fprivate.h 2) For VFD SWMR testing, add private property for checksum generation of metadata files: src/H5Fint.c src/H5Fvfd_swmr.c src/H5Pfapl.c src/H5Fpkg.h src/H5Fprivate.h 3) Fix the following in H5F_vfd_swmr_init() and H5F_vfd_swmr_close_or_flush(): (a) Allocate metadata file index right after metadata file header. (b) Set tick number to 0 when creating header and index for file open case. (c) Remove tick number increment at file close. src/H5Fvfd_swmr.c src/H5Ftest.c 4) To be consistent with the RFC, change the name for field "chksum" to "checksum" in struct H5FD_vfd_swmr_idx_entry_t: src/H5FDprivate.h src/H5FDtest.c src/H5FDvfd_swmr.c src/H5Ftest.c src/H5PB.c 4) Add tests for NFS/updater test/vfd_swmr.c 5) Modify common routine init_vfd_swmr_config() to accept updater_file_path test/vfd_swmr_common.c test/vfd_swmr_common.h 6) Changes to the tests due to the common routine init_vfd_swmr_config(): test/vfd_swmr_addrem_writer.c test/vfd_swmr_attrdset_writer.c test/vfd_swmr_bigset_writer.c test/vfd_swmr_dsetchks_writer.c test/vfd_swmr_dsetops_writer.c test/vfd_swmr_generator.c test/vfd_swmr_gfail_writer.c test/vfd_swmr_gperf_writer.c test/vfd_swmr_group_writer.c test/vfd_swmr_reader.c test/vfd_swmr_remove_reader.c test/vfd_swmr_remove_writer.c test/vfd_swmr_sparse_reader.c test/vfd_swmr_sparse_writer.c test/vfd_swmr_vlstr_reader.c test/vfd_swmr_vlstr_writer.c test/vfd_swmr_writer.c test/page_buffer.c
* Make entry log code as a #define macro as John suggests.myang62021-11-021-3/+3
|
* Committing clang-format changesgithub-actions2021-11-021-7/+6
|
* 1. Close the log file when the file closing flag is true in ↵myang62021-11-021-13/+23
| | | | | | | | H5F_vfd_swmr_close_or_flush(). 2. Move the log test to the group performance test code with an option. 3. Use constant variables for log message lengths. 4. Misc. clean-up.
* Committing clang-format changesgithub-actions2021-10-291-1/+1
|
* Update comments to use the HDF5 timer for the log feature.myang62021-10-291-6/+8
|
* Committing clang-format changesgithub-actions2021-10-291-12/+12
|
* Use HDF5 timer functionmyang62021-10-291-21/+13
|
* Committing clang-format changesgithub-actions2021-10-281-3/+3
|
* Add macros to make windows ignore the HDgetclock_time().myang62021-10-281-0/+12
|
* Committing clang-format changesgithub-actions2021-10-281-4/+4
|
* Modify comments.Muqun Yang2021-10-281-2/+5
|
* Committing clang-format changesgithub-actions2021-10-271-18/+17
|
* Add comments, descriptions for the VFD log feature.myang62021-10-271-25/+78
|
* Remove the compiler warnings.Muqun Yang2021-10-251-1/+11
|
* Committing clang-format changesgithub-actions2021-10-251-1/+1
|
* Update comments, formats etc.myang62021-10-251-29/+5
|
* Committing clang-format changesgithub-actions2021-10-251-6/+6
|
* add macro, need to debug an error caused by using the macromyang62021-10-251-11/+20
|
* Still need to support the NULL pointer in the log report function.myang62021-10-201-0/+4
|
* Committing clang-format changesgithub-actions2021-10-181-1/+1
|
* Merge branch 'vfd_swmr_log' of https://github.com/kyang2014/hdf5 into ↵Muqun Yang2021-10-181-1/+1
|\ | | | | | | vfd_swmr_log
| * Committing clang-format changesgithub-actions2021-10-181-1/+1
| |
* | Revise the H5Fopen log test.Muqun Yang2021-10-181-0/+2
|/
* Merge branch 'vfd_swmr_log' of https://github.com/kyang2014/hdf5 into ↵myang62021-10-181-25/+23
|\ | | | | | | vfd_swmr_log
| * Committing clang-format changesgithub-actions2021-10-181-24/+22
| |
* | Make sure to check the file point.myang62021-10-181-0/+2
|/
* Add the log entry report function, also add logs for 'File open','File ↵myang62021-10-181-2/+50
| | | | close' and 'EOT processing time'
* Committing clang-format changesgithub-actions2021-10-151-3/+3
|
* skeleton of the logging report functionmyang62021-10-151-0/+5
|
* Committing clang-format changesgithub-actions2021-09-131-1/+0
|