^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) # Block device driver configuration
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) menuconfig MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) bool "Multiple devices driver support (RAID and LVM)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) depends on BLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) select SRCU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) Support multiple physical spindles through a single logical device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) Required for RAID and logical volume management.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) if MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) config BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) tristate "RAID support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) This driver lets you combine several hard disk partitions into one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) logical block device. This can be used to simply append one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) partition to another one or to combine several redundant hard disks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) into a RAID1/4/5 device so as to provide protection against hard
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) disk failures. This is called "Software RAID" since the combining of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) the partitions is done by the kernel. "Hardware RAID" means that the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) combining is done by a dedicated controller; if you have such a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) controller, you do not need to say Y here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) More information about Software RAID on Linux is contained in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) Software RAID mini-HOWTO, available from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) <https://www.tldp.org/docs.html#howto>. There you will also learn
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) where to get the supporting user space utilities raidtools.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) config MD_AUTODETECT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) bool "Autodetect RAID arrays during kernel boot"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) depends on BLK_DEV_MD=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) If you say Y here, then the kernel will try to autodetect raid
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) arrays as part of its boot process.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) If you don't use raid and say Y, this autodetection can cause
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) a several-second delay in the boot time due to various
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) synchronisation steps that are part of this step.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) config MD_LINEAR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) tristate "Linear (append) mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) If you say Y here, then your multiple devices driver will be able to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) use the so-called linear mode, i.e. it will combine the hard disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) partitions by simply appending one to the other.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) To compile this as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) will be called linear.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) config MD_RAID0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) tristate "RAID-0 (striping) mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) If you say Y here, then your multiple devices driver will be able to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) use the so-called raid0 mode, i.e. it will combine the hard disk
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) partitions into one logical device in such a fashion as to fill them
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) up evenly, one chunk here and one chunk there. This will increase
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) the throughput rate if the partitions reside on distinct disks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) Information about Software RAID on Linux is contained in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) Software-RAID mini-HOWTO, available from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) <https://www.tldp.org/docs.html#howto>. There you will also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) learn where to get the supporting user space utilities raidtools.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) To compile this as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) will be called raid0.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) config MD_RAID1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) tristate "RAID-1 (mirroring) mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) A RAID-1 set consists of several disk drives which are exact copies
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) of each other. In the event of a mirror failure, the RAID driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) will continue to use the operational mirrors in the set, providing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) an error free MD (multiple device) to the higher levels of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) kernel. In a set with N drives, the available space is the capacity
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) of a single drive, and the set protects against a failure of (N - 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) drives.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) Information about Software RAID on Linux is contained in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) Software-RAID mini-HOWTO, available from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) <https://www.tldp.org/docs.html#howto>. There you will also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) learn where to get the supporting user space utilities raidtools.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) If you want to use such a RAID-1 set, say Y. To compile this code
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) as a module, choose M here: the module will be called raid1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) config MD_RAID10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) tristate "RAID-10 (mirrored striping) mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) RAID-10 provides a combination of striping (RAID-0) and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) mirroring (RAID-1) with easier configuration and more flexible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) layout.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) be the same size (or at least, only as much as the smallest device
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) will be used).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) RAID-10 provides a variety of layouts that provide different levels
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) of redundancy and performance.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) RAID-10 requires mdadm-1.7.0 or later, available at:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) https://www.kernel.org/pub/linux/utils/raid/mdadm/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) config MD_RAID456
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) tristate "RAID-4/RAID-5/RAID-6 mode"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) select RAID6_PQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) select LIBCRC32C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) select ASYNC_MEMCPY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) select ASYNC_XOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) select ASYNC_PQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) select ASYNC_RAID6_RECOV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) A RAID-5 set of N drives with a capacity of C MB per drive provides
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) the capacity of C * (N - 1) MB, and protects against a failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) of a single drive. For a given sector (row) number, (N - 1) drives
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) contain data sectors, and one drive contains the parity protection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) For a RAID-4 set, the parity blocks are present on a single drive,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) while a RAID-5 set distributes the parity across the drives in one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) of the available parity distribution methods.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) A RAID-6 set of N drives with a capacity of C MB per drive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) provides the capacity of C * (N - 2) MB, and protects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) against a failure of any two drives. For a given sector
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) (row) number, (N - 2) drives contain data sectors, and two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) drives contains two independent redundancy syndromes. Like
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) RAID-5, RAID-6 distributes the syndromes across the drives
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) in one of the available parity distribution methods.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) Information about Software RAID on Linux is contained in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) Software-RAID mini-HOWTO, available from
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) <https://www.tldp.org/docs.html#howto>. There you will also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) learn where to get the supporting user space utilities raidtools.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y. To
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) compile this code as a module, choose M here: the module
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) will be called raid456.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) If unsure, say Y.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) config MD_MULTIPATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) tristate "Multipath I/O support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) MD_MULTIPATH provides a simple multi-path personality for use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) the MD framework. It is not under active development. New
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) projects should consider using DM_MULTIPATH which has more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) features and more testing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) config MD_FAULTY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) tristate "Faulty test module for MD"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) The "faulty" module allows for a block device that occasionally returns
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) read or write errors. It is useful for testing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) In unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) config MD_CLUSTER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) tristate "Cluster Support for MD"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) depends on BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) depends on DLM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) Clustering support for MD devices. This enables locking and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) synchronization across multiple systems on the cluster, so all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) nodes in the cluster can access the MD devices simultaneously.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) This brings the redundancy (and uptime) of RAID levels across the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) nodes of the cluster. Currently, it can work with raid1 and raid10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) (limited support).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) source "drivers/md/bcache/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) config BLK_DEV_DM_BUILTIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) bool
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) config BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) tristate "Device mapper support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) select BLK_DEV_DM_BUILTIN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) depends on DAX || DAX=n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) Device-mapper is a low level volume manager. It works by allowing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) people to specify mappings for ranges of logical sectors. Various
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) mapping types are available, in addition people may write their own
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) modules containing custom mappings if they wish.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) Higher level volume managers such as LVM2 use this driver.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) To compile this as a module, choose M here: the module will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) called dm-mod.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) config DM_DEBUG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) bool "Device mapper debugging support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) Enable this for messages that may help debug device-mapper problems.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) config DM_BUFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) This interface allows you to do buffered I/O on a device and acts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) as a cache, holding recently-read blocks in memory and performing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) delayed writes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) config DM_DEBUG_BLOCK_MANAGER_LOCKING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) bool "Block manager locking"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) depends on DM_BUFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) Block manager locking can catch various metadata corruption issues.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) config DM_DEBUG_BLOCK_STACK_TRACING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) bool "Keep stack trace of persistent data block lock holders"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) select STACKTRACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) Enable this for messages that may help debug problems with the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) block manager locking used by thin provisioning and caching.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) config DM_BIO_PRISON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) tristate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) Some bio locking schemes used by other device-mapper targets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) including thin provisioning.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) source "drivers/md/persistent-data/Kconfig"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) config DM_UNSTRIPED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) tristate "Unstriped target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) Unstripes I/O so it is issued solely on a single drive in a HW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) RAID0 or dm-striped target.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) config DM_CRYPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) tristate "Crypt target support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) select CRYPTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) select CRYPTO_CBC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) select CRYPTO_ESSIV
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) This device-mapper target allows you to create a device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) transparently encrypts the data on it. You'll need to activate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) the ciphers you're going to use in the cryptoapi configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) For further information on dm-crypt and userspace tools see:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) <https://gitlab.com/cryptsetup/cryptsetup/wikis/DMCrypt>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) To compile this code as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) be called dm-crypt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) config DM_DEFAULT_KEY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) tristate "Default-key target support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) depends on BLK_INLINE_ENCRYPTION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) # dm-default-key doesn't require -o inlinecrypt, but it does currently
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) # rely on the inline encryption hooks being built into the kernel.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) depends on FS_ENCRYPTION_INLINE_CRYPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) This device-mapper target allows you to create a device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) assigns a default encryption key to bios that aren't for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) contents of an encrypted file.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) This ensures that all blocks on-disk will be encrypted with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) some key, without the performance hit of file contents being
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) encrypted twice when fscrypt (File-Based Encryption) is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) It is only appropriate to use dm-default-key when key
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) configuration is tightly controlled, like it is in Android,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) such that all fscrypt keys are at least as hard to compromise
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) as the default key.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) config DM_SNAPSHOT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) tristate "Snapshot target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) select DM_BUFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) Allow volume managers to take writable snapshots of a device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) config DM_THIN_PROVISIONING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) tristate "Thin provisioning target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) select DM_PERSISTENT_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) select DM_BIO_PRISON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) Provides thin provisioning and snapshots that share a data store.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) config DM_CACHE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) tristate "Cache target (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) select DM_PERSISTENT_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) select DM_BIO_PRISON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) dm-cache attempts to improve performance of a block device by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) moving frequently used data to a smaller, higher performance
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) device. Different 'policy' plugins can be used to change the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) algorithms used to select which blocks are promoted, demoted,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) cleaned etc. It supports writeback and writethrough modes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) config DM_CACHE_SMQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) depends on DM_CACHE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) A cache policy that uses a multiqueue ordered by recent hits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) to select which blocks should be promoted and demoted.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) This is meant to be a general purpose policy. It prioritises
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) reads over writes. This SMQ policy (vs MQ) offers the promise
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) of less memory utilization, improved performance and increased
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) adaptability in the face of changing workloads.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) config DM_WRITECACHE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) tristate "Writecache target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) The writecache target caches writes on persistent memory or SSD.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) It is intended for databases or other programs that need extremely
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) low commit latency.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) The writecache target doesn't cache reads because reads are supposed
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) to be cached in standard RAM.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) config DM_EBS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) tristate "Emulated block size target (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) select DM_BUFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) dm-ebs emulates smaller logical block size on backing devices
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) with larger ones (e.g. 512 byte sectors on 4K native disks).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) config DM_ERA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) tristate "Era target (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) select DM_PERSISTENT_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) select DM_BIO_PRISON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) dm-era tracks which parts of a block device are written to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) over time. Useful for maintaining cache coherency when using
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) vendor snapshots.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) config DM_CLONE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) tristate "Clone target (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) default n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) select DM_PERSISTENT_DATA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) dm-clone produces a one-to-one copy of an existing, read-only source
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) device into a writable destination device. The cloned device is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) visible/mountable immediately and the copy of the source device to the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) destination device happens in the background, in parallel with user
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) I/O.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) config DM_MIRROR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) tristate "Mirror target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) Allow volume managers to mirror logical volumes, also
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) needed for live data migration tools such as 'pvmove'.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) config DM_LOG_USERSPACE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) tristate "Mirror userspace logging"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) depends on DM_MIRROR && NET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) select CONNECTOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) The userspace logging module provides a mechanism for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) relaying the dm-dirty-log API to userspace. Log designs
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) which are more suited to userspace implementation (e.g.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) shared storage logs) or experimental logs can be implemented
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) by leveraging this framework.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) config DM_RAID
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) tristate "RAID 1/4/5/6/10 target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) select MD_RAID0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) select MD_RAID1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) select MD_RAID10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) select MD_RAID456
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) select BLK_DEV_MD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) A RAID-5 set of N drives with a capacity of C MB per drive provides
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) the capacity of C * (N - 1) MB, and protects against a failure
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) of a single drive. For a given sector (row) number, (N - 1) drives
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) contain data sectors, and one drive contains the parity protection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) For a RAID-4 set, the parity blocks are present on a single drive,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) while a RAID-5 set distributes the parity across the drives in one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) of the available parity distribution methods.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) A RAID-6 set of N drives with a capacity of C MB per drive
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) provides the capacity of C * (N - 2) MB, and protects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) against a failure of any two drives. For a given sector
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) (row) number, (N - 2) drives contain data sectors, and two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) drives contains two independent redundancy syndromes. Like
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) RAID-5, RAID-6 distributes the syndromes across the drives
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) in one of the available parity distribution methods.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) config DM_ZERO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) tristate "Zero target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) A target that discards writes, and returns all zeroes for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) reads. Useful in some recovery situations.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) config DM_MULTIPATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) tristate "Multipath target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) # nasty syntax but means make DM_MULTIPATH independent
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) # of SCSI_DH if the latter isn't defined but if
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) # it is, DM_MULTIPATH must depend on it. We get a build
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) # error if SCSI_DH=m and DM_MULTIPATH=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) depends on !SCSI_DH || SCSI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) Allow volume managers to support multipath hardware.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) config DM_MULTIPATH_QL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) tristate "I/O Path Selector based on the number of in-flight I/Os"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) depends on DM_MULTIPATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) This path selector is a dynamic load balancer which selects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) the path with the least number of in-flight I/Os.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) config DM_MULTIPATH_ST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) tristate "I/O Path Selector based on the service time"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) depends on DM_MULTIPATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) This path selector is a dynamic load balancer which selects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) the path expected to complete the incoming I/O in the shortest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) config DM_MULTIPATH_HST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) tristate "I/O Path Selector based on historical service time"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) depends on DM_MULTIPATH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) This path selector is a dynamic load balancer which selects
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) the path expected to complete the incoming I/O in the shortest
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) time by comparing estimated service time (based on historical
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) service time).
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) config DM_DELAY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) tristate "I/O delaying target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) A target that delays reads and/or writes and can send
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) them to different devices. Useful for testing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) config DM_DUST
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) tristate "Bad sector simulation target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) A target that simulates bad sector behavior.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) Useful for testing.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) config DM_INIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) bool "DM \"dm-mod.create=\" parameter support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) depends on BLK_DEV_DM=y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) Enable "dm-mod.create=" parameter to create mapped devices at init time.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) This option is useful to allow mounting rootfs without requiring an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) initramfs.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) See Documentation/admin-guide/device-mapper/dm-init.rst for dm-mod.create="..."
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) format.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) config DM_UEVENT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) bool "DM uevents"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) Generate udev events for DM events.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) config DM_FLAKEY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) tristate "Flakey target"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) A target that intermittently fails I/O for debugging purposes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) config DM_VERITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) tristate "Verity target support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) select CRYPTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) select CRYPTO_HASH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) select DM_BUFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) This device-mapper target creates a read-only device that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) transparently validates the data on one underlying device against
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) a pre-generated tree of cryptographic checksums stored on a second
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) You'll need to activate the digests you're going to use in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) cryptoapi configuration.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) To compile this code as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) be called dm-verity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) config DM_VERITY_VERIFY_ROOTHASH_SIG
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) def_bool n
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) bool "Verity data device root hash signature verification support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) depends on DM_VERITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) select SYSTEM_DATA_VERIFICATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) Add ability for dm-verity device to be validated if the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) pre-generated tree of cryptographic checksums passed has a pkcs#7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) signature file that can validate the roothash of the tree.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) config DM_VERITY_FEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) bool "Verity forward error correction support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) depends on DM_VERITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) select REED_SOLOMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) select REED_SOLOMON_DEC8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) Add forward error correction support to dm-verity. This option
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) makes it possible to use pre-generated error correction data to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) recover from corrupted blocks.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) config DM_SWITCH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) tristate "Switch target support (EXPERIMENTAL)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) This device-mapper target creates a device that supports an arbitrary
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) mapping of fixed-size regions of I/O across a fixed set of paths.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) The path used for any specific region can be switched dynamically
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) by sending the target a message.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) To compile this code as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) be called dm-switch.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) config DM_LOG_WRITES
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) tristate "Log writes target support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) This device-mapper target takes two devices, one device to use
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) normally, one to log all write operations done to the first device.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) This is for use by file system developers wishing to verify that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) their fs is writing a consistent file system at all times by allowing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) them to replay the log in a variety of ways and to check the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) contents.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) To compile this code as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) be called dm-log-writes.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) config DM_INTEGRITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) tristate "Integrity target support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) select BLK_DEV_INTEGRITY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) select DM_BUFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) select CRYPTO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) select CRYPTO_SKCIPHER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) select ASYNC_XOR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) This device-mapper target emulates a block device that has
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) additional per-sector tags that can be used for storing
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) integrity information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) This integrity target is used with the dm-crypt target to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) provide authenticated disk encryption or it can be used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) standalone.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) To compile this code as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) be called dm-integrity.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) config DM_ZONED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) tristate "Drive-managed zoned block device target support"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) depends on BLK_DEV_ZONED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) select CRC32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) This device-mapper target takes a host-managed or host-aware zoned
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) block device and exposes most of its capacity as a regular block
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) device (drive-managed zoned block device) without any write
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) constraints. This is mainly intended for use with file systems that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) do not natively support zoned block devices but still want to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) benefit from the increased capacity offered by SMR disks. Other uses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) by applications using raw block devices (for example object stores)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) are also possible.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) To compile this code as a module, choose M here: the module will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) be called dm-zoned.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) config DM_BOW
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) tristate "Backup block device"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) select DM_BUFIO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) This device-mapper target takes a device and keeps a log of all
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) changes using free blocks identified by issuing a trim command.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) This can then be restored by running a command line utility,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) or committed by simply replacing the target.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) config DM_USER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) tristate "Block device in userspace"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) depends on BLK_DEV_DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) default y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) This device-mapper target allows a userspace daemon to provide the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) contents of a block device. See
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) <file:Documentation/block/dm-user.rst> for more information.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) To compile this code as a module, choose M here: the module will be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) called dm-user.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) If unsure, say N.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) endif # MD