Message ID | 20200907134745.25732-2-chenzhou10@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | support reserving crashkernel above 4G on arm64 kdump | expand |
Hi, On 09/07/20 at 09:47pm, Chen Zhou wrote: > CONFIG_PHYSICAL_ALIGN can be selected from 2M to 16M and default > value is 2M, so move CRASH_ALIGN to 2M, with smaller value reservation > can have more chance to succeed. Seems still some misunderstanding about the change :( I'm sorry if I did not explain it clearly. Previously I missed the PHYSICAL_ALIGN can change according to .config I mean we should change the value to CONFIG_PHYSICAL_ALIGN for X86 And I suggest to move back to keep using 16M. And do not change it in this series. > And replace the hard-coded alignment with macro CRASH_ALIGN in function > reserve_crashkernel(). > > Suggested-by: Dave Young <dyoung@redhat.com> > Signed-off-by: Chen Zhou <chenzhou10@huawei.com> > --- > arch/x86/include/asm/kexec.h | 3 +++ > arch/x86/kernel/setup.c | 5 +---- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h > index 6802c59e8252..83f200dd54a1 100644 > --- a/arch/x86/include/asm/kexec.h > +++ b/arch/x86/include/asm/kexec.h > @@ -18,6 +18,9 @@ > > # define KEXEC_CONTROL_CODE_MAX_SIZE 2048 > > +/* 2M alignment for crash kernel regions */ > +#define CRASH_ALIGN SZ_2M > + > #ifndef __ASSEMBLY__ > > #include <linux/string.h> > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c > index 3511736fbc74..296294ad0dd8 100644 > --- a/arch/x86/kernel/setup.c > +++ b/arch/x86/kernel/setup.c > @@ -402,9 +402,6 @@ static void __init memblock_x86_reserve_range_setup_data(void) > > #ifdef CONFIG_KEXEC_CORE > > -/* 16M alignment for crash kernel regions */ > -#define CRASH_ALIGN SZ_16M > - > /* > * Keep the crash kernel below this limit. > * > @@ -530,7 +527,7 @@ static void __init reserve_crashkernel(void) > > start = memblock_find_in_range(crash_base, > crash_base + crash_size, > - crash_size, 1 << 20); > + crash_size, CRASH_ALIGN); > if (start != crash_base) { > pr_info("crashkernel reservation failed - memory is in use.\n"); > return; > -- > 2.20.1 > Thanks Dave
On 2020/9/8 9:21, Dave Young wrote: > Hi, > > On 09/07/20 at 09:47pm, Chen Zhou wrote: >> CONFIG_PHYSICAL_ALIGN can be selected from 2M to 16M and default >> value is 2M, so move CRASH_ALIGN to 2M, with smaller value reservation >> can have more chance to succeed. > Seems still some misunderstanding about the change :( I'm sorry if I > did not explain it clearly. > > Previously I missed the PHYSICAL_ALIGN can change according to .config > I mean we should change the value to CONFIG_PHYSICAL_ALIGN for X86 > And I suggest to move back to keep using 16M. And do not change it in > this series. Hi Dave, Sorry, i misunderstood about this. Ok, this patch will keep the value of CRASH_ALIGN as it is, just move CRASH_ALIGN to header asm/kexec.h and replace the hard-coded alignment with macro CRASH_ALIGN in function reserve_crashkernel(). Thanks, Chen Zhou > >> And replace the hard-coded alignment with macro CRASH_ALIGN in function >> reserve_crashkernel(). >> >> Suggested-by: Dave Young <dyoung@redhat.com> >> Signed-off-by: Chen Zhou <chenzhou10@huawei.com> >> --- >> arch/x86/include/asm/kexec.h | 3 +++ >> arch/x86/kernel/setup.c | 5 +---- >> 2 files changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h >> index 6802c59e8252..83f200dd54a1 100644 >> --- a/arch/x86/include/asm/kexec.h >> +++ b/arch/x86/include/asm/kexec.h >> @@ -18,6 +18,9 @@ >> >> # define KEXEC_CONTROL_CODE_MAX_SIZE 2048 >> >> +/* 2M alignment for crash kernel regions */ >> +#define CRASH_ALIGN SZ_2M >> + >> #ifndef __ASSEMBLY__ >> >> #include <linux/string.h> >> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c >> index 3511736fbc74..296294ad0dd8 100644 >> --- a/arch/x86/kernel/setup.c >> +++ b/arch/x86/kernel/setup.c >> @@ -402,9 +402,6 @@ static void __init memblock_x86_reserve_range_setup_data(void) >> >> #ifdef CONFIG_KEXEC_CORE >> >> -/* 16M alignment for crash kernel regions */ >> -#define CRASH_ALIGN SZ_16M >> - >> /* >> * Keep the crash kernel below this limit. >> * >> @@ -530,7 +527,7 @@ static void __init reserve_crashkernel(void) >> >> start = memblock_find_in_range(crash_base, >> crash_base + crash_size, >> - crash_size, 1 << 20); >> + crash_size, CRASH_ALIGN); >> if (start != crash_base) { >> pr_info("crashkernel reservation failed - memory is in use.\n"); >> return; >> -- >> 2.20.1 >> > Thanks > Dave > > > . >
diff --git a/arch/x86/include/asm/kexec.h b/arch/x86/include/asm/kexec.h index 6802c59e8252..83f200dd54a1 100644 --- a/arch/x86/include/asm/kexec.h +++ b/arch/x86/include/asm/kexec.h @@ -18,6 +18,9 @@ # define KEXEC_CONTROL_CODE_MAX_SIZE 2048 +/* 2M alignment for crash kernel regions */ +#define CRASH_ALIGN SZ_2M + #ifndef __ASSEMBLY__ #include <linux/string.h> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index 3511736fbc74..296294ad0dd8 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -402,9 +402,6 @@ static void __init memblock_x86_reserve_range_setup_data(void) #ifdef CONFIG_KEXEC_CORE -/* 16M alignment for crash kernel regions */ -#define CRASH_ALIGN SZ_16M - /* * Keep the crash kernel below this limit. * @@ -530,7 +527,7 @@ static void __init reserve_crashkernel(void) start = memblock_find_in_range(crash_base, crash_base + crash_size, - crash_size, 1 << 20); + crash_size, CRASH_ALIGN); if (start != crash_base) { pr_info("crashkernel reservation failed - memory is in use.\n"); return;
CONFIG_PHYSICAL_ALIGN can be selected from 2M to 16M and default value is 2M, so move CRASH_ALIGN to 2M, with smaller value reservation can have more chance to succeed. And replace the hard-coded alignment with macro CRASH_ALIGN in function reserve_crashkernel(). Suggested-by: Dave Young <dyoung@redhat.com> Signed-off-by: Chen Zhou <chenzhou10@huawei.com> --- arch/x86/include/asm/kexec.h | 3 +++ arch/x86/kernel/setup.c | 5 +---- 2 files changed, 4 insertions(+), 4 deletions(-)