-''' Copyright Neil Brown and others.
-''' This program is free software; you can redistribute it and/or modify
-''' it under the terms of the GNU General Public License as published by
-''' the Free Software Foundation; either version 2 of the License, or
-''' (at your option) any later version.
-''' See file COPYING in distribution for details.
+.\" Copyright Neil Brown and others.
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\" See file COPYING in distribution for details.
.TH MD 4
.SH NAME
md \- Multiple Device driver aka Linux Software RAID
.B md
driver provides virtual devices that are created from one or more
independent underlying devices. This array of devices often contains
-redundancy, and hence the acronym RAID which stands for a Redundant
-Array of Independent Devices.
+redundancy and the devices are often disk drives, hence the acronym RAID
+which stands for a Redundant Array of Independent Disks.
.PP
.B md
supports RAID levels
of any given block are on different drives.
The 'far' arrangement can give sequential read performance equal to
-that of a RAID0 array, but at the cost of degraded write performance.
+that of a RAID0 array, but at the cost of reduced write performance.
When 'offset' replicas are chosen, the multiple copies of a given
chunk are laid out on consecutive drives and at consecutive offsets.
.B md/stripe_cache_size
This is only available on RAID5 and RAID6. It records the size (in
pages per device) of the stripe cache which is used for synchronising
-all read and write operations to the array. The default is 128.
+all write operations to the array and all read operations if the array
+is degraded. The default is 256. Valid values are 17 to 32768.
Increasing this number can increase performance in some situations, at
-some cost in system memory.
+some cost in system memory. Note, setting this value too high can
+result in an "out of memory" condition for the system.
+memory_consumed = system_page_size * nr_disks * stripe_cache_size
+
+.TP
+.B md/preread_bypass_threshold
+This is only available on RAID5 and RAID6. This variable sets the
+number of times MD will service a full-stripe-write before servicing a
+stripe that requires some "prereading". For fairness this defaults to
+1. Valid values are 0 to stripe_cache_size. Setting this to 0
+maximizes sequential-write throughput at the cost of fairness to threads
+doing small or random writes.
.SS KERNEL PARAMETERS