Re: [PATCH 2/2] arm64/kdump: add code comments for crashkernel reservation cases
On 01/20/23 at 10:02am, Simon Horman wrote: > On Tue, Jan 17, 2023 at 11:49:21AM +0800, Baoquan He wrote: > > This will help understand codes on crashkernel reservations on arm64. > > FWIIW, I think you can fold this into the first patch. Sure, will do. I folded this into patch 1 at the very beginning. Then felt the added code comments add lines of change and make the code change not so straightforward. I admit it's from personal feeling. > > And, although I have no good idea at this moment, I do wonder > if the logic can be simplified - I for one really needed the > comments to understand the retry logic. Got it. I will consider if I can improve the logic readability. Thanks. > > > Signed-off-by: Baoquan He > > --- > > arch/arm64/mm/init.c | 13 + > > 1 file changed, 13 insertions(+) > > > > diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c > > index 26a05af2bfa8..f88ad17cb20d 100644 > > --- a/arch/arm64/mm/init.c > > +++ b/arch/arm64/mm/init.c > > @@ -177,6 +177,10 @@ static void __init reserve_crashkernel(void) > > crash_base = memblock_phys_alloc_range(crash_size, CRASH_ALIGN, > >search_base, crash_max); > > if (!crash_base) { > > + /* > > +* For crashkernel=size[KMG]@offset[KMG], print out failure > > +* message if can't reserve the specified region. > > +*/ > > if (fixed_base) { > > pr_warn("cannot reserve crashkernel region > > [0x%llx-0x%llx]\n", > > search_base, crash_max); > > @@ -188,6 +192,11 @@ static void __init reserve_crashkernel(void) > > * high memory, the minimum required low memory will be > > * reserved later. > > */ > > + /* > > +* For crashkernel=size[KMG], if the first attempt was for > > +* low memory, fall back to high memory, the minimum required > > +* low memory will be reserved later. > > +*/ > > I think this duplicates the preceding comment. > Perhaps just replace the earlier comment with this one. > > > if (!high && crash_max == CRASH_ADDR_LOW_MAX) { > > crash_max = CRASH_ADDR_HIGH_MAX; > > search_base = CRASH_ADDR_LOW_MAX; > > @@ -195,6 +204,10 @@ static void __init reserve_crashkernel(void) > > goto retry; > > } > > > > + /* > > +* For crashkernel=size[KMG],high, if the first attempt was for > > +* high memory, fall back to low memory. > > +*/ > > if (high && (crash_max == CRASH_ADDR_HIGH_MAX)) { > > crash_max = CRASH_ADDR_LOW_MAX; > > search_base = 0; > > -- > > 2.34.1 > > > > > > ___ > > kexec mailing list > > kexec@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/kexec > > > > ___ > kexec mailing list > kexec@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/kexec > ___ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
Re: [PATCH 2/2] arm64/kdump: add code comments for crashkernel reservation cases
On Tue, Jan 17, 2023 at 11:49:21AM +0800, Baoquan He wrote: > This will help understand codes on crashkernel reservations on arm64. FWIIW, I think you can fold this into the first patch. And, although I have no good idea at this moment, I do wonder if the logic can be simplified - I for one really needed the comments to understand the retry logic. > Signed-off-by: Baoquan He > --- > arch/arm64/mm/init.c | 13 + > 1 file changed, 13 insertions(+) > > diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c > index 26a05af2bfa8..f88ad17cb20d 100644 > --- a/arch/arm64/mm/init.c > +++ b/arch/arm64/mm/init.c > @@ -177,6 +177,10 @@ static void __init reserve_crashkernel(void) > crash_base = memblock_phys_alloc_range(crash_size, CRASH_ALIGN, > search_base, crash_max); > if (!crash_base) { > + /* > + * For crashkernel=size[KMG]@offset[KMG], print out failure > + * message if can't reserve the specified region. > + */ > if (fixed_base) { > pr_warn("cannot reserve crashkernel region > [0x%llx-0x%llx]\n", > search_base, crash_max); > @@ -188,6 +192,11 @@ static void __init reserve_crashkernel(void) >* high memory, the minimum required low memory will be >* reserved later. >*/ > + /* > + * For crashkernel=size[KMG], if the first attempt was for > + * low memory, fall back to high memory, the minimum required > + * low memory will be reserved later. > + */ I think this duplicates the preceding comment. Perhaps just replace the earlier comment with this one. > if (!high && crash_max == CRASH_ADDR_LOW_MAX) { > crash_max = CRASH_ADDR_HIGH_MAX; > search_base = CRASH_ADDR_LOW_MAX; > @@ -195,6 +204,10 @@ static void __init reserve_crashkernel(void) > goto retry; > } > > + /* > + * For crashkernel=size[KMG],high, if the first attempt was for > + * high memory, fall back to low memory. > + */ > if (high && (crash_max == CRASH_ADDR_HIGH_MAX)) { > crash_max = CRASH_ADDR_LOW_MAX; > search_base = 0; > -- > 2.34.1 > > > ___ > kexec mailing list > kexec@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/kexec > ___ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec
[PATCH 2/2] arm64/kdump: add code comments for crashkernel reservation cases
This will help understand codes on crashkernel reservations on arm64. Signed-off-by: Baoquan He --- arch/arm64/mm/init.c | 13 + 1 file changed, 13 insertions(+) diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 26a05af2bfa8..f88ad17cb20d 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -177,6 +177,10 @@ static void __init reserve_crashkernel(void) crash_base = memblock_phys_alloc_range(crash_size, CRASH_ALIGN, search_base, crash_max); if (!crash_base) { + /* +* For crashkernel=size[KMG]@offset[KMG], print out failure +* message if can't reserve the specified region. +*/ if (fixed_base) { pr_warn("cannot reserve crashkernel region [0x%llx-0x%llx]\n", search_base, crash_max); @@ -188,6 +192,11 @@ static void __init reserve_crashkernel(void) * high memory, the minimum required low memory will be * reserved later. */ + /* +* For crashkernel=size[KMG], if the first attempt was for +* low memory, fall back to high memory, the minimum required +* low memory will be reserved later. +*/ if (!high && crash_max == CRASH_ADDR_LOW_MAX) { crash_max = CRASH_ADDR_HIGH_MAX; search_base = CRASH_ADDR_LOW_MAX; @@ -195,6 +204,10 @@ static void __init reserve_crashkernel(void) goto retry; } + /* +* For crashkernel=size[KMG],high, if the first attempt was for +* high memory, fall back to low memory. +*/ if (high && (crash_max == CRASH_ADDR_HIGH_MAX)) { crash_max = CRASH_ADDR_LOW_MAX; search_base = 0; -- 2.34.1 ___ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec