[34-longterm 232/260] x86, kdump: Change copy_oldmem_page() to use cached addressing

Paul Gortmaker paul.gortmaker at windriver.com
Sun Jan 2 02:18:48 EST 2011

From: Cliff Wickman <cpw at sgi.com>

commit 37a2f9f30a360fb03522d15c85c78265ccd80287 upstream.

The copy of /proc/vmcore to a user buffer proceeds much faster
if the kernel addresses memory as cached.

With this patch we have seen an increase in transfer rate from
less than 15MB/s to 80-460MB/s, depending on size of the
transfer. This makes a big difference in time needed to save a
system dump.

Signed-off-by: Cliff Wickman <cpw at sgi.com>
Acked-by: "Eric W. Biederman" <ebiederm at xmission.com>
Cc: kexec at lists.infradead.org
LKML-Reference: <E1OtMLz-0001yp-Ia at eag09.americas.sgi.com>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
Signed-off-by: Paul Gortmaker <paul.gortmaker at windriver.com>
 arch/x86/kernel/crash_dump_64.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/x86/kernel/crash_dump_64.c b/arch/x86/kernel/crash_dump_64.c
index ce96a6b..9948288 100644
--- a/arch/x86/kernel/crash_dump_64.c
+++ b/arch/x86/kernel/crash_dump_64.c
@@ -34,7 +34,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
 	if (!csize)
 		return 0;
-	vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE);
+	vaddr = ioremap_cache(pfn << PAGE_SHIFT, PAGE_SIZE);
 	if (!vaddr)
 		return -ENOMEM;

More information about the kexec mailing list