dm vdo: enable configuration and building of dm-vdo
authorMatthew Sakai <msakai@redhat.com>
Fri, 17 Nov 2023 02:28:35 +0000 (21:28 -0500)
committerMike Snitzer <snitzer@kernel.org>
Tue, 20 Feb 2024 18:43:16 +0000 (13:43 -0500)
dm-vdo targets are not supported for 32-bit configurations. A vdo target
typically requires 1 to 1.5 GB of memory at any given time, which is likely
a large fraction of the addressable memory of a 32-bit system. At the same
time, the amount of addressable storage attached to a 32-bit system may not
be large enough for deduplication to provide much benefit. Because of these
concerns, 32-bit platforms are deemed unlikely to benefit from using a vdo
target, so dm-vdo is targeted only at 64-bit platforms.

Co-developed-by: J. corwin Coburn <corwin@hurlbutnet.net>
Signed-off-by: J. corwin Coburn <corwin@hurlbutnet.net>
Co-developed-by: John Wiele <jwiele@redhat.com>
Signed-off-by: John Wiele <jwiele@redhat.com>
Signed-off-by: Matthew Sakai <msakai@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
drivers/md/Kconfig
drivers/md/Makefile

index a743e2c..cef25cf 100644 (file)
@@ -498,6 +498,22 @@ config DM_FLAKEY
        help
         A target that intermittently fails I/O for debugging purposes.
 
+config DM_VDO
+       tristate "VDO: deduplication and compression target"
+       depends on 64BIT
+       depends on BLK_DEV_DM
+       select DM_BUFIO
+       select LZ4_COMPRESS
+       select LZ4_DECOMPRESS
+       help
+         This device mapper target presents a block device with
+         deduplication, compression and thin-provisioning.
+
+         To compile this code as a module, choose M here: the module will
+         be called dm-vdo.
+
+         If unsure, say N.
+
 config DM_VERITY
        tristate "Verity target support"
        depends on BLK_DEV_DM
index 027d7cf..2ac0e63 100644 (file)
@@ -25,6 +25,7 @@ dm-ebs-y      += dm-ebs-target.o
 dm-era-y       += dm-era-target.o
 dm-clone-y     += dm-clone-target.o dm-clone-metadata.o
 dm-verity-y    += dm-verity-target.o
+dm-vdo-y       += dm-vdo-target.o $(patsubst drivers/md/dm-vdo/%.c,dm-vdo/%.o,$(wildcard $(src)/dm-vdo/*.c))
 dm-zoned-y     += dm-zoned-target.o dm-zoned-metadata.o dm-zoned-reclaim.o
 
 md-mod-y       += md.o md-bitmap.o
@@ -68,6 +69,7 @@ obj-$(CONFIG_DM_ZERO)         += dm-zero.o
 obj-$(CONFIG_DM_RAID)          += dm-raid.o
 obj-$(CONFIG_DM_THIN_PROVISIONING) += dm-thin-pool.o
 obj-$(CONFIG_DM_VERITY)                += dm-verity.o
+obj-$(CONFIG_DM_VDO)            += dm-vdo.o
 obj-$(CONFIG_DM_CACHE)         += dm-cache.o
 obj-$(CONFIG_DM_CACHE_SMQ)     += dm-cache-smq.o
 obj-$(CONFIG_DM_EBS)           += dm-ebs.o