aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Jones <davej@redhat.com>2007-07-15 23:41:05 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-16 09:05:47 -0700
commit97842216b8400fe9d1a20468959e2989180f8f79 (patch)
tree63d0d731e0e93d5ef9ac1a23734c60cd0f0664f2
parentCOBALT: remove all references to Cobalt NVRAM (diff)
downloadlinux-dev-97842216b8400fe9d1a20468959e2989180f8f79.tar.xz
linux-dev-97842216b8400fe9d1a20468959e2989180f8f79.zip
Allow softlockup to be runtime disabled
It's useful sometimes to disable the softlockup checker at boottime. Especially if it triggers during a distro install. Signed-off-by: Dave Jones <davej@redhat.com> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--init/main.c12
2 files changed, 13 insertions, 1 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index a571495a9ac6..789f97ac22bf 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -1181,6 +1181,8 @@ and is between 256 and 4096 characters. It is defined in the file
nosmp [SMP] Tells an SMP kernel to act as a UP kernel.
+ nosoftlockup [KNL] Disable the soft-lockup detector.
+
nosync [HW,M68K] Disables sync negotiation for all devices.
notsc [BUGS=IA-32] Disable Time Stamp Counter
diff --git a/init/main.c b/init/main.c
index 038c7cb52390..c8c9a0b21e99 100644
--- a/init/main.c
+++ b/init/main.c
@@ -728,6 +728,15 @@ static void __init do_basic_setup(void)
do_initcalls();
}
+static int __initdata nosoftlockup;
+
+static int __init nosoftlockup_setup(char *str)
+{
+ nosoftlockup = 1;
+ return 1;
+}
+__setup("nosoftlockup", nosoftlockup_setup);
+
static void __init do_pre_smp_initcalls(void)
{
extern int spawn_ksoftirqd(void);
@@ -737,7 +746,8 @@ static void __init do_pre_smp_initcalls(void)
migration_init();
#endif
spawn_ksoftirqd();
- spawn_softlockup_task();
+ if (!nosoftlockup)
+ spawn_softlockup_task();
}
static void run_init_process(char *init_filename)