summaryrefslogtreecommitdiffstats
path: root/src/H5MF.c
Commit message (Collapse)AuthorAgeFilesLines
* H5MF.c cleanupDana Robinson2021-03-021-123/+25
| | | | | | * Removes hlog code * Mostly meets THG coding standards now * Still needs commenting and probably another tidying pass
* Switches H5MF memory calls to use H5MMDana Robinson2021-03-021-2/+2
|
* Merge branch 'aug-develop' into aug-merge-attempt/feature/vfd_swmrDavid Young2020-08-041-1/+2
|\
| * Minor normalizations with HDF5 1.10.Dana Robinson2020-06-071-1/+2
| |
| * Trim trailing whitespaceQuincey Koziol2020-04-201-105/+105
| |
| * merge and fix conflictkmu2020-01-191-1/+1
| |
| * Yanked -Wc++-compat from the flags used to build the C library in bothDana Robinson2019-12-041-24/+24
| | | | | | | | the Autotools and CMake.
| * Switch shared file struct name from 'H5F_file_t' to 'H5F_shared_t', to matchQuincey Koziol2019-08-221-9/+9
| | | | | | | | naming convention for shared structs in rest of library data structures.
| * Small tidy up.Quincey Koziol2019-08-211-10/+8
| |
| * Progress toward movig H5MF* API to use shared file pointers instead of topQuincey Koziol2019-08-211-37/+34
| | | | | | | | file pointers.
| * Progress on moving the H5MF* interface to using shared file pointers instead ofQuincey Koziol2019-08-211-39/+38
| | | | | | | | top file pointers.
| * Begin converting the H5MF interface to use shared file pointers insteadQuincey Koziol2019-08-211-50/+54
| | | | | | | | of top file pointers.
| * Finish converting H5PB_* routines to use shared file pointer, instead of topQuincey Koziol2019-08-201-1/+1
| | | | | | | | file pointer.
| * Rest of changes for 'top' file pointer to 'shared' file pointer for H5F__accumQuincey Koziol2019-08-191-3/+2
| | | | | | | | routines.
| * (1) Add/remove comments.Vailin Choi2019-06-271-92/+32
| | | | | | | | | | | | | | | | | | | | | | (2) A temporary fix to address the test/objcopy.c: test_copy_group_deep() test failure with the family driver. The test failure occurs with these configurations in objcopy.c: --with shared src messages (CONFIG_SHARE_SRC) --without shared dst messages (CONFIG_SHARE_DST) --with latest format for source file (CONFIG_SRC_NEW_FORMAT) --without dense attributes (CONFIG_DENSE) --with latest format for destination file (CONFIG_DST_NEW_FORMAT) The temporary fix is in src/H5MFaggr.c (see comments above #ifdef REPLACE/#endif).
| * Merge branch 'develop' of ↵Vailin Choi2019-06-261-0/+3
| |\ | | | | | | | | | https://bitbucket.hdfgroup.org/scm/~vchoi/my_third_fork into bugfix/new_shutdown_fsm
| | * Fix for HDFFV-10808 H5Pset_file_space_strategy succeeds when using ↵Vailin Choi2019-06-241-0/+3
| | | | | | | | | | | | | | | | | | | | | H5Pset_libver_bounds v18,v18. Fails file creation when non-default free-space info is set in fcpl and the library version high bound is less than v110 because free-space info message is introduced in library release v110.
| * | Checkin for new shutting down free-space manager.Vailin Choi2019-06-201-374/+108
| |/
* | Add all extant virtual files to a list. Add an "exclusive owner" (`exc_owner`)David Young2020-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | member to all virtual files. Add a routine, H5FD_has_conflict(), that returns true if a new virtual file is identical to an existing virtual file that has an exclusive owner. Establish an exclusive owner for a VFD SWMR virtual file's lower virtual file. Rename bsdqueue.h to H5queue.h and install it, since it's used by H5FDpublic.h. This is part of a changeset that helps us avoid creating multiple H5F_shared_t for one file when virtual datasets are used with VFD SWMR. The old code for deduplicating VFD SWMR H5F_shared_t instances did not work correctly with VFD SWMR, so we'd end up with multiple H5F_shared_t all active on the same file.
* | Repair a bunch of H5_ATTR_SANITY_CHECK uses that should have beenDavid Young2020-05-201-1/+2
| | | | | | | | | | H5_ATTR_NDEBUG_UNUSED. This really makes me wonder what else I have screwed up in this merge....
* | Trim trailing whitespaceQuincey Koziol2020-05-201-105/+105
| |
* | Yanked -Wc++-compat from the flags used to build the C library in bothDana Robinson2020-05-201-24/+24
| | | | | | | | the Autotools and CMake.
* | In H5MF__xfree_impl(), always invalidate the page-table entriesDavid Young2020-05-111-20/+53
| | | | | | | | | | overlapped by the freed region. Previously, the page-table entries were only freed on one success path through _xfree_impl().
* | Bug fix: in the freespace manager, use a new routine,David Young2020-04-231-1/+1
| | | | | | | | | | H5PB_remove_entries(), to remove *all* pages overlapped by the freed space, instead of just the first one.
* | Be brief: remove commas and equal signs from diagnostic log messages.David Young2020-04-081-18/+19
| |
* | Make some changes to conserve filespace and ensure that all filespace isDavid Young2020-04-061-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | eventually reclaimed. Defer reclamation of raw data filespace, only. XXX Deferring only raw-data reclamation isn't *quite* sufficient because XXX a writer could conceivably reuse metadata space as raw-data space XXX before max_lag ticks have elapsed. Readers could see metadata XXX corrupted by raw data. Once a file starts to close, stop deferring reclamation. In H5MF_free_aggrs(), perform all deferred reclamations if the file is closing.
* | Improve diagnostic logging.David Young2020-04-021-7/+26
| |
* | Rename process_deferred_frees as H5MF_process_deferred_frees and make itDavid Young2020-03-311-7/+6
| | | | | | | | | | | | available to other files. Make the tick number a parameter instead of using the f->shared->tick_num, so that we can pass a maximal tick number and that way reclaim all of the deferred frees.
* | Add log outlets. Convert existing #ifdef H5MF_ALLOC_DEBUG{,_MORE} debugDavid Young2020-03-301-77/+74
| | | | | | | | fprintf's to hlog_fast() calls. Add some new hlog_fast() calls.
* | Delete ridiculous comments. Remove superfluous curly braces. NFCI.David Young2020-03-301-10/+7
| |
* | Add log outlets `h5mf` and `h5mf_defer` and write some diagnosticDavid Young2020-02-241-7/+29
| | | | | | | | | | | | | | | | | | | | messages to them. Move and update a comment about removing (all) items from the deferred queue before processing them. Bug fix: don't leak file space, add back to the deferred queue all items that were not disposed of.
* | In process_deferred_frees(), remove *all* deferred frees from theDavid Young2020-02-181-2/+5
| | | | | | | | | | | | | | | | | | | | | | H5F_shared_t's queue before processing any, instead of removing just one, processing it, removing another, processing it, and so on. While we processed the first entry on the queue, we often called H5MF_xfree() again, which called process_deferred_frees() again, which processed the first entry, calling H5MF_xfree() again, and on and on, until the deferred frees list was exhausted. This deep recursion showed up as a wide, tall stack in my flame graphs. Taking all deferred entries off of the queue to start definitely breaks the recursion and saves processing time.
* | Rename the deferred-free queues. There are two of them, and the names I usedDavid Young2020-02-061-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | for them did not help me keep track of what they were for. For brevity, I will call a deferred free record a "defree" in the code. The deferred_free_queue_t becomes a lower_defree_queue_t, and each record on the queue becomes a lower_defree_t. A lower_defree_t tracks one deferred free on the lower VFD---that is, the one under the SWMR VFD. The old_image_queue_t becomes a shadow_defree_queue_t, and a record therein is a shadow_defree_t. A shadow_defree_t tracks one deferred free on the shadow file.
* | Tell the tick number in diagnostic messages.David Young2019-12-181-2/+3
| |
* | 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.
* | Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,David Young2019-12-091-600/+333
| | | | | | | | | | | | | | | | 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!
* | Fixes for issues #1 and #2 listed in John's email dated Dec 7 2018:Vailin Choi2018-12-191-0/+11
| | | | | | | | | | | | | | | | (1) Assertion failure in the vfd_swmr test (2) Reader error in the vfd swmr concurrent tests Also fixes for: (a) Use H5MV_alloc() to allocate space for md_pages_reserved when creating the metadata file in H5F__vfd_swmr_init() (b) Remove a multi-page (when vfd_swmr_writer is true) from the page buffer in H5MF_xfree()
* | (A) Fixes for the assertion failures described in issue #2 (see John ↵Vailin Choi2018-11-141-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | Mainzer's last checkin message): --src/H5PB.c: checks for size >= page size --src/H5MF.c: disable/enable page buffering in H5MF_tidy_self_referential_fsm_hack() --src/H5MFsection.c: call H5PB_remove_entry() for both raw/metadata pages in H5MF__sect_small_merge() (B) Port and modify existing concurrent swmr tests to VFD SWMR. Also modify the following: --remove flushes from VFD SWMR writer tests --set Nreaders to 0 in test/testvfdswmr.sh.in to test for writers only Please enter the commit message for your changes. Lines starting
* | Initial checkin of page buffer re-implementation to support VFD SWMR.mainzer2018-11-041-1/+1
|/ | | | | | | | | | | | | | | | | | | | | | Tested serial / debug on Charis and Jelly. Two known issues: 1) New page buffer seems to expose issues in the accumulator code. For whatever reason, fheap with the new page buffer exposes corruption issues if the page buffer uses H5F__accum_read/write(), but the problems go away if the page buffers uses H5FD_read/write() instead. Need to either chase this or dis-able page bufffer in combination with the accumulator. 2) Encountered a number of assertion failures that are explainable by the free space manager code not telling the page buffer to discard pages when they are freed. Wrote code to handle this -- once the free space manager is modified, this code should be removed and the original assertions restored.
* Normalization with vol_integration (test code and H5Xtest.c)Dana Robinson2018-09-201-0/+3
|
* Merge branch 'develop' of ↵Larry Knox2018-07-181-11/+11
|\ | | | | | | https://bitbucket.hdfgroup.org/scm/~lrknox/hdf5_lrk into develop
| * Fixed HDFFV-10404Binh-Minh Ribler2018-07-131-11/+11
| | | | | | | | | | | | | | | | | | Description: Applied the typo fixes from user's report. The previous pull request couldn't be merged because it was too old, and it was too complicated for me to resolve conflicts. Platform tested: Linux/64 (jelly) - very minor
* | Apply Cygwin pathches from Marco Atzeri.Larry Knox2018-07-181-9/+9
|/ | | | Commit Joe Lee's typo corrections for src/H5MF.c.
* Normalize with vol_integration.Dana Robinson2018-05-291-93/+106
|
* Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into ↵Quincey Koziol2018-03-181-3/+1
|\ | | | | | | | | | | merge_func_enter_vol Plus initial steps toward merging API context push into FUNC_ENTER_API* macros
* | Add API context interface and use it throughout the library.Quincey Koziol2018-03-151-474/+336
|/
* Fixed misc Warnings flagged by VS2017.Dana Robinson2017-11-271-1/+4
|
* Style cleanups and misc. bugfixes discovered during full SWMR development.Quincey Koziol2017-09-231-0/+1
|
* Changes made based on RFC review commentsVailin Choi2017-07-181-1/+1
| | | | Test the changes in a branch via daily testing.
* Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to ↵Larry Knox2017-04-251-6/+4
| | | | | | | | | | hdf5_1_10 * commit '54957d37f5aa73912763dbb6e308555e863c43f4': Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes. Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh. Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1 Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.