raid: make RAID autodetect default a KConfig option
RAID autodetect has the side effect of requiring synchronisation of all device drivers, which can make the boot several seconds longer (I've measured 7 on one of my laptops).... even for systems that don't have RAID setup for the root filesystem (the only FS where this matters). This patch makes the default for autodetect a config option; either way the user can always override via the kernel command line. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Acked-by: NeilBrown <neilb@suse.de>
This commit is contained in:
@@ -30,6 +30,20 @@ config BLK_DEV_MD
|
|||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
|
config MD_AUTODETECT
|
||||||
|
bool "Autodetect RAID arrays during kernel boot"
|
||||||
|
depends on BLK_DEV_MD
|
||||||
|
default y
|
||||||
|
---help---
|
||||||
|
If you say Y here, then the kernel will try to autodetect raid
|
||||||
|
arrays as part of its boot process.
|
||||||
|
|
||||||
|
If you don't use raid and say Y, this autodetection can cause
|
||||||
|
a several-second delay in the boot time due to various
|
||||||
|
synchronisation steps that are part of this step.
|
||||||
|
|
||||||
|
If unsure, say Y.
|
||||||
|
|
||||||
config MD_LINEAR
|
config MD_LINEAR
|
||||||
tristate "Linear (append) mode"
|
tristate "Linear (append) mode"
|
||||||
depends on BLK_DEV_MD
|
depends on BLK_DEV_MD
|
||||||
|
@@ -12,7 +12,12 @@
|
|||||||
* The code for that is here.
|
* The code for that is here.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
static int __initdata raid_noautodetect, raid_autopart;
|
#ifdef CONFIG_MD_AUTODETECT
|
||||||
|
static int __initdata raid_noautodetect;
|
||||||
|
#else
|
||||||
|
static int __initdata raid_noautodetect=1;
|
||||||
|
#endif
|
||||||
|
static int __initdata raid_autopart;
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
int minor;
|
int minor;
|
||||||
@@ -252,6 +257,8 @@ static int __init raid_setup(char *str)
|
|||||||
|
|
||||||
if (!strncmp(str, "noautodetect", wlen))
|
if (!strncmp(str, "noautodetect", wlen))
|
||||||
raid_noautodetect = 1;
|
raid_noautodetect = 1;
|
||||||
|
if (!strncmp(str, "autodetect", wlen))
|
||||||
|
raid_noautodetect = 0;
|
||||||
if (strncmp(str, "partitionable", wlen)==0)
|
if (strncmp(str, "partitionable", wlen)==0)
|
||||||
raid_autopart = 1;
|
raid_autopart = 1;
|
||||||
if (strncmp(str, "part", wlen)==0)
|
if (strncmp(str, "part", wlen)==0)
|
||||||
@@ -288,7 +295,7 @@ void __init md_run_setup(void)
|
|||||||
create_dev("/dev/md0", MKDEV(MD_MAJOR, 0));
|
create_dev("/dev/md0", MKDEV(MD_MAJOR, 0));
|
||||||
|
|
||||||
if (raid_noautodetect)
|
if (raid_noautodetect)
|
||||||
printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n");
|
printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=autodetect will force)\n");
|
||||||
else
|
else
|
||||||
autodetect_raid();
|
autodetect_raid();
|
||||||
md_setup_drive();
|
md_setup_drive();
|
||||||
|
Reference in New Issue
Block a user