summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* `tick_num_g` has been gone for a while, so do not refer to it inDavid Young2020-04-131-6/+6
| | | | comments any longer.
* Add clean_shadow_index() for removing shadow-index entries that wereDavid Young2020-04-131-4/+51
| | | | | flushed more than max_lag ticks ago. This conserves space in the shadow file, which would grow great big while the `credel` demo ran.
* Add H5MV split method for alignment.vchoi2020-04-131-24/+57
|
* Check whether or not the shadow entry size is different from theDavid Young2020-04-131-2/+15
| | | | | | | | | | | pagebuffer entry size. If the sizes are different, then release the old shadow space (using the correct size) and set the shadow page number to 0 so that H5F_update_vfd_swmr_metadata_file() will allocate new shadow space with the right size. Vailin says that this fixes the bug she found, where a 4096-byte buffer allocated by H5MV_alloc() is released with H5MV_free() as if it was 8192 bytes long.
* Be brief: remove commas and equal signs from diagnostic log messages.David Young2020-04-081-18/+19
|
* Fix spelling in a comment.David Young2020-04-081-1/+1
|
* Add a new log outlet and change an `fprintf(stderr,` to anDavid Young2020-04-071-1/+2
| | | | `hlog_fast(lengthen_pbentry,`. This quiets one of the VFD SWMR tests.
* Straggler from previous: declare the new shadow_index_reclaim logDavid Young2020-04-071-0/+1
| | | | outlet.
* Simplify H5PB_vfd_swmr__update_index(), which figures inDavid Young2020-04-071-21/+23
| | | | | | | | | | | | | | | | | my investigation of shadow-file freespace leaks. Copy the tick number from the H5F_shared_t to a temporary variable and use the temporary instead of spelling out `shared->tick_num`. Assert that every entry on the tick list is dirty, since clean entries will not appear on the tick list. Mark each corresponding shadow-index entry dirty, and set its "tick of last change" to the current tick and "tick of last flush" to 0. This makes the scan for entries that do not appear on the tick list more believable. Lower staircase in the loop that scans for shadow-index entries that did not appear on the tick list. Log indicies that are marked for reclamation.
* Declutter: remove superfluous comment and assertion. NFCI.David Young2020-04-071-2/+0
|
* Remove extraneous whitespace. NFCI.David Young2020-04-071-2/+0
|
* After adding a shadow page to the deferred free list, set the entry'sDavid Young2020-04-071-3/+5
| | | | page number to 0 so that we cannot free it again by accident.
* Add a log outlet and shorten the name of an existing outlet.David Young2020-04-071-2/+7
|
* Fix the width of an index variable.David Young2020-04-071-1/+1
|
* Make some changes to conserve filespace and ensure that all filespace isDavid Young2020-04-062-2/+8
| | | | | | | | | | | | | | | | 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
|
* Standardize and shorten diagnostic messages to help my search for theDavid Young2020-04-021-11/+11
| | | | leak of shadow-file space.
* Remove superfluous comment. Remove unnecessary variableDavid Young2020-04-021-3/+3
| | | | | initializations: the compiler will tell us if the variables are used before they're set. NFCI.
* Remove superfluous whitespace, insert whitespace around / operator,David Young2020-04-021-5/+3
| | | | repair for-loop indentation. NFCI.
* Update comments, shorten comments, remove superfluous comments.David Young2020-04-021-14/+5
|
* Rename process_deferred_frees as H5MF_process_deferred_frees and make itDavid Young2020-03-312-7/+8
| | | | | | 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.
* Fix whitespace at end (beginning?) of line. NFCI.David Young2020-03-311-1/+1
|
* Straggler: add htri_to_string() for converting htri_t to a stringDavid Young2020-03-301-0/+11
| | | | constant.
* Relax H5F_update_vfd_swmr_metadata_file() argument checking so that we can callDavid Young2020-03-301-15/+5
| | | | | it with num_entries == 0 and a non-NULL `index`. Delete some code that isn't necessary if `num_entries == 0 && index != NULL` is allowed. NFCI.
* Simplify: change `if (cond) { assert(FALSE); }` to `assert(!cond);`.David Young2020-03-301-4/+1
|
* Lower staircase. NFCI.David Young2020-03-301-20/+19
|
* Delete an #ifdef H5MV_VFD_SWMR_DEBUG debug fprintf that probably never workedDavid Young2020-03-301-3/+0
| | | | quite as intended.
* Add a log outlet. Replace #ifdef H5MV_VFD_SWMR_DEBUG debug fprintf's withDavid Young2020-03-301-24/+19
| | | | hlog_fast() calls.
* 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
|
* Delete ridiculous comment and excess for-loop whitespace. NFCI.David Young2020-03-301-2/+2
|
* Delete ridiculous comments and repair some whitespace. NFCI.David Young2020-03-301-4/+3
|
* Be brief: turn 7 lines of if-else to one line of ?:. Be sensible: don'tDavid Young2020-03-301-10/+1
| | | | assert a pointer we just dereferenced is non-NULL.
* Let us use space as well as comma to separate outlet=yes|no clauses inDavid Young2020-03-301-1/+1
| | | | the HLOG environment variable.
* Reverted optimization in the metadata cache that avoided re-readingmainzer2020-03-261-0/+49
| | | | | | | the first portion of a metadata cache entry in speculative reads. This is necessary for VFD SWMR as it presumes that metadata entries are read and written atomically. See comments in H5C.c / H5C_load_entry() for further details.
* Add a log outlet for pagebuffer I/O and subordinate outlets forDavid Young2020-03-201-2/+12
| | | | | pagebuffer reads and writes: pbio, pbrd, pbwr. In H5PB_read() and H5PB_write(), log only global heap accesses, for now.
* Protect against an assertion during H5Fflush(): do not doubly-incrementDavid Young2020-03-201-3/+2
| | | | | | the tick number in H5F_vfd_swmr_close_or_flush() when just flushing, because that made the assertion in H5PB_vfd_swmr__set_tick(), that the tick number had not increased by more than one, fail.
* In H5PB__write_meta(), extend a single-page entry when overwriting itDavid Young2020-03-171-51/+55
| | | | | | | | | | | | | | with multiple pages. Update statistics to maintain consistency. Refactor a bit: in H5PB__write_meta(), move code that's in both the if- and else- branch to either before the if-else or after and de-duplicate. In H5PB_vfd_swmr__update_index(), always update the length of a shadow-index entry to the current size of its corresponding page-table entry. In H5PB_vfd_swmr__update_index(), disregard shadow-index entries that await garbage collection.
* Join some lines. NFCI.David Young2020-03-171-3/+1
|
* Fix spelling, alread -> already. NFCI.David Young2020-03-131-2/+2
|
* Update Guide. Switch to a short and informative function name.David Young2020-03-111-5/+3
|
* Add my work in progress on variable-length string test for VFD SWMR.David Young2020-03-104-1/+36
|
* Stop changing the type of global-heap storage to raw data before accessing theDavid Young2020-03-091-10/+2
| | | | | | | page buffer. Now variable-length (VL) data such as VL strings work with VFD SWMR. This change also makes the library more consistent in its treatment of global-heap storage, since it's always been allocated as metadata, not raw data.
* Don't assert that an H5FD_mem_t read/written through the page buffer is notDavid Young2020-03-061-3/+0
| | | | H5FD_MEM_GHEAP, that's an out-of-date assumption.
* Instead of duplicating H5F_shared_block_write() and _read() wholesale inDavid Young2020-03-061-69/+2
| | | | H5F_block_write() and _read(), make the latter functions call the former.
* Break metadata reads and writes into up to three pieces, the non-page-alignedDavid Young2020-03-041-2/+134
| | | | | piece in the beginning, 1 or more full pages, and whatever is leftover at the end. Passes all of our tests.
* No, Robb Matzke did *not* write this file. Get to the point in aDavid Young2020-02-281-4/+1
| | | | copy-and-pasted comment.
* Move the `swmr` log-outlet declaration to H5FDvfd_swmr_private.h and use `swmr`David Young2020-02-283-2/+6
| | | | | as the parent outlet of a new outlet for messages about the motion of the shadow index.
* Shave 44 lines off of H5PB_read() by gathering a bunch of checks into one ifDavid Young2020-02-271-67/+23
| | | | condition, reducing diagnostic checks, single-spacing, etc.
* Don't re-test a condition that's assert()'d at function entry andDavid Young2020-02-261-2/+2
| | | | couldn't change in the mean time, but do be paranoid and re-assert.