From: Pingfan Liu <piliu@redhat.com>
To: Atsushi Kumagai <ats-kumagai@wm.jp.nec.com>
Cc: Hari Bathini <hbathini@linux.vnet.ibm.com>, kexec@lists.infradead.org
Subject: Re: [PATCH 2/2] makedumpfile/ppc64: get the info of mem reserved for crashkernel
Date: Sun, 20 Aug 2017 23:16:57 -0400 (EDT) [thread overview]
Message-ID: <1600938894.197567.1503285417432.JavaMail.zimbra@redhat.com> (raw)
In-Reply-To: <0910DD04CBD6DE4193FCF86B9C00BE9701EFBEFA@BPXM01GP.gisp.nec.co.jp>
----- Original Message -----
> From: "Atsushi Kumagai" <ats-kumagai@wm.jp.nec.com>
> To: "Pingfan Liu" <piliu@redhat.com>, kexec@lists.infradead.org
> Cc: "Hari Bathini" <hbathini@linux.vnet.ibm.com>
> Sent: Thursday, August 17, 2017 4:22:35 PM
> Subject: RE: [PATCH 2/2] makedumpfile/ppc64: get the info of mem reserved for crashkernel
>
> Hello Pingfan,
>
> >In kernel, ppc64 does not export the mem layout by ioresource. So we
> >need to get the mem info for crashkernel from device tree.
> >
> >Signed-off-by: Pingfan Liu <piliu@redhat.com>
> >---
> > arch/ppc64.c | 36 ++++++++++++++++++++++++++++++++++++
> > makedumpfile.c | 10 ++++++++++
> > makedumpfile.h | 4 ++++
> > 3 files changed, 50 insertions(+)
> >
> >diff --git a/arch/ppc64.c b/arch/ppc64.c
> >index 3fd6002..360590e 100644
> >--- a/arch/ppc64.c
> >+++ b/arch/ppc64.c
> >@@ -617,4 +617,40 @@ vaddr_to_paddr_ppc64(unsigned long vaddr)
> > return ppc64_vtop_level4(vaddr);
> > }
> >
> >+int arch_crashkernel_mem_size()
> >+{
> >+ const char f_crashsize[] =
> >"/proc/device-tree/chosen/linux,crashkernel-size";
> >+ const char f_crashbase[] =
> >"/proc/device-tree/chosen/linux,crashkernel-base";
> >+ unsigned long crashk_sz_be, crashk_sz;
> >+ unsigned long crashk_base_be, crashk_base;
> >+ uint swap;
> >+ FILE *fp, *fpb;
> >+
> >+ fp = fopen(f_crashsize, "r");
> >+ if (!fp) {
> >+ ERRMSG("Cannot open %s\n", f_crashsize);
> >+ return FALSE;
> >+ }
> >+ fpb = fopen(f_crashbase, "r");
> >+ if (!fp) {
> >+ ERRMSG("Cannot open %s\n", f_crashbase);
> >+ fclose(fp);
> >+ return FALSE;
> >+ }
> >+
> >+ fread(&crashk_sz_be, sizeof(crashk_sz_be), 1, fp);
> >+ fread(&crashk_base_be, sizeof(crashk_base_be), 1, fpb);
> >+ fclose(fp);
> >+ fclose(fpb);
> >+ /* dev tree is always big endian */
> >+ swap = !is_bigendian();
> >+ crashk_sz = swap64(crashk_sz_be, swap);
> >+ crashk_base = swap64(crashk_base_be, swap);
> >+ crash_reserved_mem_nr = 1;
> >+ crash_reserved_mem[0].start = crashk_base;
> >+ crash_reserved_mem[0].end = crashk_base + crashk_sz - 1;
> >+
> >+ return TRUE;
> >+}
> >+
> > #endif /* powerpc64 */
> >diff --git a/makedumpfile.c b/makedumpfile.c
> >index f85003a..c599b91 100644
> >--- a/makedumpfile.c
> >+++ b/makedumpfile.c
> >@@ -10921,10 +10921,20 @@ static int crashkernel_mem_callback(void *data,
> >int nr,
> > return 0;
> > }
> >
> >+#if !defined(HAVE_ARCH_CRASHKERNEL_MEM_SIZE)
> >+int arch_crashkernel_mem_size()
> >+{
> >+ return FALSE;
> >+}
> >+#endif
> >+
>
> I hope you follow the scheme for arch dependent code like get_phys_base()
> to get rid of such ifdef. Please see makedumpfile.h for details,
> my idea is like below:
>
> #ifdef __powerpc64__
> #define arch_crashkernel_mem_size() arch_crashkernel_mem_size_ppc64()
>
> #ifdef <others>
> #define arch_crashkernel_mem_size() stub_false()
>
>
Thanks for review., I will send out V2 to obey the schemem.
Regards,
Pingfan
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
prev parent reply other threads:[~2017-08-21 3:23 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-15 7:21 [PATCH 0/2] makedumpfile/ppc64: enable the mem-usage option on ppc64 platform Pingfan Liu
2017-08-15 7:21 ` [PATCH 1/2] makedumpfile/ppc64: set page_offset in get_versiondep_info_ppc64() Pingfan Liu
2017-08-15 7:21 ` [PATCH 2/2] makedumpfile/ppc64: get the info of mem reserved for crashkernel Pingfan Liu
2017-08-17 8:22 ` Atsushi Kumagai
2017-08-21 3:16 ` Pingfan Liu [this message]
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=1600938894.197567.1503285417432.JavaMail.zimbra@redhat.com \
--to=piliu@redhat.com \
--cc=ats-kumagai@wm.jp.nec.com \
--cc=hbathini@linux.vnet.ibm.com \
--cc=kexec@lists.infradead.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 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.