summaryrefslogtreecommitdiffstats
path: root/src/H5MF.c
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Checkin of additions to cache image parallel test code andmainzer2017-03-161-0/+6
| | | | | | | | | | | | associated bug fixes. Also, modifications to H5PB_dest() to flush the page buffer before destroying the page buffer. This is necessary, as when persistant free space managers are enabled, the page buffer will typically contain dirty FSM data at page buffer destroy time. Tested serial/debug, serial/production, serial/check-vfd/debug, parallel/debug, parallel/production on Jelly.
* Final merge of page buffering branch to developQuincey Koziol2017-03-141-965/+2517
|
* Bring changes to I/O parameters from page_buffering branch.Quincey Koziol2017-03-131-3/+13
|
* Align w/incoming page buffering changes.Quincey Koziol2017-02-251-66/+67
|
* Switch major error code from H5E_FSPACE [back] to H5E_RESOURCEQuincey Koziol2017-02-181-99/+99
|
* Misc. style cleanups from the page_buffering branch.Quincey Koziol2017-02-181-70/+70
|
* Cache image feature and testingQuincey Koziol2017-01-291-2/+2
|
* Bring file shutdown code from cache image branchQuincey Koziol2017-01-051-70/+654
|
* Merge code from cache image branch to split FSM ring into two types: raw dataQuincey Koziol2017-01-041-42/+226
| | | | and metadata. Also, some more ring reset safeties and minor code cleanups.
* Align w/incoming cache image changes, and improve recovery on errors.Quincey Koziol2017-01-041-23/+23
|
* Remove 'const' from cache client pre_serialize callback, to reduce warnings,Quincey Koziol2017-01-031-19/+19
| | | | | and correspondingly remove 'const' from some internal routines. Also rename some H5MF* routines to reflect their static/package usage.
* More normalizations against incoming cache image branch.Quincey Koziol2016-12-291-2/+2
|
* Changed the name of H5MF_alloc_close() to H5MF__alloc_close()Dana Robinson2016-11-301-6/+6
| | | | to make the FUNC_ENTER macro happy.
* Added missing TAG macros to H5MF_get_freespace().Dana Robinson2016-11-301-2/+2
|
* Added TAG macros to the H5MF package code so H5AC__FREESPACE_TAGDana Robinson2016-11-301-20/+20
| | | | | | gets set on the dxpl correctly. Also restored the TAG macro to H5FS__cache_hdr_pre_serialize() since otherwise the tag won't be initialized.
* [svn-r29924] Description:Quincey Koziol2016-05-121-49/+139
| | | | | | | | Bring h5format_convert tool from revise_chunks branch to trunk. Tested on: MacoSX/64 10.11.4 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r29548] Minor normalization w/ trunk in preparation for big merge.Dana Robinson2016-03-241-1/+1
| | | | | | Tested on: 64-bit Ubuntu 15.10 w/ gcc 5.2.1 autotools serial autotools parallel (MPICH 3.1.4)
* [svn-r29202] Fix for unknown message HDFFV-9697.Vailin Choi2016-02-241-2/+2
| | | | Tested on jam, ostrich, platypus, kite, quail, osx1010test, emu, mayll, moohan.
* [svn-r27768] Description:Quincey Koziol2015-09-141-7/+10
| | | | | | | | | | | | | | | | | | | | | | Complete revamp of package initialization/shutdown mechanism in the library. Each package now has a single init/term routine. This new way should avoid packages being re-initialized during library shutdown and is also be _much_ more proactive about giving feedback for resource leaks internal to the library. Introduces a new "module" header file for packages in the library (e.g src/H5Fmodule.h) which sets up some necessary package configuration macros for the FUNC_ENTER/LEAVE macros. (The VFL drivers have their own slightly modified version of this header, src/H5FDdrvr_module.h) Also cleaned up a bunch of resources leaks all across the library and tests, along with addressing many warnings, as I encountered them. Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel Linux/64 3.10.x (kituo) w/serial & parallel Linux/64 2.6.x (ostrich) w/serial
* [svn-r27710] Description:Quincey Koziol2015-09-091-0/+80
| | | | | | | | | Bring the "metadata rings" code from its branch (mdc_rings_v2) to the trunk. (This change will support the page buffering feature) Tested on: MacOSX/64 10.10.5 (amazon) w/serial & parallel (h5committest forthcoming)
* [svn-r27144] Description:Quincey Koziol2015-06-031-3/+3
| | | | | | | | | | Normalize trunk against the metadata_cache_merge branch, in preparation for merging the branch into the trunk. Tested on: MacOSX/64 10.10.3 (amazon) w/serial & parallel Linux/64 2.6.x (koala) w/serial Linux/32 2.6.x (jam) w/serial & parallel