From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Madhavan Srinivasan <maddy@linux.ibm.com>, linuxppc-dev@lists.ozlabs.org
Cc: linux-mm@kvack.org, Sourabh Jain <sourabhjain@linux.ibm.com>,
Hari Bathini <hbathini@linux.ibm.com>, Zi Yan <ziy@nvidia.com>,
David Hildenbrand <david@redhat.com>,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
Mahesh J Salgaonkar <mahesh@linux.ibm.com>,
Michael Ellerman <mpe@ellerman.id.au>,
"Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
Donet Tom <donettom@linux.vnet.ibm.com>,
LKML <linux-kernel@vger.kernel.org>,
Sachin P Bappalige <sachinpb@linux.ibm.com>
Subject: Re: [RFC v3 1/3] fadump: Refactor and prepare fadump_cma_init for late init
Date: Mon, 14 Oct 2024 16:54:56 +0530 [thread overview]
Message-ID: <87bjznyliv.fsf@gmail.com> (raw)
In-Reply-To: <941875f7-0d7f-4ba3-bc7c-7aedc3b20dae@linux.ibm.com>
Madhavan Srinivasan <maddy@linux.ibm.com> writes:
> On 10/11/24 8:30 PM, Ritesh Harjani (IBM) wrote:
>> We anyway don't use any return values from fadump_cma_init(). Since
>> fadump_reserve_mem() from where fadump_cma_init() gets called today,
>> already has the required checks.
>> This patch makes this function return type as void. Let's also handle
>> extra cases like return if fadump_supported is false or dump_active, so
>> that in later patches we can call fadump_cma_init() separately from
>> setup_arch().
>
> Usually patches to this file are posted with title format of
>
> powerpc/fadump:<>
yes. I guess it is good to do it that way (I might have missed it)
Although commit history of oldest few patches to fadump shows..
ebaeb5ae2437 fadump: Convert firmware-assisted cpu state dump data into elf notes.
2df173d9e85d fadump: Initialize elfcore header and add PT_LOAD program headers.
3ccc00a7e04f fadump: Register for firmware assisted dump.
eb39c8803d0e fadump: Reserve the memory for firmware assisted dump.
>
>
>>
>> Acked-by: Hari Bathini <hbathini@linux.ibm.com>
>> Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
>> ---
>> v2 -> v3: Separated the series into 2 as discussed in v2.
>> [v2]: https://lore.kernel.org/linuxppc-dev/cover.1728585512.git.ritesh.list@gmail.com/
>>
>> arch/powerpc/kernel/fadump.c | 23 +++++++++--------------
>> 1 file changed, 9 insertions(+), 14 deletions(-)
>>
>> diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
>> index a612e7513a4f..162327d66982 100644
>> --- a/arch/powerpc/kernel/fadump.c
>> +++ b/arch/powerpc/kernel/fadump.c
>> @@ -78,27 +78,23 @@ static struct cma *fadump_cma;
>> * But for some reason even if it fails we still have the memory reservation
>> * with us and we can still continue doing fadump.
>> */
>> -static int __init fadump_cma_init(void)
>> +static void __init fadump_cma_init(void)
>> {
>> unsigned long long base, size;
>> int rc;
>>
>> - if (!fw_dump.fadump_enabled)
>> - return 0;
>> -
>> + if (!fw_dump.fadump_supported || !fw_dump.fadump_enabled ||
>> + fw_dump.dump_active)
>> + return;
>
> Is these checks even needed here? fadump_reserve_mem() checked for all
> these already, also dont see any other caller for fadump_cma_init().
>
>
In the next patch we will move fadump_cma_init() call from within
fadump_reserve_mem() to setup_arch(). Hence we need these extra checks
in fadump_cma_init() as well. I mentioned the same in the commit msg of
this patch too.
>> /*
>> * Do not use CMA if user has provided fadump=nocma kernel parameter.
>> - * Return 1 to continue with fadump old behaviour.
>> */
>> - if (fw_dump.nocma)
>> - return 1;
>> + if (fw_dump.nocma || !fw_dump.boot_memory_size)
>> + return;
>>
>> base = fw_dump.reserve_dump_area_start;
>> size = fw_dump.boot_memory_size;
>>
>> - if (!size)
>> - return 0;
>
> So this is the only place where we return 0, which in turn will make the
> "ret" in fadump_reserve_mem() as zero forcing to call reserve_crashkernel()
> in early_init_devtree().
>
> we are removing it, becos we know "size" here will never be zero?
>
>
yes. Because we already check if boot_memory_size is less than
bootmem_min in fadump_reserve_mem(). If it is less, then we fail and
disable fadump (fadump_enabled = 0).
So then there is no need to check for !boot_memory_size in here.
fadump_reseve_mem( ) {
<...>
if (!fw_dump.dump_active) {
fw_dump.boot_memory_size =
PAGE_ALIGN(fadump_calculate_reserve_size());
bootmem_min = fw_dump.ops->fadump_get_bootmem_min();
if (fw_dump.boot_memory_size < bootmem_min) {
pr_err("Can't enable fadump with boot memory size (0x%lx) less than 0x%llx\n",
fw_dump.boot_memory_size, bootmem_min);
goto error_out;
}
<...>
}
<...>
error_out:
fw_dump.fadump_enabled = 0;
fw_dump.reserve_dump_area_size = 0;
return 0;
}
Thanks for the review!
-ritesh
next prev parent reply other threads:[~2024-10-14 11:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-11 15:00 [RFC v3 1/3] fadump: Refactor and prepare fadump_cma_init for late init Ritesh Harjani (IBM)
2024-10-11 15:00 ` [RFC v3 2/3] fadump: Reserve page-aligned boot_memory_size during fadump_reserve_mem Ritesh Harjani (IBM)
2024-10-15 11:34 ` Madhavan Srinivasan
2024-10-11 15:00 ` [RFC v3 3/3] fadump: Move fadump_cma_init to setup_arch() after initmem_init() Ritesh Harjani (IBM)
2024-10-15 14:06 ` Madhavan Srinivasan
2024-10-14 10:24 ` [RFC v3 1/3] fadump: Refactor and prepare fadump_cma_init for late init Madhavan Srinivasan
2024-10-14 11:24 ` Ritesh Harjani [this message]
2024-10-14 12:21 ` Madhavan Srinivasan
2024-10-18 14:54 ` Madhavan Srinivasan
2024-10-18 16:04 ` Ritesh Harjani
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=87bjznyliv.fsf@gmail.com \
--to=ritesh.list@gmail.com \
--cc=aneesh.kumar@kernel.org \
--cc=david@redhat.com \
--cc=donettom@linux.vnet.ibm.com \
--cc=hbathini@linux.ibm.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mahesh@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=sachinpb@linux.ibm.com \
--cc=sourabhjain@linux.ibm.com \
--cc=ziy@nvidia.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.