summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Don't try to free a NULL pointer.David Young2020-04-071-1/+2
|
* Quiet a warning about the variable being used before it is initialized.David Young2020-04-071-1/+1
| | | | | Looks like the compiler actually was wrong, but this is a harmless change to make.
* 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
|
* If the shadow-index size is 0 in the current step, don't calloc(3)David Young2020-04-061-2/+2
| | | | anything, since calloc(0, ...) is undefined.
* 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
|
* Add a `reader` personality to vfd_swmr_zoo_writer. Remove the disusedDavid Young2020-03-312-22/+46
| | | | | `-t` option. Disable the error stack across create_/validate_zoo() calls.
* Prepare for reuse in vfd_swmr_zoo_{reader,writer}: inDavid Young2020-03-313-1766/+1116
| | | | | | validate_zoo()/check_zoo(), instead of checking/modifying the global variable `pass`, just return `false` on failure, `true` on success. Update test `cache_image` to match.
* 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.
* Remove a duplicate `#define H5FD_TESTING` line.David Young2020-03-241-1/+0
|
* Add option flag `-v` for verbose messages. Alphabetize the optionsDavid Young2020-03-241-3/+7
| | | | switch-statement.
* When creating a shadow index for testing, increase the page number fromDavid Young2020-03-241-1/+3
| | | | | one entry to the next by *at least* 1 so that the index is well-formed. This fixes a crash that occurred with H5_SHADOW_INDEX_SEED=1585006453.
* The forced-fail index comes only from the environment, never fromDavid Young2020-03-241-1/+1
| | | | time(3).
* Use the name vfd_swmr_zoo.h5 for the zoo file, not vfd_swmr_vlstr.h5.David Young2020-03-231-1/+1
|
* Let tests provide a "hook" that runs after each step in create_zoo().David Young2020-03-235-1/+40
| | | | Provide a hook in vfd_swmr_zoo_writer that calls H5Fvfd_swmr_end_tick().
* Take a stab at a "zoo" writer for VFD SWMR: write all of the sameDavid Young2020-03-202-2/+193
| | | | | | | | | | objects as the cache_image test does. The zoo writer is a work in progress. This version is useful as a reproducer for the hang in the global heap that I stumbled over, yesterday. I run this to reproduce, env HLOG="pbio=on" ./vfd_swmr_zoo_writer -W -a
* Deduplicate create_zoo() and validate_zoo() and refactor for reuse byDavid Young2020-03-203-336/+167
| | | | | | VFD SWMR tests. This change reduces the length of genall5.c by 171 lines.
* 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.
* Use more iterations on the variable-length string reader & writer toDavid Young2020-03-171-2/+2
| | | | lower the possibility of a false test failure.
* 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
|
* Test H5Dread() for the right "success" conditions. I'm not sure howDavid Young2020-03-161-1/+1
| | | | this even appeared to work, before.
* Fix spelling, alread -> already. NFCI.David Young2020-03-131-2/+2
|
* Add tests for the two expected failure modes for variable-length (VL) stringsDavid Young2020-03-136-115/+243
| | | | in VFD SWMR mode.