From: Konrad Rzeszutek Date: Wed, 2 May 2007 17:27:11 +0000 (+0200) Subject: [PATCH] x86-64: Inhibit machine from asserting an NMI when doing Alt-SysRq-M operation. X-Git-Tag: upstream/snapshot3+hdmi~34849^2~131 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ae32b1297a77c23fd0badd642bb685062f7a37f8;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git [PATCH] x86-64: Inhibit machine from asserting an NMI when doing Alt-SysRq-M operation. This patch touches the NMI watchdog every MAX_ORDER_NR_PAGES to inhibit the machine from triggering an NMI while the CPUs are locked. This situation is happening on boxes with more than 64CPUs and 128GB of RAM when Alt-SysRq-m is performed. It has been succesfully tested for regression on uni, 2, 4, 8 32, and 64 CPU boxes with various memory configuration. Signed-off-by: Andi Kleen --- diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c index e3134bc..282b0a8 100644 --- a/arch/x86_64/mm/init.c +++ b/arch/x86_64/mm/init.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include @@ -73,6 +74,11 @@ void show_mem(void) for_each_online_pgdat(pgdat) { for (i = 0; i < pgdat->node_spanned_pages; ++i) { + /* this loop can take a while with 256 GB and 4k pages + so update the NMI watchdog */ + if (unlikely(i % MAX_ORDER_NR_PAGES == 0)) { + touch_nmi_watchdog(); + } page = pfn_to_page(pgdat->node_start_pfn + i); total++; if (PageReserved(page))