- patches.suse/slab-handle-memoryless-nodes-v2a.patch: Refresh.
[linux-flexiantxendom0-3.2.10.git] / drivers / md / Kconfig
1 #
2 # Block device driver configuration
3 #
4
5 menuconfig MD
6         bool "Multiple devices driver support (RAID and LVM)"
7         depends on BLOCK
8         help
9           Support multiple physical spindles through a single logical device.
10           Required for RAID and logical volume management.
11
12 if MD
13
14 config BLK_DEV_MD
15         tristate "RAID support"
16         ---help---
17           This driver lets you combine several hard disk partitions into one
18           logical block device. This can be used to simply append one
19           partition to another one or to combine several redundant hard disks
20           into a RAID1/4/5 device so as to provide protection against hard
21           disk failures. This is called "Software RAID" since the combining of
22           the partitions is done by the kernel. "Hardware RAID" means that the
23           combining is done by a dedicated controller; if you have such a
24           controller, you do not need to say Y here.
25
26           More information about Software RAID on Linux is contained in the
27           Software RAID mini-HOWTO, available from
28           <http://www.tldp.org/docs.html#howto>. There you will also learn
29           where to get the supporting user space utilities raidtools.
30
31           If unsure, say N.
32
33 config MD_AUTODETECT
34         bool "Autodetect RAID arrays during kernel boot"
35         depends on BLK_DEV_MD=y
36         default y
37         ---help---
38           If you say Y here, then the kernel will try to autodetect raid
39           arrays as part of its boot process. 
40
41           If you don't use raid and say Y, this autodetection can cause 
42           a several-second delay in the boot time due to various
43           synchronisation steps that are part of this step.
44
45           If unsure, say Y.
46
47 config MD_LINEAR
48         tristate "Linear (append) mode"
49         depends on BLK_DEV_MD
50         ---help---
51           If you say Y here, then your multiple devices driver will be able to
52           use the so-called linear mode, i.e. it will combine the hard disk
53           partitions by simply appending one to the other.
54
55           To compile this as a module, choose M here: the module
56           will be called linear.
57
58           If unsure, say Y.
59
60 config MD_RAID0
61         tristate "RAID-0 (striping) mode"
62         depends on BLK_DEV_MD
63         ---help---
64           If you say Y here, then your multiple devices driver will be able to
65           use the so-called raid0 mode, i.e. it will combine the hard disk
66           partitions into one logical device in such a fashion as to fill them
67           up evenly, one chunk here and one chunk there. This will increase
68           the throughput rate if the partitions reside on distinct disks.
69
70           Information about Software RAID on Linux is contained in the
71           Software-RAID mini-HOWTO, available from
72           <http://www.tldp.org/docs.html#howto>. There you will also
73           learn where to get the supporting user space utilities raidtools.
74
75           To compile this as a module, choose M here: the module
76           will be called raid0.
77
78           If unsure, say Y.
79
80 config MD_RAID1
81         tristate "RAID-1 (mirroring) mode"
82         depends on BLK_DEV_MD
83         ---help---
84           A RAID-1 set consists of several disk drives which are exact copies
85           of each other.  In the event of a mirror failure, the RAID driver
86           will continue to use the operational mirrors in the set, providing
87           an error free MD (multiple device) to the higher levels of the
88           kernel.  In a set with N drives, the available space is the capacity
89           of a single drive, and the set protects against a failure of (N - 1)
90           drives.
91
92           Information about Software RAID on Linux is contained in the
93           Software-RAID mini-HOWTO, available from
94           <http://www.tldp.org/docs.html#howto>.  There you will also
95           learn where to get the supporting user space utilities raidtools.
96
97           If you want to use such a RAID-1 set, say Y.  To compile this code
98           as a module, choose M here: the module will be called raid1.
99
100           If unsure, say Y.
101
102 config MD_RAID10
103         tristate "RAID-10 (mirrored striping) mode (EXPERIMENTAL)"
104         depends on BLK_DEV_MD && EXPERIMENTAL
105         ---help---
106           RAID-10 provides a combination of striping (RAID-0) and
107           mirroring (RAID-1) with easier configuration and more flexible
108           layout.
109           Unlike RAID-0, but like RAID-1, RAID-10 requires all devices to
110           be the same size (or at least, only as much as the smallest device
111           will be used).
112           RAID-10 provides a variety of layouts that provide different levels
113           of redundancy and performance.
114
115           RAID-10 requires mdadm-1.7.0 or later, available at:
116
117           ftp://ftp.kernel.org/pub/linux/utils/raid/mdadm/
118
119           If unsure, say Y.
120
121 config MD_RAID456
122         tristate "RAID-4/RAID-5/RAID-6 mode"
123         select MD_RAID6_PQ
124         select ASYNC_MEMCPY
125         select ASYNC_XOR
126         select ASYNC_PQ
127         select ASYNC_RAID6_RECOV
128         ---help---
129           A RAID-5 set of N drives with a capacity of C MB per drive provides
130           the capacity of C * (N - 1) MB, and protects against a failure
131           of a single drive. For a given sector (row) number, (N - 1) drives
132           contain data sectors, and one drive contains the parity protection.
133           For a RAID-4 set, the parity blocks are present on a single drive,
134           while a RAID-5 set distributes the parity across the drives in one
135           of the available parity distribution methods.
136
137           A RAID-6 set of N drives with a capacity of C MB per drive
138           provides the capacity of C * (N - 2) MB, and protects
139           against a failure of any two drives. For a given sector
140           (row) number, (N - 2) drives contain data sectors, and two
141           drives contains two independent redundancy syndromes.  Like
142           RAID-5, RAID-6 distributes the syndromes across the drives
143           in one of the available parity distribution methods.
144
145           Information about Software RAID on Linux is contained in the
146           Software-RAID mini-HOWTO, available from
147           <http://www.tldp.org/docs.html#howto>. There you will also
148           learn where to get the supporting user space utilities raidtools.
149
150           If you want to use such a RAID-4/RAID-5/RAID-6 set, say Y.  To
151           compile this code as a module, choose M here: the module
152           will be called raid456.
153
154           If unsure, say Y.
155
156 config MULTICORE_RAID456
157         bool "RAID-4/RAID-5/RAID-6 Multicore processing (EXPERIMENTAL)"
158         depends on MD_RAID456
159         depends on SMP
160         depends on EXPERIMENTAL
161         ---help---
162           Enable the raid456 module to dispatch per-stripe raid operations to a
163           thread pool.
164
165           If unsure, say N.
166
167 config MD_RAID6_PQ
168         tristate
169
170 config ASYNC_RAID6_TEST
171         tristate "Self test for hardware accelerated raid6 recovery"
172         depends on MD_RAID6_PQ
173         select ASYNC_RAID6_RECOV
174         ---help---
175           This is a one-shot self test that permutes through the
176           recovery of all the possible two disk failure scenarios for a
177           N-disk array.  Recovery is performed with the asynchronous
178           raid6 recovery routines, and will optionally use an offload
179           engine if one is available.
180
181           If unsure, say N.
182
183 config MD_MULTIPATH
184         tristate "Multipath I/O support"
185         depends on BLK_DEV_MD
186         help
187           MD_MULTIPATH provides a simple multi-path personality for use
188           the MD framework.  It is not under active development.  New
189           projects should consider using DM_MULTIPATH which has more
190           features and more testing.
191
192           If unsure, say N.
193
194 config MD_FAULTY
195         tristate "Faulty test module for MD"
196         depends on BLK_DEV_MD
197         help
198           The "faulty" module allows for a block device that occasionally returns
199           read or write errors.  It is useful for testing.
200
201           In unsure, say N.
202
203 config BLK_DEV_DM
204         tristate "Device mapper support"
205         ---help---
206           Device-mapper is a low level volume manager.  It works by allowing
207           people to specify mappings for ranges of logical sectors.  Various
208           mapping types are available, in addition people may write their own
209           modules containing custom mappings if they wish.
210
211           Higher level volume managers such as LVM2 use this driver.
212
213           To compile this as a module, choose M here: the module will be
214           called dm-mod.
215
216           If unsure, say N.
217
218 config DM_DEBUG
219         boolean "Device mapper debugging support"
220         depends on BLK_DEV_DM
221         ---help---
222           Enable this for messages that may help debug device-mapper problems.
223
224           If unsure, say N.
225
226 config DM_CRYPT
227         tristate "Crypt target support"
228         depends on BLK_DEV_DM
229         select CRYPTO
230         select CRYPTO_CBC
231         ---help---
232           This device-mapper target allows you to create a device that
233           transparently encrypts the data on it. You'll need to activate
234           the ciphers you're going to use in the cryptoapi configuration.
235
236           Information on how to use dm-crypt can be found on
237
238           <http://www.saout.de/misc/dm-crypt/>
239
240           To compile this code as a module, choose M here: the module will
241           be called dm-crypt.
242
243           If unsure, say N.
244
245 config DM_SNAPSHOT
246        tristate "Snapshot target"
247        depends on BLK_DEV_DM
248        ---help---
249          Allow volume managers to take writable snapshots of a device.
250
251 config DM_RAID
252        tristate
253        depends on BLK_DEV_DM
254
255 config DM_MIRROR
256        tristate "Mirror target"
257        depends on BLK_DEV_DM
258        select DM_RAID
259        ---help---
260          Allow volume managers to mirror logical volumes, also
261          needed for live data migration tools such as 'pvmove'.
262
263 config DM_LOG_USERSPACE
264         tristate "Mirror userspace logging (EXPERIMENTAL)"
265         depends on DM_MIRROR && EXPERIMENTAL && NET
266         select CONNECTOR
267         ---help---
268           The userspace logging module provides a mechanism for
269           relaying the dm-dirty-log API to userspace.  Log designs
270           which are more suited to userspace implementation (e.g.
271           shared storage logs) or experimental logs can be implemented
272           by leveraging this framework.
273
274 config DM_ZERO
275         tristate "Zero target"
276         depends on BLK_DEV_DM
277         ---help---
278           A target that discards writes, and returns all zeroes for
279           reads.  Useful in some recovery situations.
280
281 config DM_MULTIPATH
282         tristate "Multipath target"
283         depends on BLK_DEV_DM
284         # nasty syntax but means make DM_MULTIPATH independent
285         # of SCSI_DH if the latter isn't defined but if
286         # it is, DM_MULTIPATH must depend on it.  We get a build
287         # error if SCSI_DH=m and DM_MULTIPATH=y
288         depends on SCSI_DH || !SCSI_DH
289         ---help---
290           Allow volume managers to support multipath hardware.
291
292 config DM_MULTIPATH_QL
293         tristate "I/O Path Selector based on the number of in-flight I/Os"
294         depends on DM_MULTIPATH
295         ---help---
296           This path selector is a dynamic load balancer which selects
297           the path with the least number of in-flight I/Os.
298
299           If unsure, say N.
300
301 config DM_MULTIPATH_ST
302         tristate "I/O Path Selector based on the service time"
303         depends on DM_MULTIPATH
304         ---help---
305           This path selector is a dynamic load balancer which selects
306           the path expected to complete the incoming I/O in the shortest
307           time.
308
309           If unsure, say N.
310
311 config DM_DELAY
312         tristate "I/O delaying target (EXPERIMENTAL)"
313         depends on BLK_DEV_DM && EXPERIMENTAL
314         ---help---
315         A target that delays reads and/or writes and can send
316         them to different devices.  Useful for testing.
317
318         If unsure, say N.
319
320 config DM_RAID45
321         tristate "RAID 4/5 target (EXPERIMENTAL)"
322         depends on DM_RAID
323         depends on BLK_DEV_DM && EXPERIMENTAL
324         ---help---
325         A target that supports RAID4 and RAID5 mappings.
326
327         If unsure, say N.
328
329 config DM_UEVENT
330         bool "DM uevents (EXPERIMENTAL)"
331         depends on BLK_DEV_DM && EXPERIMENTAL
332         ---help---
333         Generate udev events for DM events.
334
335 endif # MD