summaryrefslogtreecommitdiffstats
path: root/src/H5Cprivate.h
Commit message (Collapse)AuthorAgeFilesLines
* Updates license url and history docsDana Robinson2021-03-251-1/+1
|
* Formats the source and updates the gcc warning pragmasDana Robinson2021-03-251-440/+398
|
* Modified page buffer to split entries only where necessary -- specificallymainzer2020-05-211-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | when handling an I/O request on a metadata entry that has been sub-allocated from a larger file space allocation (i.e. fixed and extensible array), and that crosses at least one page boundary. . This required modifying the metadata cache to provide the type of the metadata cache entry in the current I/O request. For now, this is done with a function call. Once we are sure this works, it may be appropriate to convert this to a macro, or to add a flags parameter to the H5F block read/write calls. Also updated the metadata cache to report whether a read request is speculative -- again via a function call. This allowed me to remove the last address static variable in the H5PB_read() call, which is necessary to support multiple files opened in VFD SWMR mode. Also re-wrote the H5PB_remove_entries() call to handle release of large metadata file space allocations that have been sub-allocated into multiple metadata entries. Also modified the call to H5PB_remove_entries() in H5MF__xfree_impl() to invoke it whenever the page buffer is enabled and the size of the space to be freed is of page size or larger. Tested serial / debug on charis and Jelly. Found a bug in H5MF_xfree_impl(), in which the call to H5PB_remove_entries() is skipped due to HGOTO_DONE calls earlier in the function. While the obvious action is to move the call earlier in the function, best to consult with Vailin first, as there is much going on and it would be best to avoid making the situation worse. If nothing else, there are some error management issues.
* Reduce diffs with `develop`.David Young2020-05-201-1/+1
|
* Reduce diffs with `develop`, where `H5C_move_entry` takes an `H5C_t *`David Young2020-05-201-1/+1
| | | | argument, first, not `H5F_t *`.
* Trim trailing whitespaceQuincey Koziol2020-05-201-279/+279
|
* Add a log outlet for metadata cache (MDC) invalidations,David Young2020-04-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | `mdc_invalidation`, and use it to log a message when H5C_evict_or_refresh_all_entries_in_page() does not find any affected entries. Pass a page length to H5C_evict_or_refresh_all_entries_in_page() so that it can assert if a multipage eviction overlaps a single-page entry, which had better not happen. Fix a bug in H5F_vfd_swmr_reader_end_of_tick() and heavily rework it: remove page-table entries and evict/refresh MDC entries that overlap *added* shadow-index entries. Because we didn't do that before, in the zoo test, the reader didn't see all of the changes made by the writer until the writer closed the file: MDC entries covered the new content in the shadow file. In H5F_vfd_swmr_reader_end_of_tick(), log changes to the shadow index with the new outlet, `shadow_index_update`. Convert a some of John's disused diagnostic printfs to an `hlog_fast(eot, ...)` call.
* Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,David Young2019-12-091-14/+16
| | | | | | | | 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!
* Intermin commit to allow update from Vailin's recent changesmainzer2019-01-151-0/+2
|
* Interim checkin to allow Vailin to address assertion failure inmainzer2019-01-031-36/+195
| | | | | | | | | | | | | | | | the memory manager -- details shown below. Note that there are other issues as well -- this is not a working version. [mainzer@jelly test]$ ./vfd_swmr Testing Configure VFD SWMR with fapl PASSED Testing VFD SWMR configuration for the file and fapl PASSED Testing H5Fvfd_swmr_end_tick() for VFD SWMR PASSED Testing Create/Open/Flush an HDF5 file for VFD SWMR PASSED Testing Verify the metadata file for VFD SWMR writer vfd_swmr: H5MVsection.c:233: H5MV__sect_can_merge: Assertion `((sect1->sect_info.addr)!=((haddr_t)(long)(-1)) && (sect2->sect_info.addr)!=((haddr_t)(long)(-1)) && (sect1->sect_info.addr)<(sect2->sect_info.addr))' failed. Abort (core dumped) [mainzer@jelly test]$
* Preliminary checkins for implementation done so far:Vailin Choi2018-08-141-1/+1
| | | | | | | | | | | | 1) Public routines: H5Pget/set_vfd_swmr_config 2) Public routine: H5Fvfd_swmr_end_tick 3) Initialization when opening a file with VFD SWMR writer 4) Tests in test/vfd_swmr.c for VFD SWMR 5) Fix a bug in src/H5Fint.c: when error is encountered after the root group is created Note the following: --This is WORK IN PROGRESS and will subject to change as implementation goes. --There is test failure form enc_dec_plist.c: I will fix this when changes to the property list are settled. --The branch is updated with the latest from develop as of 8/14/2018
* Fixed HDFFV-10404Binh-Minh Ribler2018-07-131-12/+12
| | | | | | | | | 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
* Add API context interface and use it throughout the library.Quincey Koziol2018-03-151-32/+25
|
* Better segregate clean & dirty LRU lists so that they are only defined whenQuincey Koziol2017-09-301-0/+2
| | | | the H5C_MAINTAIN_CLEAN_AND_DIRTY_LRU_LISTS macro is defined.
* 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 fix for CGNS bugmainzer2017-04-061-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (https://jira.hdfgroup.org/browse/HDFFV-10055). Briefly, in H5C_collective_write() in H5Cmpio.c, the metadata cache attempts to perform a collective write of metadata cache entries. This worked fine as long as all processes had at least one entry to write. However, when the process has no entries, the function tries to participate in the collective write by calling MPI_File_set_view(), MPI_File_write_all() and then MPI_File_set_view() again, to match the calls in H5FD_mpio_write(). After pull request 183, the CGNS test benchmark_hdf5 started failing. On investigation, I determined that the failure occurred in the first call to MPI_File_set_view() in the "no data to write" path through H5C_collective_write(). Note that pull request 183 did not create the problem, it only exposed it. The bug can be observed after pull request 182 if one executes the CGNS progam src/ptests/benchmark_hdf5 with 90 processes. The problem appears to have been that the calls to MPI_File_set_view() in H5C_collective_write() and H5FD_mpio_write() were using different values for the info parameter. I patched the problem by adding a MPI specific VFD call allowing me to get the MPI_Info used in H5FD_mpio_write() for use in MPI_File_set_view() calls in H5C_collective_write(). Tested serial & parallel, debug & production on Jelly.
* Revert "Switch h5clear for cache images to use existing ↵Quincey Koziol2017-03-221-0/+1
| | | | | | H5Pget_cache_image_config()" This reverts commit dd5105fc9912c77f6d6074700d83e5e8282e86c9.
* Final merge of page buffering branch to developQuincey Koziol2017-03-141-0/+5
|
* Minor cleanups and bring over "prefetched dirty" fixes for entries loaded fromQuincey Koziol2017-03-121-8/+50
| | | | a cache image.
* Normalize against incoming page buffering changes.Quincey Koziol2017-03-011-2/+3
|
* Corrected version of 4b5e05c084f93c35dae946c2c9e814d565a613b0:Quincey Koziol2017-02-281-4/+4
| | | | | Fix some more signed -> unsigned value issues with cache data structures, also misc. style cleanups. All to align w/incoming page_buffering changes.
* Revert "Fix some more signed -> unsigned value issues with cache data ↵Quincey Koziol2017-02-281-3/+3
| | | | | | structures, also" This reverts commit 4b5e05c084f93c35dae946c2c9e814d565a613b0.
* Fix some more signed -> unsigned value issues with cache data structures, alsoQuincey Koziol2017-02-231-3/+3
| | | | misc. style cleanups. All to align w/incoming page_buffering changes.
* Cache image feature and testingQuincey Koziol2017-01-291-4/+470
|
* Bring change to use array of metadata cache entry classes for H5C_createQuincey Koziol2017-01-281-2/+2
| | | | instead of array of class names from cache image branch.
* Switch list lengths to unsigned integers (to align better w/cache image merge)Quincey Koziol2017-01-281-1/+1
|
* Bring changes to metadata cache "get entry status" call and newQuincey Koziol2017-01-061-1/+19
| | | | | "child serialized / unserialized" messages and support from the cache image branch.
* Add "image up to date" flag / parameter to metadata cache entry status calls.Quincey Koziol2017-01-061-1/+2
|
* Bring file shutdown code from cache image branchQuincey Koziol2017-01-051-1/+7
|
* Merge code from cache image branch to split FSM ring into two types: raw dataQuincey Koziol2017-01-041-6/+9
| | | | and metadata. Also, some more ring reset safeties and minor code cleanups.
* Remove 'const' from cache client pre_serialize callback, to reduce warnings,Quincey Koziol2017-01-031-2/+2
| | | | | and correspondingly remove 'const' from some internal routines. Also rename some H5MF* routines to reflect their static/package usage.
* Bring support for doubly-linked list of all entries in cache from incomingQuincey Koziol2016-12-301-0/+21
| | | | cache image branch.
* More normalizations against incoming cache image branch.Quincey Koziol2016-12-291-28/+25
|
* Updated the H5FS cache code to grab the correct tag and modifiedDana Robinson2016-12-081-0/+1
| | | | | | | | the freespace test to use dxpls that have been tagged with the H5AC__FREESPACE_TAG global tag instead of H5AC_ind_read_dxpl_id. The library code now expects the owner of the free space manager to tag it so the owner-less free space managers in the freespace tag had to be tagged with *something* to avoid cache errors.
* Bring SWMR support in to the main development branch. (Finally!) More testsQuincey Koziol2016-12-021-1/+7
| | | | and the tool and API wrappers will be coming in over the weekend.
* Add a flag for H5C__flush_single_entry() to allow the parallel code to requestQuincey Koziol2016-11-251-0/+2
| | | | | that images for entries be generated, even when not writing the entry from an MPI rank.
* Bring over support for retrying metadata cache entry loads, along with all theQuincey Koziol2016-11-201-55/+110
| | | | supporting metadata cache callback changes, etc.
* Remove 'clear' callback from metadata cache client interface, using theQuincey Koziol2016-11-181-62/+1
| | | | new 'entry cleaned' notify action innstead.
* Remove explicit support within the metadata cache for tracked compressedQuincey Koziol2016-11-171-304/+49
| | | | entries, they are now completely handled in the clients.
* Bring over new 'notify' metadata cache client callback actions for when anQuincey Koziol2016-11-121-1/+5
| | | | | entry is cleaned / dirtied or its [flush dependency] child entry is cleaned / dirtied.
* Align w/minor cleanups in revise_chunks branch.Quincey Koziol2016-11-121-10/+25
|
* Clean up cache code to eliminate dead-ends and unify code.Quincey Koziol2016-11-101-17/+19
|
* Switch to new, more scalable, metadata cache entry tagging.Quincey Koziol2016-11-071-25/+6
|
* Add logging prototypes and cache struct fields.Quincey Koziol2016-11-041-0/+7
|
* [svn-r30118] Sync with trunk.Dana Robinson2016-06-291-36/+19
|\
| * [svn-r30112] Description:Quincey Koziol2016-06-281-36/+19
| | | | | | | | | | | | | | | | | | | | Move updated flush dependency code in metadata cache from revise_chunks branch to trunk. Also many of the cleanups from r30111 in the revise_chunks branch. Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production (h5committest forthcoming)
* | [svn-r30104] Fixes evict-on-close feature by propagating globalDana Robinson2016-06-241-1/+1
|/ | | | | flush flag up the function call stack and not setting it during H5Dclose().
* [svn-r30075] Description:Quincey Koziol2016-06-141-0/+1
| | | | | | | | | | Bring object/dataset/group/named datatype features from revise_chunks branch to trunk. Also CMake support for h5format_convert and a bunch of misc. cleanups. Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r30068] Description:Quincey Koziol2016-06-131-1/+11
| | | | | | | | Bring metadata cache corking to trunk. Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production (h5committest forthcoming)
* [svn-r30053] Description:Quincey Koziol2016-06-081-1/+1
| | | | | | | | | Create iterator routine for tagged entries and refactor current routines to use it. Tested on: MacOSX/64 10.11.5 (amazon) w/serial, parallel & production (h5committest forthcoming)