Network

 
AuthorCommitMessageCommit Date
David YoungDavid Young
1818420acd4In await_signal(), print a less alarming message when exiting in normal circumstances. Write a comment that tells why await_signal() periodically calls the HDF5 API.
David YoungDavid Young
d0e6a1bbc63Don't assert that an H5FD_mem_t read/written through the page buffer is not H5FD_MEM_GHEAP, that's an out-of-date assumption.
David YoungDavid Young
ba9dd7e9264Instead of duplicating H5F_shared_block_write() and _read() wholesale in H5F_block_write() and _read(), make the latter functions call the former.
David YoungDavid Young
20e59d90e9fBreak metadata reads and writes into up to three pieces, the non-page-aligned piece in the beginning, 1 or more full pages, and whatever is leftover at the end. Passes all of our tests.
David YoungDavid Young
2646ee0ba79Add an environment variable, H5_SHADOW_INDEX_FAIL, that I can set to an unsigned integer value that tells at which index to inject a failure for testing purposes. I used this to establish that I can start the shadow-index lookup test with a previous seed and see the same tests run again.
David YoungDavid Young
32f6a742b3bAdd a test for shadow-index lookups per the specification agreed with John and Mike and described in my email "testing estimates version 2."
David YoungDavid Young
3cb259c5a26So that I can use PASSED(); anywhere a statement can go, #define PASSED() with a do-while wrapper.
David YoungDavid Young
0a662ea4489No, Robb Matzke did *not* write this file. Get to the point in a copy-and-pasted comment.
David YoungDavid Young
b233408fe85Move the `swmr` log-outlet declaration to H5FDvfd_swmr_private.h and use `swmr` as the parent outlet of a new outlet for messages about the motion of the shadow index.
David YoungDavid Young
ac4afca0c20Shave 44 lines off of H5PB_read() by gathering a bunch of checks into one if condition, reducing diagnostic checks, single-spacing, etc.
David YoungDavid Young
42e6eba1e1cDon't re-test a condition that's assert()'d at function entry and couldn't change in the mean time, but do be paranoid and re-assert.
David YoungDavid Young
56a9459eb57On the reader, zero the shadow-index entries before filling fields from the shadow file so that members like `garbage` are not filled with garbage that fools us, later.
David YoungDavid Young
8b2ba616ebfUpdate some comments.
David YoungDavid Young
4b70e13e14aWhere n is the number of page-table/shadow-index entries, avoid spending O(n^2) time in H5PB_dest(). While we're in H5PB_dest(), mark deleted shadow-index entries as "garbage" and skip the O(n) shadow index-entries copy. Rename shadow index-entry member `moved_to_hdf5_file` to `moved_to_lower_file` while I'm in here---NFCI.
David YoungDavid Young
d859bc4ba7fPass the right parameter, H5F_shared_t * not H5F_t *. (Grr, serious warnings not treated as errors....)
David YoungDavid Young
9d5bb32b83dAdd log outlets `h5mf` and `h5mf_defer` and write some diagnostic messages to them. Move and update a comment about removing (all) items from the deferred queue before processing them. Bug fix: don't leak file space, add back to the deferred queue all items that were not disposed of.
David YoungDavid Young
9a29c2212b1Move all frequently-read fields---ls_resolved, ls_state, ls_parent---to the top of hlog_outlet_t so that they're likely to be in the same cacheline.
David YoungDavid Young
bdc6d8ffcd3For bool, true, and false, #include <stdbool.h>.
David YoungDavid Young
ce35b2f35faChange a couple more occurrences of "sink" to "outlet."
David YoungDavid Young
1a4097e55caDon't use the __ prefix for attributes __unused and such, since that's reserved for the system software, IIUC, and it clashes with a symbol on CentOS. Instead, use a _ prefix.
David YoungDavid Young
48ca10f80eeImprove some comments: fix typos, shorten.
David YoungDavid Young
ac1912b361dAdd a log outlet for shadow-index enlargement and use it instead of mysteriously printing "ding ding!" when the shadow index is enlarged. While I'm here, place the new index into place regardless of whether we succeed at the deferred free of the old index's shadow-file space.
David YoungDavid Young
323e8f8d8b3Delete an out-of-date comment.
David YoungDavid Young
d19456dae26In process_deferred_frees(), remove *all* deferred frees from the H5F_shared_t's queue before processing any, instead of removing just one, processing it, removing another, processing it, and so on. While we processed the first entry on the queue, we often called H5MF_xfree() again, which called process_deferred_frees() again, which processed the first entry, calling H5MF_xfree() again, and on and on, until the deferred frees list was exhausted. This deep recursion showed up as a wide, tall ...
David YoungDavid Young
e43895e3b49Don't perform superfluous casts.
David YoungDavid Young
a162fbbaaabTrim excess detail. Use shadow/lower file terminology. Be less wordy about "page or multi-page entry."
David YoungDavid Young
dfd3f782ca7Share latest changes: change many occurrences of "metadata" file/index/header to "shadow" file/index/header. Simplify the description of freespace management. Finish describing the floating shadow index.
David YoungDavid Young
848219ccb8eShare my latest RFC changes.
David YoungDavid Young
f99bbd565acLet us provide a default state to HLOG_OUTLET_MEDIUM_DEFN().
David YoungDavid Young
f75430585b5Add a new log outlet for individual deferred shadow frees and use it. Rename a variable that tells whether or not we started with an empty deferred-free list, and take care not to set it excessively.
David YoungDavid Young
ec6919449beDelete misleading "Programmer:" field and excessive decoration from the H5FD_vfd_swmr_write() comment header. Delete a superfluous comment. Delete some whitespace at EOL. NFCI.
David YoungDavid Young
2b7347d5773Record the state of a log outlet on first use and reuse that state on subsequent hlog_fast() calls. While I'm here, add a typedef, hlog_outlet_t, for struct hlog_outlet, and use it.
David YoungDavid Young
a3e6c35b2d9Whitespace repair. NFCI.
David YoungDavid Young
41a8036511aMake a typedef for enum hlog_outlet_state, hlog_outlet_state_t, and use it. NFCI.
David YoungDavid Young
47438c741a2Don't declare a bunch of undefined log outlets.
David YoungDavid Young
2069224d0d0Share my latest changes to the RFC.
David YoungDavid Young
89247be6814Add latest commentary on RFC.
David YoungDavid Young
4f452ea3590Call them log "outlets" not log "sinks".
David YoungDavid Young
0d946278366Rename loglib_ / LOGLIB_ to hlog_ / HLOG_, remove the syslog-based implementation, rename hlog_log() to hlog(), hlog_vlog() to vhlog(), et cetera. Rename hlog_lazy() to hlog_fast(). Define some log sinks and use them in the page buffer and in VFD SWMR.
David YoungDavid Young
6500ad88a84Rename log.c to hlog.c, add hlog.[ch] to MANIFEST.
David YoungDavid Young
76892a3ff90Add my logging library in existing form. Abbreviate copyright notices in the sources but put the full notices & license terms in COPYING.
David YoungDavid Young
251d62c5dd6Update punch list a bit: mention the over-long postponement of shadow-index reclamation. Mention that a writer can delete an object out from under a reader who holds an hid_t for it.
David YoungDavid Young
ba9dd0b871aEscape some underscores. I'm not sure if this is strictly necessary, but vim's syntax highlighting colors some (but not all) unescaped underscores red like there is some problem. It's possible there is some problem, since underscores are used to indicate some kind of emphasis---probably underlining.
David YoungDavid Young
8526d61cf48In a comment, mention that reclamation of shadow indices is postponed for longer than it needs to be. NFCI.
David YoungDavid Young
0a544ce3078Extract a routine from shadow_image_defer_free(), shadow_range_defer_free(), that works in byte offsets rather than page offsets. Use shadow_range_defer_free() to defer shadow-index frees.
David YoungDavid Young
5eba819f39cAvoid going back and forth between signed and unsigned in the same expression with some casts and an unsigned constant. This quiets GCC warnings, especially -Wconversion, IIRC.
David YoungDavid Young
34267d86317Fix a typo in a comment and delete whitespace at EOL.
David YoungDavid Young
afa09c80bd0Use an early exit to lower a staircase.
David YoungDavid Young
b972248b73fReduce code duplication by using vfd_swmr_pageno_to_mdf_idx_entry() to look up shadow pages. Reduce casts by choosing correct format strings and compatible variable types. Poison writes to addr by making it const. Don't increase addr in the read(2) loop because it's never used afterward. Delete some more dead code. Rename read_ptr as p and declare it much closer to its use. Change its type to `char *` so that no casts are necessary to increase it.
David YoungDavid Young
fcd9e78f8c2Delete unused code.