- Do not use shared internals as Defs
- Build Defs with common leaf sequences only, that could forms
more common Defs between partially shared subtrees.
To deal with variety in target attributes and their expected outputs,
the test parameters are categorized into traits, thus the test program
could define test parameters in a more structured way, without having
to pass multiple tightly-coupled parameters to test functions.
- Make the naming of test cases less ambiguous, e.g., rename
"missing_input_file" to "missing_input_arg" or "input_file_not_found"
- Unify the error messages on input/output options
- Update fixedbitset to 0.4
- Update indicatif to 0.16
- Update libc to 0.2.*
- Update nix to 0.21
- Update nom to 6.2.*
- Update dependencies with cargo-update
- Update crc32c to 0.6, which allows it to be built on AArch64.
- Update base64 to 0.13
- Update byteorder to 0.14
- Update io-uring to 0.4
- Update libc to 0.2.83
- Update nix to 0.19
- Update nom to 6.0.1
- Update quick-xml to 0.20
- Update rand to 0.8
- Update tempfile to 3.2
- Update tui to 0.14
Signed-off-by: Kay Lin <i@v2bv.net>
Multithreaded sync-io has performance similar to async-io. Also,
sync-io saves the hassle of setting ulimits to get io_uring working
on some systems (commit ba7fd7b). Now we default to sync-io, and
leave async-io as a hidden option for testing and benchmarking.
This was previously needed for thin-provisioning/thin_metadata_pack.cc
but that file was rewritten in Rust and no longer needs Boost. The flag
causes every binary to have a completely redundant depedency on
libboost_iostream.so, which is an issue for RHEL packaging.
The blocks storing metadata itself are located continuously within
a certain reserved range, hence there's no need to use a block set
as the representation.
- Allow packing unaligned number of bitmap entries that could happen
with the last bitmap. Unused trailing entries are zeroed by memset.
- Fix none_free_before in index_entry
A leaf node should be counted only if it is referenced by some internal
nodes, since the leaves generated by <def> sections might be unshifted
and merged with exclusive mappings or other shared defs, or they might
not even be used by any of the devices if the xml was tampered. The
internal nodes should be handled in the same manner.
The new 'reserve' operation is designed for this purpose. Applications
could reserve a block for later use, without setting its ref count
immediately. This way saves the hassles of tracking unused leaves.