Commit Graph

201 Commits

Author SHA1 Message Date
pepe 17b8ef8bd9 :) 2023-06-13 21:41:47 +00:00
pepe 4d646c02f2 :( 2023-05-16 21:23:59 +00:00
Ming-Hung Tsai 105b8ec1cf [base] Factor out sequence_generator 2020-07-29 15:33:25 +08:00
Ming-Hung Tsai 7a332d43c3 [build] Fix the default value for the AR variable (#145)
Initialize the AR variable during configuration, to avoid leaving
unsubstituted string if the AR shell/environment variable is not set.
2020-07-29 10:06:39 +08:00
Joe Thornber 8a01679908
Merge pull request #145 from baloo/baloo/fixup-ar
autoconf: allow a user to override ar
2020-07-27 15:57:48 +01:00
Arthur Gautier e6faac9b80 autoconf: allow a user to override ar
This is used on specific buildchains (nixos static builds for example).
2020-07-25 15:16:28 -07:00
Ming-Hung Tsai d1fed5f5ec [thin_generate_damage] Introduce tools to generate metadata damage 2020-07-25 16:53:44 +08:00
Ming-Hung Tsai 8fa59553c4 [thin_generate_mappings] Introduce the mapping generation tool 2020-06-19 18:07:55 +08:00
Ming-Hung Tsai 12d7178199 [base] Introduce io_generator 2020-06-19 18:07:55 +08:00
Joe Thornber dc5bb3559b [build] remove need for zlib.
Disappeared with the C++ version of thin_metadata_pack
2020-06-12 19:09:19 +01:00
Joe Thornber 324c0050bf [install-rust-tools] add dep to generate man pages 2020-06-10 10:32:36 +01:00
Joe Thornber 61de3f9287 [thin_metadata_pack/unpack] Replace C++ implementation with a Rust one.
The Rust implementation is multithreaded, performs better in general and
does custom compression of btree nodes to achieve much better compression
ratios.  unpack also checksums expanded metadata to validate it.

Format version has jumped to 3, no backwards compatibility, but I think
that's ok since we never made a release that contained the C++ version
of these tools.

Benchmarks
==========

On an 8 core, 16 hyperthread machine.

metadata 1G, full:

      Pack size    pack time     unpack time
------------------------------------------------------
C++      193M        50.3s          6.9s (no verify)
Rust      70M         1.4s          1.8s (verify)

metadata 16G, sparse:

       Pack size    pack time     unpack time
------------------------------------------------------
C++      21M          68s           1s   (no verify)
Rust      4M           8.6s         0.5s (verify)
2020-06-09 09:15:00 +01:00
Joe Thornber 29cfdd8979 [space-maps/core] rewrite the core space map to use less memory. 2020-05-27 12:00:40 +01:00
Joe Thornber 0e1700fbe9 [thin_metadata_pack] First pass at pack/unpack 2020-05-22 14:11:48 +01:00
Joe Thornber 0882022120 [build] remove [DEP] compilation messages.
It just means each file appears twice.
2020-04-30 15:50:58 +01:00
Joe Thornber e801cc607b [block_manager] Hard code block size to 4k.
We're never going to use anything other than 4k, and by hard coding it we
avoid making block_manager a template.
2020-04-30 14:30:01 +01:00
Ming-Hung Tsai d6a8c03aa2 [btree_damage_visitor] factor out non-template functions 2020-02-17 11:42:24 +00:00
Joe Thornber 5f2c3bed69 Add some ftests, and fixup whitespace from Nikhil's work 2019-10-28 11:52:21 +00:00
Nikhil Kshirsagar 91b4714e38 Corrupt superblock repair 2019-10-25 15:02:56 +05:30
Joe Thornber 70cdfe12a2 [thin_journal_check] first code drop 2018-08-28 13:12:20 +01:00
Joe Thornber af785461e9 [build] [CXX] -> [CC] for C files 2018-06-13 12:49:57 +01:00
Joe Thornber 80e046a7df [build] support separate build directories 2018-06-13 09:34:14 +01:00
Dennis Schridde bc7864dae8 [build] Fix static build by including contrib/Makefile early (#100)
Closes: #99
2018-06-13 08:41:53 +01:00
Joe Thornber 5d3197b8ab [build] quieten build of C files 2018-04-25 14:05:28 +01:00
Adam Sampson 8d75be8112 [functional-tests] fix build with testing disabled (#88)
The rule for lib/libft.so is only enabled with --enable-testing,
so the default target shouldn't depend unconditionally on it.
With the default configure options, the build failed with:
make: *** No rule to make target 'lib/libft.so', needed by 'all'.  Stop.
2017-10-16 13:07:36 +01:00
Joe Thornber b9230d1bbb [functional-tests] roll all the C code into a single libft.so 2017-10-10 10:28:56 +01:00
Joe Thornber 5814fea96a [man pages] fix some formatting issues with the new man pages. 2017-09-20 13:53:59 +01:00
Joe Thornber dd8848f088 [manpages] Rewrite man pages in a simpler text format.
Makefile still needs work, but I wanted to commit to save progress.
2017-09-20 11:15:00 +01:00
Joe Thornber f7d79339e8 [man pages] Various updates. 2017-09-18 16:10:56 +01:00
csonto fd02dfa5bf Makefile: Conditional install of thin_trim (#81)
* Makefile: Conditional install of thin_trim

...and thin_show_duplicates symlinks.

The support for these is built only if --enable-dev-tools is used in
configure, thus we should install the symlinks conditionally.

* Conditional install of thin_trim man page
2017-07-24 09:55:45 +01:00
Ming-Hung Tsai b7d418131d Spin-off syscall-related file operations (#78)
* [file_utils] spin-off syscall-related file operations

1. Eliminate the potential circular dependency between
   persistent-data/block.h and persistent-data/file_utils.h,
   if the former one wants to include the latter.
2. Avoid namespace pollution by removing the "using namespace std"
   declaration in block.tcc.
3. Correct the header hierarchy: base/xml_utils.h now no longer
   depends on the higher-level persistent-data/file_utils.h

* [file_utils] support block files in get_file_length()
2017-04-29 18:51:52 +01:00
Joe Thornber 0a8d7fdb89 [build] tweak includes for test targets 2017-03-13 14:02:11 +00:00
Joe Thornber c2fdbad322 Merge branch '2016-07-07-improve-thin-repair-error-message' into v0.7-devel
Conflicts:
	Makefile.in
	VERSION
	configure.ac
	persistent-data/file_utils.cc
2016-07-11 15:51:30 +01:00
Joe Thornber 4779fb9b80 [various] Improve documentation
Output file must be preallocated.
2016-07-11 14:53:03 +01:00
Joe Thornber a3eac8d5d8 Merge branch 'v0.7-devel' of github.com:jthornber/thin-provisioning-tools into v0.7-devel 2016-06-14 16:33:00 +01:00
Joe Thornber 642740e1b6 Merge branch '2016-03-08-cache-writeback' into v0.7-devel 2016-06-14 16:30:16 +01:00
Joe Thornber a94bfea798 [block-cache] unit tests + debug io_engine and copier 2016-06-07 11:12:27 +01:00
Thanos Makatos 8147d798be don't use implicit rule when statically compiling emitters 2016-05-09 13:25:26 +03:00
Mike Frysinger 3e24cff8a1 respect & use CPPFLAGS properly
The common preprocessor variable is named CPPFLAGS.  configure sets this
up for us, including sourcing values from the user.  Rename INCLUDES to
match, and pull the default from configure.
2016-05-09 02:41:54 -04:00
Mike Frysinger 96e0e92afd get default CFLAGS/CXXFLAGS from configure
Since autoconf already sets up default compiler flags for us, use those.
These also come from the user's build settings.
2016-05-09 02:41:54 -04:00
Mike Frysinger b46676575c fix up test targets
- PHONY is misspelled
- fix the pdata_tools target dep
- add a "check" alias to match standard automake behavior
- mark test & check targets as phony
2016-05-08 23:35:19 -04:00
Joe Thornber c8fec7ec40 [cache_writeback] Coded, needs testing 2016-04-14 08:54:32 +01:00
Thanos Makatos 431f2ab50a allow tmakatos (a binary) emitter to be statically compiled
It is trivial to implement static compilation of the rest of the 3rd party
emitters.
2016-04-06 15:56:09 +03:00
Thanos Makatos 3464f005ff add configure option to enable static linking
(cherry picked from commit c6a2620f5d)

Conflicts:
	configure.ac
2016-04-06 15:56:08 +03:00
Ming-Hung Tsai 4a4dc1a5e0 [btree_node_checker] first draft
Spin-off from btree_damage_visitor
2016-04-03 00:43:43 +08:00
Joe Thornber 5b3cae824b Merge branch 'v0.7-devel' of github.com:jthornber/thin-provisioning-tools into v0.7-devel 2016-03-31 16:14:48 +01:00
Joe Thornber a5ed4258c0 [build] contrib target no longer depends on --enable-testing 2016-03-31 16:14:11 +01:00
Thanos Makatos b8dbde1e64 use -ldl when linking
dlopen etc. require -ldl to link
2016-03-31 13:02:36 +03:00
Joe Thornber c7813e07e4 [thin_dump] --format custom=<shared lib>
Allow people to use their own emitters held in a shared library.

Put a trivial emitter in contrib/ as an example.
2016-03-24 13:59:08 +00:00
Thanos Makatos c6a2620f5d add configure option to enable static linking 2016-03-09 13:27:35 +03:00