All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mahesh J Salgaonkar <mahesh@linux.vnet.ibm.com>
To: linuxppc-dev <linuxppc-dev@ozlabs.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Anton Blanchard <anton@samba.org>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Milton Miller <miltonm@bga.com>, Amerigo Wang <amwang@redhat.com>
Subject: [RFC PATCH v3 06/10] fadump: Add PT_NOTE program header for vmcoreinfo
Date: Mon, 31 Oct 2011 22:40:13 +0530	[thread overview]
Message-ID: <20111031171013.12259.21257.stgit@mars.in.ibm.com> (raw)
In-Reply-To: <20111031170200.12259.27663.stgit@mars.in.ibm.com>

From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

Introduce a PT_NOTE program header that points to physical address of
vmcoreinfo_note buffer declared in kernel/kexec.c. The vmcoreinfo
note buffer is populated during crash_fadump() at the time of system
crash.

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
---
 arch/powerpc/kernel/fadump.c |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index c0ecd6a..4d42fe5 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -773,6 +773,19 @@ static void setup_crash_memory_ranges(void)
 	}
 }
 
+/*
+ * If the given physical address falls within the boot memory region then
+ * return the relocated address that points to the dump region reserved
+ * for saving initial boot memory contents.
+ */
+static inline unsigned long relocate(unsigned long paddr)
+{
+	if (paddr > RMR_START && paddr < fw_dump.boot_memory_size)
+		return fdm.rmr_region.destination_address + paddr;
+	else
+		return paddr;
+}
+
 static int create_elfcore_headers(char *bufp)
 {
 	struct elfhdr *elf;
@@ -805,6 +818,22 @@ static int create_elfcore_headers(char *bufp)
 	/* Increment number of program headers. */
 	(elf->e_phnum)++;
 
+	/* setup ELF PT_NOTE for vmcoreinfo */
+	phdr = (struct elf_phdr *)bufp;
+	bufp += sizeof(struct elf_phdr);
+	phdr->p_type	= PT_NOTE;
+	phdr->p_flags	= 0;
+	phdr->p_vaddr	= 0;
+	phdr->p_align	= 0;
+
+	phdr->p_paddr	= relocate(paddr_vmcoreinfo_note());
+	phdr->p_offset	= phdr->p_paddr;
+	phdr->p_memsz	= vmcoreinfo_max_size;
+	phdr->p_filesz	= vmcoreinfo_max_size;
+
+	/* Increment number of program headers. */
+	(elf->e_phnum)++;
+
 	/* setup PT_LOAD sections. */
 
 	for (i = 0; i < crash_mem_ranges; i++) {

WARNING: multiple messages have this Message-ID (diff)
From: Mahesh J Salgaonkar <mahesh@linux.vnet.ibm.com>
To: linuxppc-dev <linuxppc-dev@ozlabs.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Haren Myneni <hbabu@us.ibm.com>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Amerigo Wang <amwang@redhat.com>, Milton Miller <miltonm@bga.com>,
	Anton Blanchard <anton@samba.org>
Subject: [RFC PATCH v3 06/10] fadump: Add PT_NOTE program header for vmcoreinfo
Date: Mon, 31 Oct 2011 22:40:13 +0530	[thread overview]
Message-ID: <20111031171013.12259.21257.stgit@mars.in.ibm.com> (raw)
In-Reply-To: <20111031170200.12259.27663.stgit@mars.in.ibm.com>

From: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>

Introduce a PT_NOTE program header that points to physical address of
vmcoreinfo_note buffer declared in kernel/kexec.c. The vmcoreinfo
note buffer is populated during crash_fadump() at the time of system
crash.

Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
---
 arch/powerpc/kernel/fadump.c |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c
index c0ecd6a..4d42fe5 100644
--- a/arch/powerpc/kernel/fadump.c
+++ b/arch/powerpc/kernel/fadump.c
@@ -773,6 +773,19 @@ static void setup_crash_memory_ranges(void)
 	}
 }
 
+/*
+ * If the given physical address falls within the boot memory region then
+ * return the relocated address that points to the dump region reserved
+ * for saving initial boot memory contents.
+ */
+static inline unsigned long relocate(unsigned long paddr)
+{
+	if (paddr > RMR_START && paddr < fw_dump.boot_memory_size)
+		return fdm.rmr_region.destination_address + paddr;
+	else
+		return paddr;
+}
+
 static int create_elfcore_headers(char *bufp)
 {
 	struct elfhdr *elf;
@@ -805,6 +818,22 @@ static int create_elfcore_headers(char *bufp)
 	/* Increment number of program headers. */
 	(elf->e_phnum)++;
 
+	/* setup ELF PT_NOTE for vmcoreinfo */
+	phdr = (struct elf_phdr *)bufp;
+	bufp += sizeof(struct elf_phdr);
+	phdr->p_type	= PT_NOTE;
+	phdr->p_flags	= 0;
+	phdr->p_vaddr	= 0;
+	phdr->p_align	= 0;
+
+	phdr->p_paddr	= relocate(paddr_vmcoreinfo_note());
+	phdr->p_offset	= phdr->p_paddr;
+	phdr->p_memsz	= vmcoreinfo_max_size;
+	phdr->p_filesz	= vmcoreinfo_max_size;
+
+	/* Increment number of program headers. */
+	(elf->e_phnum)++;
+
 	/* setup PT_LOAD sections. */
 
 	for (i = 0; i < crash_mem_ranges; i++) {


  parent reply	other threads:[~2011-10-31 17:11 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-10-31 17:04 [RFC PATCH v3 00/10] fadump: Firmware-assisted dump support for Powerpc Mahesh J Salgaonkar
2011-10-31 17:04 ` Mahesh J Salgaonkar
2011-10-31 17:05 ` [RFC PATCH v3 01/10] fadump: Add documentation for firmware-assisted dump Mahesh J Salgaonkar
2011-10-31 17:05   ` Mahesh J Salgaonkar
2011-10-31 17:06 ` [RFC PATCH v3 02/10] fadump: Reserve the memory for firmware assisted dump Mahesh J Salgaonkar
2011-10-31 17:06   ` Mahesh J Salgaonkar
2011-10-31 17:07 ` [RFC PATCH v3 03/10] fadump: Register " Mahesh J Salgaonkar
2011-10-31 17:07   ` Mahesh J Salgaonkar
2011-10-31 17:08 ` [RFC PATCH v3 04/10] fadump: Initialize elfcore header and add PT_LOAD program headers Mahesh J Salgaonkar
2011-10-31 17:08   ` Mahesh J Salgaonkar
2011-10-31 17:09 ` [RFC PATCH v3 05/10] fadump: Convert firmware-assisted cpu state dump data into elf notes Mahesh J Salgaonkar
2011-10-31 17:09   ` Mahesh J Salgaonkar
2011-10-31 17:10 ` Mahesh J Salgaonkar [this message]
2011-10-31 17:10   ` [RFC PATCH v3 06/10] fadump: Add PT_NOTE program header for vmcoreinfo Mahesh J Salgaonkar
2011-10-31 17:11 ` [RFC PATCH v3 07/10] fadump: Introduce cleanup routine to invalidate /proc/vmcore Mahesh J Salgaonkar
2011-10-31 17:11   ` Mahesh J Salgaonkar
2011-10-31 17:11 ` [RFC PATCH v3 08/10] fadump: Invalidate registration and release reserved memory for general use Mahesh J Salgaonkar
2011-10-31 17:11   ` Mahesh J Salgaonkar
2011-10-31 17:12 ` [RFC PATCH v3 09/10] fadump: Invalidate the fadump registration during machine shutdown Mahesh J Salgaonkar
2011-10-31 17:12   ` Mahesh J Salgaonkar
2011-10-31 17:13 ` [RFC PATCH v3 10/10] fadump: Introduce config option for firmware assisted dump feature Mahesh J Salgaonkar
2011-10-31 17:13   ` Mahesh J Salgaonkar

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=20111031171013.12259.21257.stgit@mars.in.ibm.com \
    --to=mahesh@linux.vnet.ibm.com \
    --cc=amwang@redhat.com \
    --cc=anton@samba.org \
    --cc=benh@kernel.crashing.org \
    --cc=ebiederm@xmission.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=miltonm@bga.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.