Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac6b931c authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds
Browse files

[PATCH] x86_64: Reduce NMI watchdog stack usage



NR_CPUs can be quite big these days.  kmalloc the per CPU array instead of
putting it onto the stack

Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 71799062
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ static __init int cpu_has_lapic(void)

static int __init check_nmi_watchdog (void)
{
	int counts[NR_CPUS];
	int *counts;
	int cpu;

	if (nmi_watchdog == NMI_NONE)
@@ -125,6 +125,12 @@ static int __init check_nmi_watchdog (void)
		return -1; 
	}	

	counts = kmalloc(NR_CPUS * sizeof(int),GFP_KERNEL);
	if (!counts) {
		nmi_watchdog = NMI_NONE;
		return 0;
	}

	printk(KERN_INFO "Testing NMI watchdog ... ");

	for (cpu = 0; cpu < NR_CPUS; cpu++)
@@ -139,6 +145,7 @@ static int __init check_nmi_watchdog (void)
			       cpu_pda[cpu].__nmi_count);
			nmi_active = 0;
			lapic_nmi_owner &= ~LAPIC_NMI_WATCHDOG;
			kfree(counts);
			return -1;
		}
	}
@@ -149,6 +156,7 @@ static int __init check_nmi_watchdog (void)
	if (nmi_watchdog == NMI_LOCAL_APIC)
		nmi_hz = 1;

	kfree(counts);
	return 0;
}
/* Have this called later during boot so counters are updating */