summaryrefslogtreecommitdiff
path: root/sys-fs
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-08-09 11:04:53 +0100
committerV3n3RiX <venerix@koprulu.sector>2024-08-09 11:04:53 +0100
commit43297a4ed0a3760bbdd0b8c286b779f174ca5368 (patch)
tree15b92efd455b5d5eb0ef8a4af4f5f24572c4b46b /sys-fs
parent14866757225815b9374acfc8453518951e0f910d (diff)
gentoo auto-resync : 09:08:2024 - 11:04:52
Diffstat (limited to 'sys-fs')
-rw-r--r--sys-fs/Manifest.gzbin22244 -> 22241 bytes
-rw-r--r--sys-fs/bees/Manifest5
-rw-r--r--sys-fs/bees/bees-0.10-r1.ebuild112
-rw-r--r--sys-fs/bees/bees-9999.ebuild6
-rw-r--r--sys-fs/bees/files/0001-context-demote-abandoned-toxic-match-to-debug-log-le.patch36
-rw-r--r--sys-fs/bees/files/0002-HACK-crucible-Work-around-kernel-memory-fragmentatio_v2.patch43
-rw-r--r--sys-fs/btrfs-progs/Manifest4
-rw-r--r--sys-fs/btrfs-progs/btrfs-progs-6.9.2.ebuild9
-rw-r--r--sys-fs/btrfs-progs/metadata.xml1
9 files changed, 208 insertions, 8 deletions
diff --git a/sys-fs/Manifest.gz b/sys-fs/Manifest.gz
index ed1dcec9d16d..ce779c2eb953 100644
--- a/sys-fs/Manifest.gz
+++ b/sys-fs/Manifest.gz
Binary files differ
diff --git a/sys-fs/bees/Manifest b/sys-fs/bees/Manifest
index cab62ad6564b..8f062277fcd9 100644
--- a/sys-fs/bees/Manifest
+++ b/sys-fs/bees/Manifest
@@ -1,5 +1,8 @@
AUX 0001-HACK-crucible-Work-around-kernel-memory-fragmentatio.patch 1183 BLAKE2B 784ad6e8150a5d791c839c04060aa1116f72a29c0e2f4d1d790d6e1fb1d56b5a6ced843f38ac56930a63426ed7e9c5506f81c1f7189728937e0ee49f9f5af079 SHA512 29ac086a2c84d7eb89090498849b2e01e99da62c3ce49b5c4d36f071a3a8ff506e15b227a2303c01da25bdc4572e5dc1129767df496897de8ca2bed579dd3017
+AUX 0001-context-demote-abandoned-toxic-match-to-debug-log-le.patch 1500 BLAKE2B c6f6895b92caae4ac8de83931574f87274d7798889c0589859204d73cd41072ee6967ae908c8509e7f5c929f3a4f04c73932b72a27ab3d244cef254ebc15030e SHA512 82e3e8872e4b9943afff883c3ee420a8850b337914fc0b388171f1331c4cd900778c2263b98ff1705f50f7cd3ffe5868d7f88ec48ab68217471a21573a559479
+AUX 0002-HACK-crucible-Work-around-kernel-memory-fragmentatio_v2.patch 1445 BLAKE2B e1ebe9c50deeaf7eed82c738d172ab332c5048ab192150cc967843ea16f387631ee44c201c43f49c3c0a032a735219f3a08881e5f92fbbf5b85d050eebb1c7f8 SHA512 75655e40084a0f8660773293693d0a214d34c6bb2f861c2e502a4cc5a1576d5c8084b8af87f790155f419affa56886c23eed09532f82c29b2623f553a5c82999
DIST bees-0.10.tar.gz 177509 BLAKE2B 269cf65d5250a07297dfaee6c0fd6bc25199d63fe423d63ce39df8bcdb64d6f8110a0e03d0dc7dc1b105a8886f2a9364da8878481546eaa8dbf3dc46abc569ed SHA512 77a4ae3d66430c2d9dc0351c16c60bad95f21e238fc00f5f5787f55929ba75ee25212ac4bb4a3e4a9419cec27bbcfd2987aa925a54bc2872609b38a698dbedc3
+EBUILD bees-0.10-r1.ebuild 4151 BLAKE2B d0b2ddea9523905f3a5620aa6e0da3c595a405afd34a9ab5488a20e7b1f5c77130d9b56b3856a236004982d6069f213ddacf28a9234f3498cc805b4f9a980f56 SHA512 35d51de04f606c5fe35bd0dd071c58e435398dc304f0520e307974a2436bc358856580f35f1611a8e45b6e1d16b4b67d050308ac61dfb8ea8c60872c616f47cd
EBUILD bees-0.10.ebuild 4076 BLAKE2B dad615a8ad7fada7c1cd31a5cffa6fad2cdcbc1cf241cc6e602d927cd9c182289d944663365cbeaa27a2f14f89cd8150e7c7196c19b5bbd4cb2580dae80bc19c SHA512 53a60088a2e078e1dec4899d77961c51976f941ca3952de32ddacdb6c03b4e6350d977f159b7a845ec45901bb4cb77b19ca9aebeec2ef1cc7867740df74adbbb
-EBUILD bees-9999.ebuild 4077 BLAKE2B 8208983c244fd03a1c615b485011bb1fefbdffe91b0d1846aec7a13775c9c1da06dd895092f847a9da0ce2e1a88dac10611f0f2a35df1589042e58a70f11b1a4 SHA512 41bc775e23be08cc87fd06da485b1101e3924dca1ab00150e4abbc50bcfc2b892a08bce0560403e9830a70fac9be0ea669f8017c71a78a414ab5cf1f580644e7
+EBUILD bees-9999.ebuild 4151 BLAKE2B d0b2ddea9523905f3a5620aa6e0da3c595a405afd34a9ab5488a20e7b1f5c77130d9b56b3856a236004982d6069f213ddacf28a9234f3498cc805b4f9a980f56 SHA512 35d51de04f606c5fe35bd0dd071c58e435398dc304f0520e307974a2436bc358856580f35f1611a8e45b6e1d16b4b67d050308ac61dfb8ea8c60872c616f47cd
MISC metadata.xml 529 BLAKE2B 69ea069e33d1af7c2c38aa7f8fc61516f23c586ad162d9581859829b084c8da3ef76278173e1ac3afa1ef432355ab14f2ecc01d07f039f8447c20cc27b22d633 SHA512 cb9ba7a32c6a8269f7303ebd41bf0e21f4325560b40bba10aff08a05d07170f9f0e35e687e688f6793c0abf994c9b23f90a47b9d32544636f2d6b5ab51140bd3
diff --git a/sys-fs/bees/bees-0.10-r1.ebuild b/sys-fs/bees/bees-0.10-r1.ebuild
new file mode 100644
index 000000000000..e1d5da90f548
--- /dev/null
+++ b/sys-fs/bees/bees-0.10-r1.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-info systemd toolchain-funcs
+
+DESCRIPTION="Best-Effort Extent-Same, a btrfs dedup agent"
+HOMEPAGE="https://github.com/Zygo/bees"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Zygo/bees.git"
+else
+ SRC_URI="https://github.com/Zygo/bees/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64"
+fi
+
+LICENSE="GPL-3"
+SLOT="0"
+
+DEPEND="
+ >=sys-apps/util-linux-2.30.2
+ >=sys-fs/btrfs-progs-4.20.2
+"
+RDEPEND="${DEPEND}"
+
+CONFIG_CHECK="~BTRFS_FS"
+ERROR_BTRFS_FS="CONFIG_BTRFS_FS: bees does currently only work with btrfs"
+
+PATCHES=(
+ "${FILESDIR}/0001-context-demote-abandoned-toxic-match-to-debug-log-le.patch"
+ "${FILESDIR}/0002-HACK-crucible-Work-around-kernel-memory-fragmentatio_v2.patch"
+)
+
+pkg_pretend() {
+ if [[ ${MERGE_TYPE} != buildonly ]]; then
+ if kernel_is -lt 4 11; then
+ ewarn "With kernel versions below 4.11, bees may severely degrade system performance"
+ ewarn "and responsiveness. Especially, the kernel may deadlock while bees is"
+ ewarn "running, it's recommended to run at least kernel 4.11."
+ ewarn
+ elif kernel_is -lt 4 14 29; then
+ ewarn "With kernel versions below 4.14.29, bees may generate a lot of bogus WARN_ON()"
+ ewarn "messages in the kernel log. These messages can be ignored and this is fixed"
+ ewarn "with more recent kernels:"
+ ewarn "# WARNING: CPU: 3 PID: 18172 at fs/btrfs/backref.c:1391 find_parent_nodes+0xc41/0x14e0"
+ ewarn
+ elif kernel_is -lt 5 7 0; then
+ ewarn "With kernel versions below 5.4.96 and 5.7, the kernel may hold file system"
+ ewarn "locks for a long time while at the same time CPU usage increases when bees is"
+ ewarn "operating. bees tries to avoid this behavior by excluding very common extents"
+ ewarn "from deduplication. This has only a minimal impact on dedupe effectiveness."
+ ewarn
+ fi
+ if kernel_is -lt 5 1 0; then
+ ewarn "IMPORTANT: With kernel versions below 5.1.0, you may experience data corruption"
+ ewarn "due to bees using compression in btrfs. You are adviced to use a chronologically"
+ ewarn "later kernel, that includes older LTS versions released after 5.0.4:"
+ ewarn "Fixed in: 5.1+, 5.0.4+, 4.19.31+, 4.14.108+, 4.9.165+, 4.4.177+, 3.18.137+"
+ ewarn "# commit 8e92821 btrfs: fix corruption reading shared and compressed extents after hole punching"
+ ewarn
+ fi
+ if kernel_is -lt 5 4 19; then
+ ewarn "With kernel versions below 5.4.19, bees may trigger a btrfs bug when running"
+ ewarn "btrfs-balance in parallel. This may lead to meta-data corruption in the worst"
+ ewarn "case. Especially, kernels 5.1.21 and 5.2.21 should be avoided. Kernels 5.0.x"
+ ewarn "after 5.0.21 should be safe. In the best case, affected kernels may force"
+ ewarn "the device RO without writing corrupted meta-data. More details:"
+ ewarn "https://github.com/Zygo/bees/blob/master/docs/btrfs-kernel.md"
+ ewarn
+ fi
+ if kernel_is -gt 5 15 106; then
+ if kernel_is -lt 6 3 10; then
+ ewarn "With kernel versions 5.15.107 or later, there is a memory fragmentation"
+ ewarn "issue with LOGICAL_INO which can lead to cache thrashing and cause IO"
+ ewarn "latency spikes. This version ships with a work-around at the cost of not"
+ ewarn "handling highly duplicated filesystems that well. More details:"
+ ewarn "https://github.com/Zygo/bees/issues/260"
+ ewarn
+ fi
+ fi
+
+ elog "Bees recommends running the latest current kernel for performance and"
+ elog "reliability reasons, see README.md."
+ fi
+}
+
+src_prepare() {
+ default
+ sed -i 's/ -Werror//' makeflags || die
+}
+
+src_configure() {
+ tc-export CC CXX AR
+ cat >localconf <<-EOF || die
+ ETC_PREFIX="${EPREFIX}/etc"
+ LIBEXEC_PREFIX="${EPREFIX}/usr/libexec"
+ PREFIX="${EPREFIX}/usr"
+ SYSTEMD_SYSTEM_UNIT_DIR="$(systemd_get_systemunitdir)"
+ DEFAULT_MAKE_TARGET=all
+ EOF
+ if [[ ${PV} != "9999" ]] ; then
+ echo BEES_VERSION=v${PV} >>localconf || die
+ fi
+}
+
+src_compile() {
+ default
+ # localconf quotes leak in the systemd unit but are still needed for spaces
+ sed -i 's/"//g' scripts/beesd@.service || die
+}
diff --git a/sys-fs/bees/bees-9999.ebuild b/sys-fs/bees/bees-9999.ebuild
index 1b164eb56b08..e1d5da90f548 100644
--- a/sys-fs/bees/bees-9999.ebuild
+++ b/sys-fs/bees/bees-9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -18,7 +18,6 @@ fi
LICENSE="GPL-3"
SLOT="0"
-IUSE=""
DEPEND="
>=sys-apps/util-linux-2.30.2
@@ -30,7 +29,8 @@ CONFIG_CHECK="~BTRFS_FS"
ERROR_BTRFS_FS="CONFIG_BTRFS_FS: bees does currently only work with btrfs"
PATCHES=(
- "${FILESDIR}/0001-HACK-crucible-Work-around-kernel-memory-fragmentatio.patch"
+ "${FILESDIR}/0001-context-demote-abandoned-toxic-match-to-debug-log-le.patch"
+ "${FILESDIR}/0002-HACK-crucible-Work-around-kernel-memory-fragmentatio_v2.patch"
)
pkg_pretend() {
diff --git a/sys-fs/bees/files/0001-context-demote-abandoned-toxic-match-to-debug-log-le.patch b/sys-fs/bees/files/0001-context-demote-abandoned-toxic-match-to-debug-log-le.patch
new file mode 100644
index 000000000000..387ae7f1100c
--- /dev/null
+++ b/sys-fs/bees/files/0001-context-demote-abandoned-toxic-match-to-debug-log-le.patch
@@ -0,0 +1,36 @@
+From fad9230cea8a9970980c36b442b71b864e69ded3 Mon Sep 17 00:00:00 2001
+From: Kai Krakow <kai@kaishome.de>
+Date: Sun, 30 Jun 2024 16:27:20 +0200
+Subject: [PATCH 1/2] context: demote "abandoned toxic match" to debug log
+ level
+
+This log message creates a overwhelmingly lot of messages in the system
+journal, leading to write-back flushing storms under high activity. As
+it is a work-around message, it is probably only useful to developers,
+thus demote to debug level.
+
+This fixes latency spikes in desktop usage after adding a lot of new
+files, especially since systemd-journal starts to flush caches if it
+sees memory pressure.
+
+Signed-off-by: Kai Krakow <kai@kaishome.de>
+---
+ src/bees-context.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bees-context.cc b/src/bees-context.cc
+index 09ec152..2251783 100644
+--- a/src/bees-context.cc
++++ b/src/bees-context.cc
+@@ -471,7 +471,7 @@ BeesContext::scan_one_extent(const BeesFileRange &bfr, const Extent &e)
+
+ // Hash is toxic
+ if (found_addr.is_toxic()) {
+- BEESLOGWARN("WORKAROUND: abandoned toxic match for hash " << hash << " addr " << found_addr << " matching bbd " << bbd);
++ BEESLOGDEBUG("WORKAROUND: abandoned toxic match for hash " << hash << " addr " << found_addr << " matching bbd " << bbd);
+ // Don't push these back in because we'll never delete them.
+ // Extents may become non-toxic so give them a chance to expire.
+ // hash_table->push_front_hash_addr(hash, found_addr);
+--
+2.44.2
+
diff --git a/sys-fs/bees/files/0002-HACK-crucible-Work-around-kernel-memory-fragmentatio_v2.patch b/sys-fs/bees/files/0002-HACK-crucible-Work-around-kernel-memory-fragmentatio_v2.patch
new file mode 100644
index 000000000000..b62957c05291
--- /dev/null
+++ b/sys-fs/bees/files/0002-HACK-crucible-Work-around-kernel-memory-fragmentatio_v2.patch
@@ -0,0 +1,43 @@
+From 291574986ccfaff8b620f6baa185a567f2f0cfb5 Mon Sep 17 00:00:00 2001
+From: Kai Krakow <kai@kaishome.de>
+Date: Sun, 9 Jul 2023 12:24:40 +0200
+Subject: [PATCH 2/2] HACK: crucible: Work around kernel memory fragmentation
+
+According to @Zygo:
+
+> This will drastically reduce the number of reflinks bees can handle
+> to a single extent, but that size is beyond more than enough for most
+> filesystems. Making the buffer smaller may also reduce the size of
+> vmallocs which might be aggravating the kernel's memory manager.
+
+v2:
+
+According to @Zygo:
+
+> Lately I've been running with vm.swappiness=0 and
+> BEES_MAX_EXTENT_REF_COUNT set to 9999. With those settings there's no
+> swapping at all.
+
+Link: https://github.com/Zygo/bees/issues/260#issuecomment-1627586574
+Link: https://github.com/Zygo/bees/issues/260#issuecomment-2068287231
+Signed-off-by: Kai Krakow <kai@kaishome.de>
+---
+ src/bees.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bees.h b/src/bees.h
+index 4dbc005..a3c3872 100644
+--- a/src/bees.h
++++ b/src/bees.h
+@@ -96,7 +96,7 @@ const double BEES_TOO_LONG = 5.0;
+ const double BEES_TOXIC_SYS_DURATION = 0.1;
+
+ // Maximum number of refs to a single extent
+-const size_t BEES_MAX_EXTENT_REF_COUNT = (16 * 1024 * 1024 / 24) - 1;
++const size_t BEES_MAX_EXTENT_REF_COUNT = (10000) - 1;
+
+ // How long between hash table histograms
+ const double BEES_HASH_TABLE_ANALYZE_INTERVAL = BEES_STATS_INTERVAL;
+--
+2.44.2
+
diff --git a/sys-fs/btrfs-progs/Manifest b/sys-fs/btrfs-progs/Manifest
index b5b169d89e5a..c2d152145eae 100644
--- a/sys-fs/btrfs-progs/Manifest
+++ b/sys-fs/btrfs-progs/Manifest
@@ -15,7 +15,7 @@ EBUILD btrfs-progs-6.7.1.ebuild 4599 BLAKE2B 79fd7e385b4ebffb59d0b919cfba4603984
EBUILD btrfs-progs-6.8.1-r1.ebuild 4403 BLAKE2B dc5b353b713a59e467da06ddb7b0c1e7a67d95d3b4b0f3438e148570d63e82aa87416da77a11264ab8602b9e5278ed4e3e355d0dc8cbde947f3511f5e1a0ce1f SHA512 b68e3aee56f709ef9e529c2b0ac1ec31d11cbed51ce16b9c4cd8470d358acf2f36995a3047fef697e920dbf601335635d4016720289417a70e10f3958b757472
EBUILD btrfs-progs-6.8.1.ebuild 4599 BLAKE2B 2fdbb02df514a9c78b34e6b7df55d266b222b60515ba463e8cdaa4b2dcb5d06c68752218691ff2182b6468edcecd735c3ec39433633de1fd52bc80ac8610bd22 SHA512 8705968998ae1f454051d1dabe7c392311d61d81fb93217e3cc2f39913bbe56cbcbd7de75d452aadde14e905c371f3d543cb9673de34544776fe685dfa9a65ac
EBUILD btrfs-progs-6.9.1.ebuild 4171 BLAKE2B c74e04d0dbf096e372c2a2b634a16f517f2f035c4301e7c88fac0258a295084774b786638ee3f7a90f24deac91dd1cf789fb245ffc115c1d9fa5469cdf722612 SHA512 7c758a53937991f46988263f182017fe462cdb3ca9e77679dc0fed499bb48c53e5a06292c0c397cb1c779772974e88e04cfc10e022de8770e313b2ec3c37c770
-EBUILD btrfs-progs-6.9.2.ebuild 4206 BLAKE2B 60f5b210c693151a4bb537c35d2a410fbd57bbebb1c4888fb19e23b47b3a681ac3664b983eb32f3b69c1729a28e5e1c48117fc4406bcb650c075c24d6582b458 SHA512 4dd6664784cd3b203d0c210002aa7604b9b3658b1aa2ef3b427da12fdf197b2a0409cf26f274d3060c0a34e77e94eb1e4ad41f8058538c0e1051e9d7d432429c
+EBUILD btrfs-progs-6.9.2.ebuild 4299 BLAKE2B 773e16ebdd7e86cbda20e75cb3fde2d0084617f94b1b5fc5fb05bd1be36b880b00b64e1264e1f8cb02d5cac607b626e54c124c582e1d2e1b261f9dfda5116a4e SHA512 6548774675c54c3e1c8261d48f6c01e0f5878f0c0da12bf1318aa37cc5d1b137fda0f7cf40672b2da014b63cc99eed18cdbebefe52efefc70db48f49bc901991
EBUILD btrfs-progs-6.9.ebuild 4170 BLAKE2B 6c2ba7f6bc8ea09f62a8f6b5ada660c8c34fd9e1f861a52049be46dc9961edde57c33b5375fd50a3cfe1f7e314af7efa01ddf144c12686542f788fdd9c6fd660 SHA512 af2cf5d1996c4e3637c313fd0731d8427d3455869758a346742d8781d704290fa2ffd8cc009fb70e0cfdbaf1a266f1eb5e55acb13093ea5d23fdcc55c70ac890
EBUILD btrfs-progs-9999.ebuild 4212 BLAKE2B b48e34dac023dd14ed224087c24b34ba8d2ae10a6b52f291c6a5a1f2ecbba9479d818860c5bce98f0ef3de98cba154e8ec0e6b0a4689daa314686e0309cb79a6 SHA512 e8454b129d5af4a32705cba283cc79de0dcf804ff73db6069294601887eeb28dcdf0b9e7151fcfb34fe52487625e29bed97e69943b6207e2a9cc86ab8981e5a3
-MISC metadata.xml 610 BLAKE2B 70361c4d5434a98f73a3d38ed47d7be830783529db6217396f2235cdedd58744fc6e52e4de1994d28184fe9d8aa5d2982c433d47eda1868cfdb79edf0769a620 SHA512 8958c02574adb1395a9d21d9e9ad5db38570b82a1c7211752eb007eecbd0e541e880a060649641f40be877f167e14f278f14d5ef8775766ef9a6fa5d3843dc53
+MISC metadata.xml 744 BLAKE2B 6c23644af7f970c93a3c3bd1fd1bf82e5290832afac427bec1da93bfd2694799f779bdce3f51742a171218d6e29460a4986452426ab2239ad8ab6627dc45b81d SHA512 06df1d728d39b92384bdd026d0339a494ce1fe3966376a413a80f8dd85bedd5e5d843db9cdd60a9ab29857b79d5a24de24de2330aab70916a0e57acfc01a2e5d
diff --git a/sys-fs/btrfs-progs/btrfs-progs-6.9.2.ebuild b/sys-fs/btrfs-progs/btrfs-progs-6.9.2.ebuild
index 0fe0ac94b99c..432b2b58e34d 100644
--- a/sys-fs/btrfs-progs/btrfs-progs-6.9.2.ebuild
+++ b/sys-fs/btrfs-progs/btrfs-progs-6.9.2.ebuild
@@ -35,7 +35,7 @@ HOMEPAGE="https://btrfs.readthedocs.io/en/latest/"
LICENSE="GPL-2"
SLOT="0/0" # libbtrfs soname
-IUSE="+convert +man reiserfs static static-libs udev +zstd"
+IUSE="+convert +man experimental reiserfs static static-libs udev +zstd"
# Could support it with just !systemd => eudev, see mdadm, but let's
# see if someone asks for it first.
REQUIRED_USE="static? ( !udev )"
@@ -131,7 +131,7 @@ src_configure() {
--bindir="${EPREFIX}"/sbin
--enable-lzo
- --disable-experimental
+ $(use_enable experimental)
--disable-python
$(use_enable convert)
$(use_enable man documentation)
@@ -171,6 +171,11 @@ src_install() {
emake V=1 DESTDIR="${D}" install "${makeargs[@]}"
+ if use experimental; then
+ exeinto /sbin
+ doexe btrfs-corrupt-block
+ fi
+
newbashcomp btrfs-completion btrfs
}
diff --git a/sys-fs/btrfs-progs/metadata.xml b/sys-fs/btrfs-progs/metadata.xml
index e0d9388ce73c..9bd0c43c582b 100644
--- a/sys-fs/btrfs-progs/metadata.xml
+++ b/sys-fs/btrfs-progs/metadata.xml
@@ -7,6 +7,7 @@
</maintainer>
<use>
<flag name="convert">Build ext2 conversion utility (btrfs-convert)</flag>
+ <flag name="experimental">Enable unstable and experimental features and install btrfs-corrupt-block, as needed by xfstests</flag>
<flag name="reiserfs">Enable reiserfs support in btrfs-convert tool.</flag>
<flag name="static">Build static binaries in addition to the dynamic ones</flag>
</use>