hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/md/Kconfig
....@@ -1,3 +1,4 @@
1
+# SPDX-License-Identifier: GPL-2.0-only
12 #
23 # Block device driver configuration
34 #
....@@ -14,7 +15,7 @@
1415
1516 config BLK_DEV_MD
1617 tristate "RAID support"
17
- ---help---
18
+ help
1819 This driver lets you combine several hard disk partitions into one
1920 logical block device. This can be used to simply append one
2021 partition to another one or to combine several redundant hard disks
....@@ -26,7 +27,7 @@
2627
2728 More information about Software RAID on Linux is contained in the
2829 Software RAID mini-HOWTO, available from
29
- <http://www.tldp.org/docs.html#howto>. There you will also learn
30
+ <https://www.tldp.org/docs.html#howto>. There you will also learn
3031 where to get the supporting user space utilities raidtools.
3132
3233 If unsure, say N.
....@@ -35,11 +36,11 @@
3536 bool "Autodetect RAID arrays during kernel boot"
3637 depends on BLK_DEV_MD=y
3738 default y
38
- ---help---
39
+ help
3940 If you say Y here, then the kernel will try to autodetect raid
40
- arrays as part of its boot process.
41
+ arrays as part of its boot process.
4142
42
- If you don't use raid and say Y, this autodetection can cause
43
+ If you don't use raid and say Y, this autodetection can cause
4344 a several-second delay in the boot time due to various
4445 synchronisation steps that are part of this step.
4546
....@@ -48,7 +49,7 @@
4849 config MD_LINEAR
4950 tristate "Linear (append) mode"
5051 depends on BLK_DEV_MD
51
- ---help---
52
+ help
5253 If you say Y here, then your multiple devices driver will be able to
5354 use the so-called linear mode, i.e. it will combine the hard disk
5455 partitions by simply appending one to the other.
....@@ -61,7 +62,7 @@
6162 config MD_RAID0
6263 tristate "RAID-0 (striping) mode"
6364 depends on BLK_DEV_MD
64
- ---help---
65
+ help
6566 If you say Y here, then your multiple devices driver will be able to
6667 use the so-called raid0 mode, i.e. it will combine the hard disk
6768 partitions into one logical device in such a fashion as to fill them
....@@ -70,7 +71,7 @@
7071
7172 Information about Software RAID on Linux is contained in the
7273 Software-RAID mini-HOWTO, available from
73
- <http://www.tldp.org/docs.html#howto>. There you will also
74
+ <https://www.tldp.org/docs.html#howto>. There you will also
7475 learn where to get the supporting user space utilities raidtools.
7576
7677 To compile this as a module, choose M here: the module
....@@ -81,7 +82,7 @@
8182 config MD_RAID1
8283 tristate "RAID-1 (mirroring) mode"
8384 depends on BLK_DEV_MD
84
- ---help---
85
+ help
8586 A RAID-1 set consists of several disk drives which are exact copies
8687 of each other. In the event of a mirror failure, the RAID driver
8788 will continue to use the operational mirrors in the set, providing
....@@ -92,7 +93,7 @@
9293
9394 Information about Software RAID on Linux is contained in the
9495 Software-RAID mini-HOWTO, available from
95
- <http://www.tldp.org/docs.html#howto>. There you will also
96
+ <https://www.tldp.org/docs.html#howto>. There you will also
9697 learn where to get the supporting user space utilities raidtools.
9798
9899 If you want to use such a RAID-1 set, say Y. To compile this code
....@@ -103,7 +104,7 @@
103104 config MD_RAID10
104105 tristate "RAID-10 (mirrored striping) mode"
105106 depends on BLK_DEV_MD
106
- ---help---
107
+ help
107108 RAID-10 provides a combination of striping (RAID-0) and
108109 mirroring (RAID-1) with easier configuration and more flexible
109110 layout.
....@@ -128,7 +129,7 @@
128129 select ASYNC_XOR
129130 select ASYNC_PQ
130131 select ASYNC_RAID6_RECOV
131
- ---help---
132
+ help
132133 A RAID-5 set of N drives with a capacity of C MB per drive provides
133134 the capacity of C * (N - 1) MB, and protects against a failure
134135 of a single drive. For a given sector (row) number, (N - 1) drives
....@@ -147,7 +148,7 @@
147148
148149 Information about Software RAID on Linux is contained in the
149150 Software-RAID mini-HOWTO, available from
150
- <http://www.tldp.org/docs.html#howto>. There you will also
151
+ <https://www.tldp.org/docs.html#howto>. There you will also
151152 learn where to get the supporting user space utilities raidtools.
152153
153154 If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y. To
....@@ -182,7 +183,7 @@
182183 depends on BLK_DEV_MD
183184 depends on DLM
184185 default n
185
- ---help---
186
+ help
186187 Clustering support for MD devices. This enables locking and
187188 synchronization across multiple systems on the cluster, so all
188189 nodes in the cluster can access the MD devices simultaneously.
....@@ -202,7 +203,7 @@
202203 tristate "Device mapper support"
203204 select BLK_DEV_DM_BUILTIN
204205 depends on DAX || DAX=n
205
- ---help---
206
+ help
206207 Device-mapper is a low level volume manager. It works by allowing
207208 people to specify mappings for ranges of logical sectors. Various
208209 mapping types are available, in addition people may write their own
....@@ -215,21 +216,10 @@
215216
216217 If unsure, say N.
217218
218
-config DM_MQ_DEFAULT
219
- bool "request-based DM: use blk-mq I/O path by default"
220
- depends on BLK_DEV_DM
221
- ---help---
222
- This option enables the blk-mq based I/O path for request-based
223
- DM devices by default. With the option the dm_mod.use_blk_mq
224
- module/boot option defaults to Y, without it to N, but it can
225
- still be overriden either way.
226
-
227
- If unsure say N.
228
-
229219 config DM_DEBUG
230220 bool "Device mapper debugging support"
231221 depends on BLK_DEV_DM
232
- ---help---
222
+ help
233223 Enable this for messages that may help debug device-mapper problems.
234224
235225 If unsure, say N.
....@@ -237,7 +227,7 @@
237227 config DM_BUFIO
238228 tristate
239229 depends on BLK_DEV_DM
240
- ---help---
230
+ help
241231 This interface allows you to do buffered I/O on a device and acts
242232 as a cache, holding recently-read blocks in memory and performing
243233 delayed writes.
....@@ -245,7 +235,7 @@
245235 config DM_DEBUG_BLOCK_MANAGER_LOCKING
246236 bool "Block manager locking"
247237 depends on DM_BUFIO
248
- ---help---
238
+ help
249239 Block manager locking can catch various metadata corruption issues.
250240
251241 If unsure, say N.
....@@ -254,7 +244,7 @@
254244 bool "Keep stack trace of persistent data block lock holders"
255245 depends on STACKTRACE_SUPPORT && DM_DEBUG_BLOCK_MANAGER_LOCKING
256246 select STACKTRACE
257
- ---help---
247
+ help
258248 Enable this for messages that may help debug problems with the
259249 block manager locking used by thin provisioning and caching.
260250
....@@ -263,7 +253,7 @@
263253 config DM_BIO_PRISON
264254 tristate
265255 depends on BLK_DEV_DM
266
- ---help---
256
+ help
267257 Some bio locking schemes used by other device-mapper targets
268258 including thin provisioning.
269259
....@@ -272,16 +262,18 @@
272262 config DM_UNSTRIPED
273263 tristate "Unstriped target"
274264 depends on BLK_DEV_DM
275
- ---help---
265
+ help
276266 Unstripes I/O so it is issued solely on a single drive in a HW
277267 RAID0 or dm-striped target.
278268
279269 config DM_CRYPT
280270 tristate "Crypt target support"
281271 depends on BLK_DEV_DM
272
+ depends on (ENCRYPTED_KEYS || ENCRYPTED_KEYS=n)
282273 select CRYPTO
283274 select CRYPTO_CBC
284
- ---help---
275
+ select CRYPTO_ESSIV
276
+ help
285277 This device-mapper target allows you to create a device that
286278 transparently encrypts the data on it. You'll need to activate
287279 the ciphers you're going to use in the cryptoapi configuration.
....@@ -319,16 +311,16 @@
319311 tristate "Snapshot target"
320312 depends on BLK_DEV_DM
321313 select DM_BUFIO
322
- ---help---
323
- Allow volume managers to take writable snapshots of a device.
314
+ help
315
+ Allow volume managers to take writable snapshots of a device.
324316
325317 config DM_THIN_PROVISIONING
326318 tristate "Thin provisioning target"
327319 depends on BLK_DEV_DM
328320 select DM_PERSISTENT_DATA
329321 select DM_BIO_PRISON
330
- ---help---
331
- Provides thin provisioning and snapshots that share a data store.
322
+ help
323
+ Provides thin provisioning and snapshots that share a data store.
332324
333325 config DM_CACHE
334326 tristate "Cache target (EXPERIMENTAL)"
....@@ -336,29 +328,29 @@
336328 default n
337329 select DM_PERSISTENT_DATA
338330 select DM_BIO_PRISON
339
- ---help---
340
- dm-cache attempts to improve performance of a block device by
341
- moving frequently used data to a smaller, higher performance
342
- device. Different 'policy' plugins can be used to change the
343
- algorithms used to select which blocks are promoted, demoted,
344
- cleaned etc. It supports writeback and writethrough modes.
331
+ help
332
+ dm-cache attempts to improve performance of a block device by
333
+ moving frequently used data to a smaller, higher performance
334
+ device. Different 'policy' plugins can be used to change the
335
+ algorithms used to select which blocks are promoted, demoted,
336
+ cleaned etc. It supports writeback and writethrough modes.
345337
346338 config DM_CACHE_SMQ
347339 tristate "Stochastic MQ Cache Policy (EXPERIMENTAL)"
348340 depends on DM_CACHE
349341 default y
350
- ---help---
351
- A cache policy that uses a multiqueue ordered by recent hits
352
- to select which blocks should be promoted and demoted.
353
- This is meant to be a general purpose policy. It prioritises
354
- reads over writes. This SMQ policy (vs MQ) offers the promise
355
- of less memory utilization, improved performance and increased
356
- adaptability in the face of changing workloads.
342
+ help
343
+ A cache policy that uses a multiqueue ordered by recent hits
344
+ to select which blocks should be promoted and demoted.
345
+ This is meant to be a general purpose policy. It prioritises
346
+ reads over writes. This SMQ policy (vs MQ) offers the promise
347
+ of less memory utilization, improved performance and increased
348
+ adaptability in the face of changing workloads.
357349
358350 config DM_WRITECACHE
359351 tristate "Writecache target"
360352 depends on BLK_DEV_DM
361
- ---help---
353
+ help
362354 The writecache target caches writes on persistent memory or SSD.
363355 It is intended for databases or other programs that need extremely
364356 low commit latency.
....@@ -366,29 +358,51 @@
366358 The writecache target doesn't cache reads because reads are supposed
367359 to be cached in standard RAM.
368360
361
+config DM_EBS
362
+ tristate "Emulated block size target (EXPERIMENTAL)"
363
+ depends on BLK_DEV_DM
364
+ select DM_BUFIO
365
+ help
366
+ dm-ebs emulates smaller logical block size on backing devices
367
+ with larger ones (e.g. 512 byte sectors on 4K native disks).
368
+
369369 config DM_ERA
370370 tristate "Era target (EXPERIMENTAL)"
371371 depends on BLK_DEV_DM
372372 default n
373373 select DM_PERSISTENT_DATA
374374 select DM_BIO_PRISON
375
- ---help---
376
- dm-era tracks which parts of a block device are written to
377
- over time. Useful for maintaining cache coherency when using
378
- vendor snapshots.
375
+ help
376
+ dm-era tracks which parts of a block device are written to
377
+ over time. Useful for maintaining cache coherency when using
378
+ vendor snapshots.
379
+
380
+config DM_CLONE
381
+ tristate "Clone target (EXPERIMENTAL)"
382
+ depends on BLK_DEV_DM
383
+ default n
384
+ select DM_PERSISTENT_DATA
385
+ help
386
+ dm-clone produces a one-to-one copy of an existing, read-only source
387
+ device into a writable destination device. The cloned device is
388
+ visible/mountable immediately and the copy of the source device to the
389
+ destination device happens in the background, in parallel with user
390
+ I/O.
391
+
392
+ If unsure, say N.
379393
380394 config DM_MIRROR
381395 tristate "Mirror target"
382396 depends on BLK_DEV_DM
383
- ---help---
384
- Allow volume managers to mirror logical volumes, also
385
- needed for live data migration tools such as 'pvmove'.
397
+ help
398
+ Allow volume managers to mirror logical volumes, also
399
+ needed for live data migration tools such as 'pvmove'.
386400
387401 config DM_LOG_USERSPACE
388402 tristate "Mirror userspace logging"
389403 depends on DM_MIRROR && NET
390404 select CONNECTOR
391
- ---help---
405
+ help
392406 The userspace logging module provides a mechanism for
393407 relaying the dm-dirty-log API to userspace. Log designs
394408 which are more suited to userspace implementation (e.g.
....@@ -403,7 +417,7 @@
403417 select MD_RAID10
404418 select MD_RAID456
405419 select BLK_DEV_MD
406
- ---help---
420
+ help
407421 A dm target that supports RAID1, RAID10, RAID4, RAID5 and RAID6 mappings
408422
409423 A RAID-5 set of N drives with a capacity of C MB per drive provides
....@@ -425,7 +439,7 @@
425439 config DM_ZERO
426440 tristate "Zero target"
427441 depends on BLK_DEV_DM
428
- ---help---
442
+ help
429443 A target that discards writes, and returns all zeroes for
430444 reads. Useful in some recovery situations.
431445
....@@ -437,13 +451,13 @@
437451 # it is, DM_MULTIPATH must depend on it. We get a build
438452 # error if SCSI_DH=m and DM_MULTIPATH=y
439453 depends on !SCSI_DH || SCSI
440
- ---help---
454
+ help
441455 Allow volume managers to support multipath hardware.
442456
443457 config DM_MULTIPATH_QL
444458 tristate "I/O Path Selector based on the number of in-flight I/Os"
445459 depends on DM_MULTIPATH
446
- ---help---
460
+ help
447461 This path selector is a dynamic load balancer which selects
448462 the path with the least number of in-flight I/Os.
449463
....@@ -452,33 +466,65 @@
452466 config DM_MULTIPATH_ST
453467 tristate "I/O Path Selector based on the service time"
454468 depends on DM_MULTIPATH
455
- ---help---
469
+ help
456470 This path selector is a dynamic load balancer which selects
457471 the path expected to complete the incoming I/O in the shortest
458472 time.
459473
460474 If unsure, say N.
461475
476
+config DM_MULTIPATH_HST
477
+ tristate "I/O Path Selector based on historical service time"
478
+ depends on DM_MULTIPATH
479
+ help
480
+ This path selector is a dynamic load balancer which selects
481
+ the path expected to complete the incoming I/O in the shortest
482
+ time by comparing estimated service time (based on historical
483
+ service time).
484
+
485
+ If unsure, say N.
486
+
462487 config DM_DELAY
463488 tristate "I/O delaying target"
464489 depends on BLK_DEV_DM
465
- ---help---
490
+ help
466491 A target that delays reads and/or writes and can send
467492 them to different devices. Useful for testing.
493
+
494
+ If unsure, say N.
495
+
496
+config DM_DUST
497
+ tristate "Bad sector simulation target"
498
+ depends on BLK_DEV_DM
499
+ help
500
+ A target that simulates bad sector behavior.
501
+ Useful for testing.
502
+
503
+ If unsure, say N.
504
+
505
+config DM_INIT
506
+ bool "DM \"dm-mod.create=\" parameter support"
507
+ depends on BLK_DEV_DM=y
508
+ help
509
+ Enable "dm-mod.create=" parameter to create mapped devices at init time.
510
+ This option is useful to allow mounting rootfs without requiring an
511
+ initramfs.
512
+ See Documentation/admin-guide/device-mapper/dm-init.rst for dm-mod.create="..."
513
+ format.
468514
469515 If unsure, say N.
470516
471517 config DM_UEVENT
472518 bool "DM uevents"
473519 depends on BLK_DEV_DM
474
- ---help---
520
+ help
475521 Generate udev events for DM events.
476522
477523 config DM_FLAKEY
478524 tristate "Flakey target"
479525 depends on BLK_DEV_DM
480
- ---help---
481
- A target that intermittently fails I/O for debugging purposes.
526
+ help
527
+ A target that intermittently fails I/O for debugging purposes.
482528
483529 config DM_VERITY
484530 tristate "Verity target support"
....@@ -486,7 +532,7 @@
486532 select CRYPTO
487533 select CRYPTO_HASH
488534 select DM_BUFIO
489
- ---help---
535
+ help
490536 This device-mapper target creates a read-only device that
491537 transparently validates the data on one underlying device against
492538 a pre-generated tree of cryptographic checksums stored on a second
....@@ -500,21 +546,24 @@
500546
501547 If unsure, say N.
502548
503
-config DM_VERITY_AVB
504
- tristate "Support AVB specific verity error behavior"
549
+config DM_VERITY_VERIFY_ROOTHASH_SIG
550
+ def_bool n
551
+ bool "Verity data device root hash signature verification support"
505552 depends on DM_VERITY
506
- ---help---
507
- Enables Android Verified Boot platform-specific error
508
- behavior. In particular, it will modify the vbmeta partition
509
- specified on the kernel command-line when non-transient error
510
- occurs (followed by a panic).
553
+ select SYSTEM_DATA_VERIFICATION
554
+ help
555
+ Add ability for dm-verity device to be validated if the
556
+ pre-generated tree of cryptographic checksums passed has a pkcs#7
557
+ signature file that can validate the roothash of the tree.
558
+
559
+ If unsure, say N.
511560
512561 config DM_VERITY_FEC
513562 bool "Verity forward error correction support"
514563 depends on DM_VERITY
515564 select REED_SOLOMON
516565 select REED_SOLOMON_DEC8
517
- ---help---
566
+ help
518567 Add forward error correction support to dm-verity. This option
519568 makes it possible to use pre-generated error correction data to
520569 recover from corrupted blocks.
....@@ -524,7 +573,7 @@
524573 config DM_SWITCH
525574 tristate "Switch target support (EXPERIMENTAL)"
526575 depends on BLK_DEV_DM
527
- ---help---
576
+ help
528577 This device-mapper target creates a device that supports an arbitrary
529578 mapping of fixed-size regions of I/O across a fixed set of paths.
530579 The path used for any specific region can be switched dynamically
....@@ -538,7 +587,7 @@
538587 config DM_LOG_WRITES
539588 tristate "Log writes target support"
540589 depends on BLK_DEV_DM
541
- ---help---
590
+ help
542591 This device-mapper target takes two devices, one device to use
543592 normally, one to log all write operations done to the first device.
544593 This is for use by file system developers wishing to verify that
....@@ -557,8 +606,9 @@
557606 select BLK_DEV_INTEGRITY
558607 select DM_BUFIO
559608 select CRYPTO
609
+ select CRYPTO_SKCIPHER
560610 select ASYNC_XOR
561
- ---help---
611
+ help
562612 This device-mapper target emulates a block device that has
563613 additional per-sector tags that can be used for storing
564614 integrity information.
....@@ -574,7 +624,8 @@
574624 tristate "Drive-managed zoned block device target support"
575625 depends on BLK_DEV_DM
576626 depends on BLK_DEV_ZONED
577
- ---help---
627
+ select CRC32
628
+ help
578629 This device-mapper target takes a host-managed or host-aware zoned
579630 block device and exposes most of its capacity as a regular block
580631 device (drive-managed zoned block device) without any write
....@@ -593,31 +644,11 @@
593644 tristate "Backup block device"
594645 depends on BLK_DEV_DM
595646 select DM_BUFIO
596
- ---help---
647
+ help
597648 This device-mapper target takes a device and keeps a log of all
598649 changes using free blocks identified by issuing a trim command.
599650 This can then be restored by running a command line utility,
600651 or committed by simply replacing the target.
601
-
602
- If unsure, say N.
603
-
604
-config DM_ANDROID_VERITY_AT_MOST_ONCE_DEFAULT_ENABLED
605
- bool "Verity will validate blocks at most once"
606
- depends on DM_VERITY
607
- ---help---
608
- Default enables at_most_once option for dm-verity
609
-
610
- Verify data blocks only the first time they are read from the
611
- data device, rather than every time. This reduces the overhead
612
- of dm-verity so that it can be used on systems that are memory
613
- and/or CPU constrained. However, it provides a reduced level
614
- of security because only offline tampering of the data device's
615
- content will be detected, not online tampering.
616
-
617
- Hash blocks are still verified each time they are read from the
618
- hash device, since verification of hash blocks is less performance
619
- critical than data blocks, and a hash block will not be verified
620
- any more after all the data blocks it covers have been verified anyway.
621652
622653 If unsure, say N.
623654