[dm-devel] [PATCH] thin_dump: added --device-id, --skip-mappings, and new output --format's
Eric Wheeler
dm-devel at lists.ewheeler.net
Mon Mar 28 22:05:22 UTC 2016
On Thu, 24 Mar 2016, Joe Thornber wrote:
> On Tue, Mar 15, 2016 at 01:45:15AM +0000, Eric Wheeler wrote:
> > Hi Joe,
> >
> > Please review the patch below when you have a moment. I am interested in
> > your feedback, and also interested in having this functionality merged
> > upstream. This was written against thin-provisioning-tools.git tag
> > v0.5.6.
>
> These changes are now on the v0.7-devel branch:
>
> i) --dev-id to filter thin_dump output on device id, multiple selections allowed.
> ii) --skip-mappings
> iii) thin_dump now takes a format called 'custom' that let's you use a plugin emitter of your own.
>
> eg,
>
> thin_dump --format custom=contrib/ewheeler_emitter.so /dev/sda
>
>
> The contrib/ directory is for third party contributions. Use 'make
> contrib' to build it. I've put your emitter and tmakatos' emitter in
> there already.
It took me a bit to figure out that I needed --enable-testing to get
contrib/ to build. You might remove the --enable-testing requirement
within the Makefile if contrib will remain as an optional Makefile target
that doesn't usually build with `make`.
Also FYI: I noticed that `-ldl' needed added to to the g++ linking
line:
/usr/src/thin-provisioning-tools/thin-provisioning/shared_library_emitter.cc:15: undefined reference to `dlopen'
/usr/src/thin-provisioning-tools/thin-provisioning/shared_library_emitter.cc:19: undefined reference to `dlerror'
/usr/src/thin-provisioning-tools/thin-provisioning/shared_library_emitter.cc:20: undefined reference to `dlsym'
/usr/src/thin-provisioning-tools/thin-provisioning/shared_library_emitter.cc:22: undefined reference to `dlerror'
/usr/src/thin-provisioning-tools/thin-provisioning/shared_library_emitter.cc:17: undefined reference to `dlerror'
So I added the -ldl as below:
g++ -g -Wall -fPIC -fno-strict-aliasing -std=c++11 -O8
-DSTRERROR_R_CHAR_P -o bin/pdata_tools base/application.o base/base64.o
base/disk_units.o base/endian_utils.o base/error_state.o
base/error_string.o base/grid_layout.o base/progress_monitor.o
base/rolling_hash.o base/xml_utils.o block-cache/block_cache.o
caching/cache_check.o caching/cache_dump.o caching/cache_metadata_size.o
caching/cache_repair.o caching/cache_restore.o caching/commands.o
caching/hint_array.o caching/mapping_array.o caching/metadata.o
caching/metadata_dump.o caching/restore_emitter.o caching/superblock.o
caching/xml_format.o era/commands.o era/era_array.o era/era_check.o
era/era_detail.o era/era_dump.o era/era_invalidate.o era/era_restore.o
era/metadata.o era/metadata_dump.o era/restore_emitter.o era/superblock.o
era/writeset_tree.o era/xml_format.o main.o persistent-data/checksum.o
persistent-data/data-structures/bitset.o
persistent-data/data-structures/bloom_filter.o
persistent-data/data-structures/btree.o persistent-data/error_set.o
persistent-data/file_utils.o persistent-data/hex_dump.o
persistent-data/space-maps/careful_alloc.o
persistent-data/space-maps/disk.o persistent-data/space-maps/recursive.o
persistent-data/space_map.o persistent-data/transaction_manager.o
persistent-data/validators.o thin-provisioning/commands.o
thin-provisioning/cache_stream.o thin-provisioning/chunk_stream.o
thin-provisioning/device_tree.o thin-provisioning/fixed_chunk_stream.o
thin-provisioning/human_readable_format.o thin-provisioning/mapping_tree.o
thin-provisioning/metadata.o thin-provisioning/metadata_checker.o
thin-provisioning/metadata_counter.o thin-provisioning/metadata_dumper.o
thin-provisioning/pool_stream.o thin-provisioning/restore_emitter.o
thin-provisioning/rmap_visitor.o thin-provisioning/superblock.o
thin-provisioning/shared_library_emitter.o thin-provisioning/thin_check.o
thin-provisioning/thin_delta.o thin-provisioning/thin_dump.o
thin-provisioning/thin_ls.o thin-provisioning/thin_metadata_size.o
thin-provisioning/thin_pool.o thin-provisioning/thin_repair.o
thin-provisioning/thin_restore.o thin-provisioning/thin_rmap.o
thin-provisioning/thin_trim.o thin-provisioning/xml_format.o -laio -lexpat
-lstdc++ -ldl
^^^^ ADDED
>
> I hope that covers everything you need.
>
> - Joe
>
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
>
More information about the dm-devel
mailing list