public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
From: Michael Holzheu <holzheu@linux.vnet.ibm.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: ebiederm@xmission.com, mahesh@linux.vnet.ibm.com,
	hbabu@us.ibm.com, oomichi@mxs.nes.nec.co.jp, horms@verge.net.au,
	schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
	kexec@lists.infradead.org, linux-kernel@vger.kernel.org,
	linux-s390@vger.kernel.org
Subject: Re: [patch v3 3/8] kdump: Add size to elfcorehdr kernel parameter
Date: Thu, 18 Aug 2011 19:56:46 +0200	[thread overview]
Message-ID: <1313690206.3528.32.camel@br98xy6r> (raw)
In-Reply-To: <20110818172815.GD15413@redhat.com>

Hello Vivek,

On Thu, 2011-08-18 at 13:28 -0400, Vivek Goyal wrote:
> > The parameter is parsed in common code (kernel/crash_dump.c) in
> > early_param("elfcorehdr", setup_elfcorehdr), as it is already currently
> > the case.
> > 
> > We use address and size of the ELF core header to reserve the header
> > memory in setup.c (see patch #8):
> > 
> > +#ifdef CONFIG_CRASH_DUMP
> > +       if (is_kdump_kernel())
> > +               reserve_bootmem(elfcorehdr_addr - OLDMEM_BASE,
> > +                               PAGE_ALIGN(elfcorehdr_size), BOOTMEM_DEFAULT);
> > +#endif
> > 
> > Does that answer your question?
> 
> Yes it does. Thanks.
> 
> It brings up few more questions about rest of the memory mangement.
> 
> So kdump kernel is loaded in reserved area but does not run from there.
> It reloads itself into lower memory areas and swaps the contents of
> lower memory with reserved memory? If yes, how does it, kernel or
> purgatory?

With the v3 patch series purgatory does that (see
purgatory-s390.c/post_verification_setup_arch()):

> How does kernel come to know about how much memory is to be swapped

2nd kernel knows crash_base and crash_base because kexec tools told him
that. We do it like registering the ramdisk. See kexec-image.c:

+               if (info->kexec_flags & KEXEC_ON_CRASH) {
+                       tmp = krnl_buffer + OLDMEM_BASE_OFFS;
+                       *tmp = crash_base;
+
+                       tmp = krnl_buffer + OLDMEM_SIZE_OFFS;
+                       *tmp = crash_end - crash_base + 1;
+               }

> and how do you bound the memory usage of second kernel so that it
> does not try to use other memory which has not been swapped into
> reserved area.

See kernel patches setup.c:

+/*
+ * Make sure that oldmem, where the dump is stored, is protected
+ */
+static void reserve_oldmem(void)
+{
+#ifdef CONFIG_CRASH_DUMP
+       if (!is_kdump_kernel())
+               return;
+
+       reserve_kdump_bootmem(OLDMEM_BASE, OLDMEM_SIZE, CHUNK_OLDMEM);
+       reserve_kdump_bootmem(OLDMEM_SIZE, memory_end - OLDMEM_SIZE,
+                             CHUNK_OLDMEM);
+       if (OLDMEM_BASE + OLDMEM_SIZE == real_memory_size)
+               saved_max_pfn = PFN_DOWN(OLDMEM_BASE) - 1;
+       else
+               saved_max_pfn = PFN_DOWN(real_memory_size) - 1;
+#endif
+}

Michael

  reply	other threads:[~2011-08-18 17:56 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-12 13:48 [patch v3 0/8] kdump: Patch series for s390 support (version 3) Michael Holzheu
2011-08-12 13:48 ` [patch v3 1/8] kdump: Add KEXEC_CRASH_CONTROL_MEMORY_LIMIT Michael Holzheu
2011-08-12 13:48 ` [patch v3 2/8] kdump: Make kimage_load_crash_segment() weak Michael Holzheu
2011-08-18 17:15   ` Vivek Goyal
2011-08-19 13:27     ` Michael Holzheu
2011-08-19 13:48       ` Vivek Goyal
2011-08-19 14:02         ` Michael Holzheu
2011-08-19 14:28         ` Martin Schwidefsky
2011-08-19 14:37           ` Vivek Goyal
2011-08-19 14:44             ` Martin Schwidefsky
2011-08-12 13:48 ` [patch v3 3/8] kdump: Add size to elfcorehdr kernel parameter Michael Holzheu
2011-08-17 21:05   ` Vivek Goyal
2011-08-18  8:47     ` Michael Holzheu
2011-08-18 17:28       ` Vivek Goyal
2011-08-18 17:56         ` Michael Holzheu [this message]
2011-08-12 13:48 ` [patch v3 4/8] s390: Add real memory access functions Michael Holzheu
2011-08-12 13:48 ` [patch v3 5/8] s390: kdump backend code Michael Holzheu
2011-08-12 13:48 ` [patch v3 6/8] s390: Do first kdump checksum test before really starting kdump Michael Holzheu
2011-08-12 13:48 ` [patch v3 7/8] kexec-tools: Add s390 kdump support Michael Holzheu
2011-08-12 13:48 ` [patch v3 8/8] kexec-tools: Allow to call verify_sha256_digest() from kernel Michael Holzheu

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=1313690206.3528.32.camel@br98xy6r \
    --to=holzheu@linux.vnet.ibm.com \
    --cc=ebiederm@xmission.com \
    --cc=hbabu@us.ibm.com \
    --cc=heiko.carstens@de.ibm.com \
    --cc=horms@verge.net.au \
    --cc=kexec@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mahesh@linux.vnet.ibm.com \
    --cc=oomichi@mxs.nes.nec.co.jp \
    --cc=schwidefsky@de.ibm.com \
    --cc=vgoyal@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox