All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avnish Chouhan <avnish@linux.ibm.com>
To: Hari Bathini <hbathini@linux.ibm.com>
Cc: Sourabh Jain <sourabhjain@linux.ibm.com>,
	linuxppc-dev@lists.ozlabs.org, Brian King <brking@linux.ibm.com>,
	Madhavan Srinivasan <maddy@linux.ibm.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Mahesh Salgaonkar <mahesh@linux.ibm.com>
Subject: Re: [PATCH 2/2] powerpc/fadump: fix additional param memory reservation for HASH MMU
Date: Thu, 23 Jan 2025 19:54:33 +0530	[thread overview]
Message-ID: <773fec68e97a408de6871eb3d2c2ac61@linux.ibm.com> (raw)
In-Reply-To: <6322511c-e56a-4f4c-9b13-efec018cb3a7@linux.ibm.com>

On 2025-01-23 15:26, Hari Bathini wrote:
> On 20/01/25 11:05 pm, Sourabh Jain wrote:
>> Commit 683eab94da75bc ("powerpc/fadump: setup additional parameters 
>> for
>> dump capture kernel") introduced the additional parameter feature in
>> fadump for HASH MMU with the understanding that GRUB does not use the
>> memory area between 640MB and 768MB for its operation.
>> 
>> However, the patch ("powerpc: increase MIN RMA size for CAS
>> negotiation") changes the MIN RMA size to 768MB, allowing GRUB to use
>> memory up to 768MB. This makes the fadump reservation for the 
>> additional
>> parameter feature for HASH MMU unreliable.
>> 
>> To address this, adjust the memory range for the additional parameter 
>> in
>> fadump for HASH MMU. This will ensure that GRUB does not overwrite the
>> memory reserved for fadump's additional parameter in HASH MMU.
>> 
> 
>> The new policy for the memory range for the additional parameter in 
>> HASH
>> MMU is that the first memory block must be larger than the MIN_RMA 
>> size,
>> as the bootloader can use memory up to the MIN_RMA size. The range
>> should be between MIN_RMA and the RMA size (ppc64_rma_size), and it 
>> must
>> not overlap with the fadump reserved area.
> 
> IIRC, even memory above MIN_RMA is used by the bootloader except for
> 640MB to 768MB (assuming RMA size is >768MB). So, how does this change
> guarantee that the bootloader is not using memory reserved for 
> bootargs?
> 
> Avnish, earlier, bootloader was using RUNTIME_MIN_SPACE (128MB) 
> starting
> top-down at 768MB earlier. With MIN_RMA changed to 768MB, is bootloader
> still using the concept of RUNTIME_MIN_SPACE to set aside some memory
> for kernel to use. If yes, where exactly is it allocating this space
> now? Also, rtas instantiates top-down at 768MB. Would that not have
> a conflict with grub allocations without RUNTIME_MIN_SPACE at 768MB?
> 
> - Hari

Hi Hari,

The RUNTIME_MIN_SPACE is the space left aside by Grub is within the 
MIN_RMA size. Grub won't use memory beyond the MIN_RMA. With this 
change, we haven't changed the RUNTIME_MIN_SPACE behavior. Grub will 
still keep the 128 MB space in MIN_RMA for loading stock kernel and 
initrd.

For your RTAS query, as it gets initiated just below the MIN_RMA. So it 
will not have any impact with this RMA size change.
**
When MIN_RMA is 768MB, rtas will be instantiate at 0x000000002ec50000 
(approximately at 748 MB).
**

Thank you!

Regards,
Avnish Chouhan

> 
>> 
>> Cc: Avnish Chouhan <avnish@linux.ibm.com>
>> Cc: Brian King <brking@linux.ibm.com>
>> Cc: Hari Bathini <hbathini@linux.ibm.com>
>> Cc: Madhavan Srinivasan <maddy@linux.ibm.com>
>> Cc: Michael Ellerman <mpe@ellerman.id.au>
>> Cc: Mahesh Salgaonkar <mahesh@linux.ibm.com>
>> Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
>> ---
>>   arch/powerpc/kernel/fadump.c | 21 +++++++++++----------
>>   1 file changed, 11 insertions(+), 10 deletions(-)
>> 
>> diff --git a/arch/powerpc/kernel/fadump.c 
>> b/arch/powerpc/kernel/fadump.c
>> index 4b371c738213..5831f3ec8561 100644
>> --- a/arch/powerpc/kernel/fadump.c
>> +++ b/arch/powerpc/kernel/fadump.c
>> @@ -33,6 +33,7 @@
>>   #include <asm/fadump-internal.h>
>>   #include <asm/setup.h>
>>   #include <asm/interrupt.h>
>> +#include <asm/prom.h>
>>     /*
>>    * The CPU who acquired the lock to trigger the fadump crash should
>> @@ -1764,19 +1765,19 @@ void __init fadump_setup_param_area(void)
>>   		range_end = memblock_end_of_DRAM();
>>   	} else {
>>   		/*
>> -		 * Passing additional parameters is supported for hash MMU only
>> -		 * if the first memory block size is 768MB or higher.
>> +		 * Memory range for passing additional parameters for HASH MMU
>> +		 * must meet the following conditions:
>> +		 * 1. The first memory block size must be higher than the
>> +		 *    minimum RMA (MIN_RMA) size. Bootloader can use memory
>> +		 *    up to RMA size. So it should be avoided.
>> +		 * 2. The range should be between MIN_RMA and RMA size 
>> (ppc64_rma_size)
>> +		 * 3. It must not overlap with the fadump reserved area.
>>   		 */
>> -		if (ppc64_rma_size < 0x30000000)
>> +		if (ppc64_rma_size < MIN_RMA*1024*1024)
>>   			return;
>>   -		/*
>> -		 * 640 MB to 768 MB is not used by PFW/bootloader. So, try 
>> reserving
>> -		 * memory for passing additional parameters in this range to avoid
>> -		 * being stomped on by PFW/bootloader.
>> -		 */
>> -		range_start = 0x2A000000;
>> -		range_end = range_start + 0x4000000;
>> +		range_start = MIN_RMA * 1024 * 1024;
>> +		range_end = min(ppc64_rma_size, fw_dump.boot_mem_top);
>>   	}
>>     	fw_dump.param_area = memblock_phys_alloc_range(COMMAND_LINE_SIZE,


  reply	other threads:[~2025-01-23 14:24 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-20 17:34 [PATCH 0/2] powerpc/fadump: fix additional parameter for HASH MMU Sourabh Jain
2025-01-20 17:34 ` [PATCH 1/2] powerpc: export MIN RMA size Sourabh Jain
2025-01-20 17:35 ` [PATCH 2/2] powerpc/fadump: fix additional param memory reservation for HASH MMU Sourabh Jain
2025-01-23  6:58   ` Mahesh J Salgaonkar
2025-01-24  3:34     ` Sourabh Jain
2025-01-23  9:56   ` Hari Bathini
2025-01-23 14:24     ` Avnish Chouhan [this message]
2025-01-31 15:14       ` Hari Bathini
2025-02-04  5:28         ` Avnish Chouhan
2025-02-04  6:27           ` Hari Bathini
2025-02-04  8:37             ` Avnish Chouhan
2025-02-10  6:44               ` Hari Bathini

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=773fec68e97a408de6871eb3d2c2ac61@linux.ibm.com \
    --to=avnish@linux.ibm.com \
    --cc=brking@linux.ibm.com \
    --cc=hbathini@linux.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=maddy@linux.ibm.com \
    --cc=mahesh@linux.ibm.com \
    --cc=mpe@ellerman.id.au \
    --cc=sourabhjain@linux.ibm.com \
    /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: link
Be 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.