diff options
author | Prarit Bhargava <prarit@redhat.com> | 2007-08-22 14:34:38 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2007-09-01 05:50:21 -0400 |
commit | 99a19cf1c0eb22bad83fff060f08330ee9e029e2 (patch) | |
tree | a4e6726edfbcf9fcb89e9ebd8ebdcae53f26d48b /arch/ia64/mm | |
parent | 6e9de18120988388cdae5097c09e774416d58745 (diff) |
[IA64] Stop bogus NMI & softlockup warnings in ia64 show_mem
When dumping memory via sysrq-m it is possible to take a bogus NMI watchdog
or softlockup watchdog because the dump can take a long time on big memory
systems.
Occasionally tickle the watchdog when doing the dump.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/mm')
-rw-r--r-- | arch/ia64/mm/contig.c | 3 | ||||
-rw-r--r-- | arch/ia64/mm/discontig.c | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/arch/ia64/mm/contig.c b/arch/ia64/mm/contig.c index 7ac8592a35b6..d3c538be466c 100644 --- a/arch/ia64/mm/contig.c +++ b/arch/ia64/mm/contig.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/bootmem.h> | 17 | #include <linux/bootmem.h> |
18 | #include <linux/efi.h> | 18 | #include <linux/efi.h> |
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/nmi.h> | ||
20 | #include <linux/swap.h> | 21 | #include <linux/swap.h> |
21 | 22 | ||
22 | #include <asm/meminit.h> | 23 | #include <asm/meminit.h> |
@@ -56,6 +57,8 @@ void show_mem(void) | |||
56 | present = pgdat->node_present_pages; | 57 | present = pgdat->node_present_pages; |
57 | for(i = 0; i < pgdat->node_spanned_pages; i++) { | 58 | for(i = 0; i < pgdat->node_spanned_pages; i++) { |
58 | struct page *page; | 59 | struct page *page; |
60 | if (unlikely(i % MAX_ORDER_NR_PAGES == 0)) | ||
61 | touch_nmi_watchdog(); | ||
59 | if (pfn_valid(pgdat->node_start_pfn + i)) | 62 | if (pfn_valid(pgdat->node_start_pfn + i)) |
60 | page = pfn_to_page(pgdat->node_start_pfn + i); | 63 | page = pfn_to_page(pgdat->node_start_pfn + i); |
61 | else { | 64 | else { |
diff --git a/arch/ia64/mm/discontig.c b/arch/ia64/mm/discontig.c index 0dbf0e81f8c0..0d34585058c8 100644 --- a/arch/ia64/mm/discontig.c +++ b/arch/ia64/mm/discontig.c | |||
@@ -16,6 +16,7 @@ | |||
16 | 16 | ||
17 | #include <linux/kernel.h> | 17 | #include <linux/kernel.h> |
18 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
19 | #include <linux/nmi.h> | ||
19 | #include <linux/swap.h> | 20 | #include <linux/swap.h> |
20 | #include <linux/bootmem.h> | 21 | #include <linux/bootmem.h> |
21 | #include <linux/acpi.h> | 22 | #include <linux/acpi.h> |
@@ -533,6 +534,8 @@ void show_mem(void) | |||
533 | present = pgdat->node_present_pages; | 534 | present = pgdat->node_present_pages; |
534 | for(i = 0; i < pgdat->node_spanned_pages; i++) { | 535 | for(i = 0; i < pgdat->node_spanned_pages; i++) { |
535 | struct page *page; | 536 | struct page *page; |
537 | if (unlikely(i % MAX_ORDER_NR_PAGES == 0)) | ||
538 | touch_nmi_watchdog(); | ||
536 | if (pfn_valid(pgdat->node_start_pfn + i)) | 539 | if (pfn_valid(pgdat->node_start_pfn + i)) |
537 | page = pfn_to_page(pgdat->node_start_pfn + i); | 540 | page = pfn_to_page(pgdat->node_start_pfn + i); |
538 | else { | 541 | else { |