From: Baoquan He <bhe@redhat.com> To: linux-kernel@vger.kernel.org Cc: tglx@linutronix.de, mingo@kernel.org, bp@alien8.de, hpa@zytor.com, kirill.shutemov@linux.intel.com, dyoung@redhat.com, x86@kernel.org, kexec@lists.infradead.org, Baoquan He <bhe@redhat.com> Subject: [PATCH RESEND 3/3] x86/kdump/64: Change the upper limit of crashkernel reservation Date: Fri, 25 Jan 2019 10:28:17 +0800 [thread overview] Message-ID: <20190125022817.29506-4-bhe@redhat.com> (raw) In-Reply-To: <20190125022817.29506-1-bhe@redhat.com> Restrict kdump to only reserve crashkernel below 64TB. Since the kdump jumping may be from 5-level to 4-level, and the kdump kernel is put above 64TB in 5-level kernel, then the jumping will fail. And the crashkernel reservation is done during the 1st kernel bootup, there's no way to detect the paging mode of kdump kernel at that time. Hence change the upper limit of crashkernel reservation to 64TB on x86_64. Signed-off-by: Baoquan He <bhe@redhat.com> --- arch/x86/kernel/setup.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 3d872a527cd9..d4d1366738a4 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -451,16 +451,26 @@ static void __init memblock_x86_reserve_range_setup_data(void) #define CRASH_ALIGN (16 << 20) /* - * Keep the crash kernel below this limit. On 32 bits earlier kernels - * would limit the kernel to the low 512 MiB due to mapping restrictions. - * On 64bit, old kexec-tools need to under 896MiB. + * Keep the crash kernel below this limit. + * + * On 32 bits earlier kernels would limit the kernel to the low + * 512 MiB due to mapping restrictions. + * + * On 64bit, old kexec-tools need to be under 896MiB. The later + * supports to put kernel above 4G, up to system RAM top. Here + * kdump kernel need be restricted to be under 64TB, which is + * the upper limit of system RAM in 4-level paing mode. Since + * the kdump jumping could be from 5-level to 4-level, the jumping + * will fail if kernel is put above 64TB, and there's no way to + * detect the paging mode of the kernel which will be loaded for + * dumping during the 1st kernel bootup. */ #ifdef CONFIG_X86_32 # define CRASH_ADDR_LOW_MAX (512 << 20) # define CRASH_ADDR_HIGH_MAX (512 << 20) #else # define CRASH_ADDR_LOW_MAX (896UL << 20) -# define CRASH_ADDR_HIGH_MAX MAXMEM +# define CRASH_ADDR_HIGH_MAX (1ULL < 46) #endif static int __init reserve_crashkernel_low(void) -- 2.13.6
WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com> To: linux-kernel@vger.kernel.org Cc: Baoquan He <bhe@redhat.com>, x86@kernel.org, kexec@lists.infradead.org, bp@alien8.de, hpa@zytor.com, tglx@linutronix.de, dyoung@redhat.com, mingo@kernel.org, kirill.shutemov@linux.intel.com Subject: [PATCH RESEND 3/3] x86/kdump/64: Change the upper limit of crashkernel reservation Date: Fri, 25 Jan 2019 10:28:17 +0800 [thread overview] Message-ID: <20190125022817.29506-4-bhe@redhat.com> (raw) In-Reply-To: <20190125022817.29506-1-bhe@redhat.com> Restrict kdump to only reserve crashkernel below 64TB. Since the kdump jumping may be from 5-level to 4-level, and the kdump kernel is put above 64TB in 5-level kernel, then the jumping will fail. And the crashkernel reservation is done during the 1st kernel bootup, there's no way to detect the paging mode of kdump kernel at that time. Hence change the upper limit of crashkernel reservation to 64TB on x86_64. Signed-off-by: Baoquan He <bhe@redhat.com> --- arch/x86/kernel/setup.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 3d872a527cd9..d4d1366738a4 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -451,16 +451,26 @@ static void __init memblock_x86_reserve_range_setup_data(void) #define CRASH_ALIGN (16 << 20) /* - * Keep the crash kernel below this limit. On 32 bits earlier kernels - * would limit the kernel to the low 512 MiB due to mapping restrictions. - * On 64bit, old kexec-tools need to under 896MiB. + * Keep the crash kernel below this limit. + * + * On 32 bits earlier kernels would limit the kernel to the low + * 512 MiB due to mapping restrictions. + * + * On 64bit, old kexec-tools need to be under 896MiB. The later + * supports to put kernel above 4G, up to system RAM top. Here + * kdump kernel need be restricted to be under 64TB, which is + * the upper limit of system RAM in 4-level paing mode. Since + * the kdump jumping could be from 5-level to 4-level, the jumping + * will fail if kernel is put above 64TB, and there's no way to + * detect the paging mode of the kernel which will be loaded for + * dumping during the 1st kernel bootup. */ #ifdef CONFIG_X86_32 # define CRASH_ADDR_LOW_MAX (512 << 20) # define CRASH_ADDR_HIGH_MAX (512 << 20) #else # define CRASH_ADDR_LOW_MAX (896UL << 20) -# define CRASH_ADDR_HIGH_MAX MAXMEM +# define CRASH_ADDR_HIGH_MAX (1ULL < 46) #endif static int __init reserve_crashkernel_low(void) -- 2.13.6 _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
next prev parent reply other threads:[~2019-01-25 2:29 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-01-25 2:28 [PATCH RESEND 0/3] Add restrictions for kexec/kdump jumping between 5-level and 4-level kernel Baoquan He 2019-01-25 2:28 ` Baoquan He 2019-01-25 2:28 ` [PATCH RESEND 1/3] x86/boot: Add bit fields into xloadflags for 5-level kernel checking Baoquan He 2019-01-25 2:28 ` Baoquan He 2019-01-29 20:05 ` Thomas Gleixner 2019-01-29 20:05 ` Thomas Gleixner 2019-02-11 7:02 ` Baoquan He 2019-02-11 7:02 ` Baoquan He 2019-02-11 7:40 ` [PATCH v2 1/3] x86/boot: Add xloadflags bits " Baoquan He 2019-02-11 7:40 ` Baoquan He 2019-01-25 2:28 ` [PATCH RESEND 2/3] x86/kexec/64: Error out if try to jump to old 4-level kernel from 5-level kernel Baoquan He 2019-01-25 2:28 ` Baoquan He 2019-01-25 2:28 ` Baoquan He [this message] 2019-01-25 2:28 ` [PATCH RESEND 3/3] x86/kdump/64: Change the upper limit of crashkernel reservation Baoquan He 2019-01-25 12:05 ` [PATCH RESEND 0/3] Add restrictions for kexec/kdump jumping between 5-level and 4-level kernel Kirill A. Shutemov 2019-01-25 12:05 ` Kirill A. Shutemov
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190125022817.29506-4-bhe@redhat.com \ --to=bhe@redhat.com \ --cc=bp@alien8.de \ --cc=dyoung@redhat.com \ --cc=hpa@zytor.com \ --cc=kexec@lists.infradead.org \ --cc=kirill.shutemov@linux.intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=mingo@kernel.org \ --cc=tglx@linutronix.de \ --cc=x86@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.