Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965496AbcJFJfm (ORCPT ); Thu, 6 Oct 2016 05:35:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53084 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S942282AbcJFIqK (ORCPT ); Thu, 6 Oct 2016 04:46:10 -0400 From: Baoquan He To: kexec@lists.infradead.org, linux-kernel@vger.kernel.org Cc: tglx@linutronix.de, akpm@linux-foundation.org, mingo@redhat.com, hpa@zytor.com, ebiederm@xmission.com, dyoung@redhat.com, tonli@redhat.com, keescook@chromium.org, takahiro.akashi@linaro.org, thgarnie@google.com, ats-kumagai@wm.jp.nec.com, Baoquan He Subject: [PATCH] kexec: Export memory sections virtual addresses to vmcoreinfo Date: Thu, 6 Oct 2016 16:46:01 +0800 Message-Id: <1475743561-23912-1-git-send-email-bhe@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Thu, 06 Oct 2016 08:46:09 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1777 Lines: 48 KASLR memory randomization can randomize the base of the physical memory mapping (PAGE_OFFSET), vmalloc (VMALLOC_START) and vmemmap (VMEMMAP_START). These need be exported to VMCOREINFO so that user space utility, mainly makedumpfile can use them to identify the base of each memory section. Here using VMCOREINFO_NUMBER we can reuse the existing struct number_table in makedumpfile to import data easily. Since they are related to x86_64 only, put them into arch_crash_save_vmcoreinfo. And move the exportion of KERNEL_IMAGE_SIZE together since it's also for x86_64 only. Signed-off-by: Baoquan He --- arch/x86/kernel/machine_kexec_64.c | 4 ++++ kernel/kexec_core.c | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/arch/x86/kernel/machine_kexec_64.c b/arch/x86/kernel/machine_kexec_64.c index 5a294e4..e150dd7 100644 --- a/arch/x86/kernel/machine_kexec_64.c +++ b/arch/x86/kernel/machine_kexec_64.c @@ -337,6 +337,10 @@ void arch_crash_save_vmcoreinfo(void) #endif vmcoreinfo_append_str("KERNELOFFSET=%lx\n", kaslr_offset()); + VMCOREINFO_NUMBER(KERNEL_IMAGE_SIZE); + VMCOREINFO_NUMBER(PAGE_OFFSET); + VMCOREINFO_NUMBER(VMALLOC_START); + VMCOREINFO_NUMBER(VMEMMAP_START); } /* arch-dependent functionality related to kexec file-based syscall */ diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index 5616755..8ad3a29e 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -1467,9 +1467,6 @@ static int __init crash_save_vmcoreinfo_init(void) #endif VMCOREINFO_NUMBER(PG_head_mask); VMCOREINFO_NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE); -#ifdef CONFIG_X86 - VMCOREINFO_NUMBER(KERNEL_IMAGE_SIZE); -#endif #ifdef CONFIG_HUGETLB_PAGE VMCOREINFO_NUMBER(HUGETLB_PAGE_DTOR); #endif -- 2.5.5