summaryrefslogtreecommitdiffstats
path: root/src/H5Fpkg.h
Commit message (Collapse)AuthorAgeFilesLines
* Squashed commit of the token_refactoring branch:Dana Robinson2020-05-201-1/+0
|
* Remove H5VL_NATIVE_FILE_GET_FILE_ID and add H5VL_OBJECT_GET_FILEJerome Soumagne2020-05-201-1/+0
| | | | Remove H5F__get_file_id() and use only private routine instead
* Implement H5VLget_file_type() to return a copy of a datatype with theNeil Fortner2020-05-201-0/+2
| | | | | | | | | | | location set to be in a file. Only meant to be used by VOL connectors. Implement H5VLpeek_connector_id() to support connectors querying their own IDs. Fix app_ref with connector IDs in a couple places (external VOLs registered as default through ENV should be visible to the application). Modify vlen and reference interfaces to work with arbitrary VOL connectors. Implement file "post open" specific callback, to enable connectors to update their file structs after a wrap context has been set.
* Extract a routine from shadow_image_defer_free(), shadow_range_defer_free(),David Young2020-02-061-1/+1
| | | | | that works in byte offsets rather than page offsets. Use shadow_range_defer_free() to defer shadow-index frees.
* Delete the hdf5_page_offset member of shadow_defree_t, it is initialized butDavid Young2020-02-061-1/+0
| | | | never read.
* Rename the deferred-free queues. There are two of them, and the names I usedDavid Young2020-02-061-10/+11
| | | | | | | | | | | | | | 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.
* Move the bsdqueue.h #inclusion up with the other #inclusions.David Young2020-02-061-2/+3
|
* Numerous changes supporting a floating shadow index:David Young2020-02-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Add to the H5F_shared_t (!) a new member that tells the index in the shadow file where the index should be written. Allocate shadow filespace for the header and the index separately so that the index can float. Update tests to match the expected original location of the index. Introduce vfd_swmr_enlarge_shadow_index(), a routine that allocates space in the shadow file for a new index that has (up to) twice as many entries as the old index, allocates a new in-core index of the same size, and copies the old in-core index to the new. Call vfd_swmr_enlarge_shadow_index() in H5PB_vfd_swmr__update_index() when the in-core index has too few slots. In the comment at the top of H5FD__vfd_swmr_load_hdr_and_idx(), describe the protocol that it follows, now, when it reads the shadow header and index. Delete some dead code in the function and add a bit of diagnostic code. TBD quiet the diagnostic code. In H5F_vfd_swmr_init(), follow the protocol: write the index, first, then the header. Modify property-list checks and tests to reserve no fewer than two pages at the front of the shadow file for the header and index.
* Consolidate shadow-file allocation code in H5MV.c.David Young2020-01-301-6/+0
|
* Use the "tail queue" from queue(3) for the delayed free list of shadow images.David Young2019-12-191-14/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Delete the little-used free-list length, dl_len, and just count up the list entries when diagnostic code needs the length. Extract the code for deferring shadow-image free into a new subroutine, `vfd_swmr_idx_entry_defer_free()`. Rename type `deferred_free_head_t` as `deferred_free_queue_t`. Remove the disused H5F__LL_{REMOVE,PREPEND} macros. Add some diagnostic code and #if 0'd assertions. Change `qsort(ptr, n, sizeof(type), cmp)` to `qsort(ptr, n, sizeof(*ptr), cmp)`. Use a `continue` statement to lower a staircase in H5F_update_vfd_swmr_metadata_file(). Add vfd_swmr_mdf_idx_entry_remove() to delete a shadow index entry and add the image at that entry to a deferred-free list. Call it whenever a page is evicted. Update the comment in H5PB_remove_entry() that asks if we need to remove shadow index entries: now we *do* remove them. Remove shadow index entries in H5PB__evict_entry(). Also mention in the comment that the index-entry removal performed by H5PB__evict_entry() ought to be sufficient.
* There's no need to name parameters in a function declaration, and it makes themDavid Young2019-12-181-2/+2
| | | | very long, so just delete the parameters.
* Fix some typos. NFCI.David Young2019-12-131-1/+1
|
* Wrap some comments at <= 80 characters.David Young2019-12-101-6/+7
|
* Fix typo. NFCI.David Young2019-12-101-1/+1
|
* Merge all of my changes from merge-back-to-feature-vfd_swmr-attempt-1,David Young2019-12-091-61/+68
| | | | | | | | 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!
* Remove the last (?) vestige of gettimeofday alternate implementation ofDavid Young2019-11-191-4/+0
| | | | VFD SWMR.
* Quiet warnings, especially signed/unsigned casts.dyoung2019-08-221-4/+4
|
* Interim checkin to allow Vailin to address assertion failure inmainzer2019-01-031-0/+10
| | | | | | | | | | | | | | | | 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]$
* interim checkin of VFD SWMR writer EOT code.mainzer2018-12-071-0/+4
| | | | | Added code supporting first cut at the writer end of tick operations. Tested (to the extent possible) on charis and jelly.
* local commit of first cut at vfd swmr writer EOT code.mainzer2018-11-191-8/+54
| | | | | | This is necessary to allow access to Vailin's recent changes This version passes non-swmr tests in a serial / debug build on charis.
* Initial checkin of page buffer re-implementation to support VFD SWMR.mainzer2018-11-041-1/+3
| | | | | | | | | | | | | | | | | | | | | | 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.
* 1) Add concurrent test for VFD SWMR readerVailin Choi2018-10-291-4/+3
| | | | 2) Bug fixes in H5FDvfd_swmr.c
* (1) Add tests for VFD SWMR writerVailin Choi2018-10-221-2/+8
| | | | (2) Bug fixes
* Third batch of checkin:Vailin Choi2018-09-281-1/+45
| | | | | | | | | | 1) Free space manager for the metadata file 2) Delayed free space release linked list 3) H5F_update_vfd_swmr_metadata_file() 3) VFD SWMR driver: read callback 4) Flushing for VFD SWMR 5) Port one concurrent test from swmr test set 6) Bug fixes and refactoring
* Merge branch 'develop' of ↵Vailin Choi2018-09-261-19/+25
|\ | | | | | | | | | | | | | | | | | | https://bitbucket.hdfgroup.org/scm/~vchoi/my_hdf5_fork into feature/vfd_swmr Conflicts: src/H5AC.c src/H5F.c src/H5Pfapl.c Resolve conflicts for H5AC.c, H5F.c and H5Pfapl.c
| * Remainder of vol_normalization changes (dataset, attribute, files, objects).Dana Robinson2018-09-241-8/+19
| |
| * Normalization with vol_integration (test code and H5Xtest.c)Dana Robinson2018-09-201-5/+5
| |
| * Removed 'VOL' versions of FUNC_ENTER macros as well as empty functionsDana Robinson2018-09-181-6/+1
| | | | | | | | orginally intended to support the full SWMR feature.
* | Preliminary checkins for implementation done so far:Vailin Choi2018-08-141-0/+9
|/ | | | | | | | | | | | 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-1/+1
| | | | | | | | | 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
* Normalization with vol_integration branch.Dana Robinson2018-06-071-36/+26
|
* Merge remote-tracking branch 'origin/develop' into merge_func_enter_volQuincey Koziol2018-04-011-0/+1
|\
* \ Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into ↵Quincey Koziol2018-03-181-13/+18
|\ \ | |/ | | | | | | | | merge_func_enter_vol Plus initial steps toward merging API context push into FUNC_ENTER_API* macros
| * Enhancement to the tool h5clear (HDFFV-10360)Vailin Choi2018-03-121-1/+2
| |
| * Merge branch 'develop' into bugfix/version_boundsVailin Choi2017-12-081-12/+13
| |\ | | | | | | | | | Merge from develop.
| | * Normalization with VOL integration branch.Dana Robinson2017-12-051-12/+13
| | |
| * | Initial checkin for library version boundsVailin Choi2017-10-031-1/+2
| |/ | | | | | | Code changes to provide versioning support when adding to the enumerated defines for H5F_libver_t.
* | Add API context interface and use it throughout the library.Quincey Koziol2018-03-151-32/+41
|/
* Style cleanups and misc. bugfixes discovered during full SWMR development.Quincey Koziol2017-09-231-15/+15
|
* 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.
* Final merge of page buffering branch to developQuincey Koziol2017-03-141-19/+40
|
* Bring changes to I/O parameters from page_buffering branch.Quincey Koziol2017-03-131-10/+12
|
* Cache image feature and testingQuincey Koziol2017-01-291-1/+8
|
* Bring change to use array of metadata cache entry classes for H5C_createQuincey Koziol2017-01-281-3/+0
| | | | instead of array of class names from cache image branch.
* Bring file shutdown code from cache image branchQuincey Koziol2017-01-051-0/+8
|
* Bring SWMR support in to the main development branch. (Finally!) More testsQuincey Koziol2016-12-021-3/+23
| | | | and the tool and API wrappers will be coming in over the weekend.
* Bring over support for retrying metadata cache entry loads, along with all theQuincey Koziol2016-11-201-0/+8
| | | | supporting metadata cache callback changes, etc.
* Switch to new, more scalable, metadata cache entry tagging.Quincey Koziol2016-11-071-0/+1
|
* Add cache logging property and file pieces.Quincey Koziol2016-11-041-0/+4
|
* [svn-r30084] First pass at the evict-on-close feature.Dana Robinson2016-06-151-0/+1
| | | | | | | | | | The features is controlled via H5Pset/get_evict_on_close() and is currently enabled by default (it will be disabled by default in the final implementation). There is a bug in the code where the eviction of tagged metadata fails due to some of the metadata being dirty, resulting in error return values and test failures.