From: Baoquan He <bhe@redhat.com>
To: "Leizhen (ThunderTown)" <thunder.leizhen@huaweicloud.com>
Cc: linux-kernel@vger.kernel.org, akpm@linux-foundation.org,
catalin.marinas@arm.com, thunder.leizhen@huawei.com,
dyoung@redhat.com, prudo@redhat.com, samuel.holland@sifive.com,
kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org,
x86@kernel.org
Subject: Re: [PATCH v2 6/8] x86: kdump: use generic interface to simplify crashkernel reservation code
Date: Fri, 1 Sep 2023 18:10:32 +0800 [thread overview]
Message-ID: <ZPG4mKmxaU78u/2k@MiWiFi-R3L-srv> (raw)
In-Reply-To: <5b53d460-7134-e292-77ec-967016e89003@huaweicloud.com>
On 08/31/23 at 11:43am, Leizhen (ThunderTown) wrote:
......
> > -static void __init reserve_crashkernel(void)
> > +static void __init arch_reserve_crashkernel(void)
> > {
> > - unsigned long long crash_size, crash_base, total_mem;
> > + unsigned long long crash_base, crash_size, low_size = 0;
> > + char *cmdline = boot_command_line;
> > bool high = false;
> > int ret;
> >
> > if (!IS_ENABLED(CONFIG_KEXEC_CORE))
> > return;
> >
> > - total_mem = memblock_phys_mem_size();
> > -
> > - /* crashkernel=XM */
> > - ret = parse_crashkernel(boot_command_line, total_mem,
> > - &crash_size, &crash_base, NULL, NULL);
> > - if (ret != 0 || crash_size <= 0) {
> > - /* crashkernel=X,high */
> > - ret = parse_crashkernel_high(boot_command_line, total_mem,
> > - &crash_size, &crash_base);
> > - if (ret != 0 || crash_size <= 0)
> > - return;
> > - high = true;
> > - }
> > + ret = parse_crashkernel(cmdline, memblock_phys_mem_size(),
> > + &crash_size, &crash_base,
> > + &low_size, &high);
> > + if (ret)
> > + return;
> >
> > if (xen_pv_domain()) {
> > pr_info("Ignoring crashkernel for a Xen PV domain\n");
> > return;
> > }
> >
> > - /* 0 means: find the address automatically */
> > - if (!crash_base) {
> > - /*
> > - * Set CRASH_ADDR_LOW_MAX upper bound for crash memory,
> > - * crashkernel=x,high reserves memory over 4G, also allocates
> > - * 256M extra low memory for DMA buffers and swiotlb.
> > - * But the extra memory is not required for all machines.
> > - * So try low memory first and fall back to high memory
> > - * unless "crashkernel=size[KMG],high" is specified.
> > - */
> > - if (!high)
> > - crash_base = memblock_phys_alloc_range(crash_size,
> > - CRASH_ALIGN, CRASH_ALIGN,
> > - CRASH_ADDR_LOW_MAX);
> > - if (!crash_base)
> > - crash_base = memblock_phys_alloc_range(crash_size,
> > - CRASH_ALIGN, CRASH_ALIGN,
> > - CRASH_ADDR_HIGH_MAX);
> > - if (!crash_base) {
> > - pr_info("crashkernel reservation failed - No suitable area found.\n");
> > - return;
> > - }
> > - } else {
> > - unsigned long long start;
> > -
> > - start = memblock_phys_alloc_range(crash_size, SZ_1M, crash_base,
> > - crash_base + crash_size);
> > - if (start != crash_base) {
> > - pr_info("crashkernel reservation failed - memory is in use.\n");
> > - return;
> > - }
> > - }
> > -
> > - if (crash_base >= (1ULL << 32) && reserve_crashkernel_low()) {
> > - memblock_phys_free(crash_base, crash_size);
> > - return;
> > - }
> > -
> > - pr_info("Reserving %ldMB of memory at %ldMB for crashkernel (System RAM: %ldMB)\n",
> > - (unsigned long)(crash_size >> 20),
> > - (unsigned long)(crash_base >> 20),
> > - (unsigned long)(total_mem >> 20));
> > + reserve_crashkernel_generic(cmdline, crash_size, crash_base,
> > + low_size, high);
> >
> > - crashk_res.start = crash_base;
> > - crashk_res.end = crash_base + crash_size - 1;
> > - insert_resource(&iomem_resource, &crashk_res);
> > + return;
>
> This can be omitted.
Will update, thx.
>
> > }
......
next prev parent reply other threads:[~2023-09-01 10:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 12:16 [PATCH v2 0/8] kdump: use generic functions to simplify crashkernel reservation in arch Baoquan He
2023-08-29 12:16 ` [PATCH v2 1/8] crash_core.c: remove unnecessary parameter of function Baoquan He
2023-08-31 1:25 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 2/8] crash_core: change the prototype of function parse_crashkernel() Baoquan He
2023-08-31 2:30 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 3/8] crash_core: change parse_crashkernel() to support crashkernel=,high|low parsing Baoquan He
2023-08-31 2:56 ` Leizhen (ThunderTown)
2023-09-01 9:49 ` Baoquan He
2023-09-04 2:47 ` Leizhen (ThunderTown)
2023-09-05 8:29 ` Baoquan He
2023-09-06 9:07 ` Leizhen (ThunderTown)
2023-09-11 2:11 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 4/8] crash_core: add generic function to do reservation Baoquan He
2023-08-31 3:23 ` Leizhen (ThunderTown)
2023-09-01 10:08 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 5/8] crash_core.h: include <asm/crash_core.h> if generic reservation is needed Baoquan He
2023-08-29 12:16 ` [PATCH v2 6/8] x86: kdump: use generic interface to simplify crashkernel reservation code Baoquan He
2023-08-29 21:37 ` kernel test robot
2023-08-30 1:49 ` kernel test robot
2023-08-30 11:39 ` Baoquan He
2023-08-31 3:43 ` Leizhen (ThunderTown)
2023-09-01 10:10 ` Baoquan He [this message]
2023-08-29 12:16 ` [PATCH v2 7/8] arm64: kdump: use generic interface to simplify crashkernel reservation Baoquan He
2023-08-31 3:51 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 8/8] crash_core.c: remove unneeded functions Baoquan He
2023-08-31 3:51 ` Leizhen (ThunderTown)
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=ZPG4mKmxaU78u/2k@MiWiFi-R3L-srv \
--to=bhe@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=catalin.marinas@arm.com \
--cc=dyoung@redhat.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=prudo@redhat.com \
--cc=samuel.holland@sifive.com \
--cc=thunder.leizhen@huawei.com \
--cc=thunder.leizhen@huaweicloud.com \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox