Răsfoiți Sursa

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>
Dave Jones 18 ani în urmă
părinte
comite
97842216b8
2 a modificat fișierele cu 13 adăugiri și 1 ștergeri
  1. 2 0
      Documentation/kernel-parameters.txt
  2. 11 1
      init/main.c

+ 2 - 0
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.
 	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.
 	nosync		[HW,M68K] Disables sync negotiation for all devices.
 
 
 	notsc		[BUGS=IA-32] Disable Time Stamp Counter
 	notsc		[BUGS=IA-32] Disable Time Stamp Counter

+ 11 - 1
init/main.c

@@ -728,6 +728,15 @@ static void __init do_basic_setup(void)
 	do_initcalls();
 	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)
 static void __init do_pre_smp_initcalls(void)
 {
 {
 	extern int spawn_ksoftirqd(void);
 	extern int spawn_ksoftirqd(void);
@@ -737,7 +746,8 @@ static void __init do_pre_smp_initcalls(void)
 	migration_init();
 	migration_init();
 #endif
 #endif
 	spawn_ksoftirqd();
 	spawn_ksoftirqd();
-	spawn_softlockup_task();
+	if (!nosoftlockup)
+		spawn_softlockup_task();
 }
 }
 
 
 static void run_init_process(char *init_filename)
 static void run_init_process(char *init_filename)