Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add a new log outlet and change an `fprintf(stderr,` to an | David Young | 2020-04-07 | 1 | -1/+2 |
| | | | | `hlog_fast(lengthen_pbentry,`. This quiets one of the VFD SWMR tests. | ||||
* | Straggler from previous: declare the new shadow_index_reclaim log | David Young | 2020-04-07 | 1 | -0/+1 |
| | | | | outlet. | ||||
* | Don't try to free a NULL pointer. | David Young | 2020-04-07 | 1 | -1/+2 |
| | |||||
* | Quiet a warning about the variable being used before it is initialized. | David Young | 2020-04-07 | 1 | -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 in | David Young | 2020-04-07 | 1 | -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 Young | 2020-04-07 | 1 | -2/+0 |
| | |||||
* | Remove extraneous whitespace. NFCI. | David Young | 2020-04-07 | 1 | -2/+0 |
| | |||||
* | After adding a shadow page to the deferred free list, set the entry's | David Young | 2020-04-07 | 1 | -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 Young | 2020-04-07 | 1 | -2/+7 |
| | |||||
* | Fix the width of an index variable. | David Young | 2020-04-07 | 1 | -1/+1 |
| | |||||
* | If the shadow-index size is 0 in the current step, don't calloc(3) | David Young | 2020-04-06 | 1 | -2/+2 |
| | | | | anything, since calloc(0, ...) is undefined. | ||||
* | Make some changes to conserve filespace and ensure that all filespace is | David Young | 2020-04-06 | 2 | -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 Young | 2020-04-02 | 1 | -7/+26 |
| | |||||
* | Standardize and shorten diagnostic messages to help my search for the | David Young | 2020-04-02 | 1 | -11/+11 |
| | | | | leak of shadow-file space. | ||||
* | Remove superfluous comment. Remove unnecessary variable | David Young | 2020-04-02 | 1 | -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 Young | 2020-04-02 | 1 | -5/+3 |
| | | | | repair for-loop indentation. NFCI. | ||||
* | Update comments, shorten comments, remove superfluous comments. | David Young | 2020-04-02 | 1 | -14/+5 |
| | |||||
* | Add a `reader` personality to vfd_swmr_zoo_writer. Remove the disused | David Young | 2020-03-31 | 2 | -22/+46 |
| | | | | | `-t` option. Disable the error stack across create_/validate_zoo() calls. | ||||
* | Prepare for reuse in vfd_swmr_zoo_{reader,writer}: in | David Young | 2020-03-31 | 3 | -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 it | David Young | 2020-03-31 | 2 | -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 Young | 2020-03-31 | 1 | -1/+1 |
| | |||||
* | Straggler: add htri_to_string() for converting htri_t to a string | David Young | 2020-03-30 | 1 | -0/+11 |
| | | | | constant. | ||||
* | Relax H5F_update_vfd_swmr_metadata_file() argument checking so that we can call | David Young | 2020-03-30 | 1 | -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 Young | 2020-03-30 | 1 | -4/+1 |
| | |||||
* | Lower staircase. NFCI. | David Young | 2020-03-30 | 1 | -20/+19 |
| | |||||
* | Delete an #ifdef H5MV_VFD_SWMR_DEBUG debug fprintf that probably never worked | David Young | 2020-03-30 | 1 | -3/+0 |
| | | | | quite as intended. | ||||
* | Add a log outlet. Replace #ifdef H5MV_VFD_SWMR_DEBUG debug fprintf's with | David Young | 2020-03-30 | 1 | -24/+19 |
| | | | | hlog_fast() calls. | ||||
* | Add log outlets. Convert existing #ifdef H5MF_ALLOC_DEBUG{,_MORE} debug | David Young | 2020-03-30 | 1 | -77/+74 |
| | | | | fprintf's to hlog_fast() calls. Add some new hlog_fast() calls. | ||||
* | Delete ridiculous comments. Remove superfluous curly braces. NFCI. | David Young | 2020-03-30 | 1 | -10/+7 |
| | |||||
* | Delete ridiculous comment and excess for-loop whitespace. NFCI. | David Young | 2020-03-30 | 1 | -2/+2 |
| | |||||
* | Delete ridiculous comments and repair some whitespace. NFCI. | David Young | 2020-03-30 | 1 | -4/+3 |
| | |||||
* | Be brief: turn 7 lines of if-else to one line of ?:. Be sensible: don't | David Young | 2020-03-30 | 1 | -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 in | David Young | 2020-03-30 | 1 | -1/+1 |
| | | | | the HLOG environment variable. | ||||
* | Reverted optimization in the metadata cache that avoided re-reading | mainzer | 2020-03-26 | 1 | -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 Young | 2020-03-24 | 1 | -1/+0 |
| | |||||
* | Add option flag `-v` for verbose messages. Alphabetize the options | David Young | 2020-03-24 | 1 | -3/+7 |
| | | | | switch-statement. | ||||
* | When creating a shadow index for testing, increase the page number from | David Young | 2020-03-24 | 1 | -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 from | David Young | 2020-03-24 | 1 | -1/+1 |
| | | | | time(3). | ||||
* | Use the name vfd_swmr_zoo.h5 for the zoo file, not vfd_swmr_vlstr.h5. | David Young | 2020-03-23 | 1 | -1/+1 |
| | |||||
* | Let tests provide a "hook" that runs after each step in create_zoo(). | David Young | 2020-03-23 | 5 | -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 same | David Young | 2020-03-20 | 2 | -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 by | David Young | 2020-03-20 | 3 | -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 for | David Young | 2020-03-20 | 1 | -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-increment | David Young | 2020-03-20 | 1 | -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 to | David Young | 2020-03-17 | 1 | -2/+2 |
| | | | | lower the possibility of a false test failure. | ||||
* | In H5PB__write_meta(), extend a single-page entry when overwriting it | David Young | 2020-03-17 | 1 | -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 Young | 2020-03-17 | 1 | -3/+1 |
| | |||||
* | Test H5Dread() for the right "success" conditions. I'm not sure how | David Young | 2020-03-16 | 1 | -1/+1 |
| | | | | this even appeared to work, before. | ||||
* | Fix spelling, alread -> already. NFCI. | David Young | 2020-03-13 | 1 | -2/+2 |
| | |||||
* | Add tests for the two expected failure modes for variable-length (VL) strings | David Young | 2020-03-13 | 6 | -115/+243 |
| | | | | in VFD SWMR mode. |