From: Jay Lan <jlan@sgi.com>
To: kexec@lists.infradead.org
Subject: [PATCH] IA64: kexec allocates too few memory for kdump kernel itself
Date: Wed, 03 Sep 2008 14:01:59 -0700 [thread overview]
Message-ID: <48BEFB47.20004@sgi.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 802 bytes --]
Sometimes the kexec would allocate not enough memory for kdump kernel
itself on IA64 and caused kdump kernel to panic at boot.
When it happens, the /proc/iomem would show a kernel RAM segment like
this:
3014000000-3015294fff : System RAM
3014000000-3014823ccf : Kernel code
3014823cd0-3014dee8ef : Kernel data
3014dee8f0-301529448f : Kernel bss
3015295000-307bffdfff : System RAM
3018000000-3037ffffff : Crash kernel
But kexec would allocate memory 3018000000-3019290000 for the kernel,
which is 0x5000 smaller than the regular kernel. In my cases, the
physical_node_map and kern_memmap of the kdump kernel overlaped and
caused data corruption.
This patch fixes the problem. The patch was generated against
kexec-tools 2.0.0 and tested in 2.6.27-rc4.
Signed-off-by: Jay Lan <jlan@sgi.com>
[-- Attachment #2: bootmem-fix --]
[-- Type: text/plain, Size: 1030 bytes --]
---
kexec/arch/ia64/crashdump-ia64.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
Index: kexec-tools/kexec/arch/ia64/crashdump-ia64.c
===================================================================
--- kexec-tools.orig/kexec/arch/ia64/crashdump-ia64.c 2008-09-03 11:24:14.289758063 -0700
+++ kexec-tools/kexec/arch/ia64/crashdump-ia64.c 2008-09-03 11:29:34.095833316 -0700
@@ -90,15 +90,15 @@ static void add_loaded_segments_info(str
phdr = &ehdr->e_phdr[i];
if (phdr->p_type != PT_LOAD)
break;
- if (loaded_segments[loaded_segments_num].end !=
- phdr->p_paddr & ~(ELF_PAGE_SIZE-1))
- break;
+ if (loaded_segments[loaded_segments_num].end <
+ (phdr->p_paddr & ~(ELF_PAGE_SIZE-1)) )
+ loaded_segments[loaded_segments_num].end
+ = phdr->p_paddr & ~(ELF_PAGE_SIZE-1);
loaded_segments[loaded_segments_num].end +=
(phdr->p_memsz + ELF_PAGE_SIZE - 1) &
~(ELF_PAGE_SIZE - 1);
i++;
}
-
loaded_segments_num++;
}
}
[-- Attachment #3: Type: text/plain, Size: 143 bytes --]
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next reply other threads:[~2008-09-03 21:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-03 21:01 Jay Lan [this message]
2008-09-04 0:01 ` [PATCH] IA64: kexec allocates too few memory for kdump kernel itself Simon Horman
2008-09-04 1:37 ` Jay Lan
2008-09-04 18:28 ` Jay Lan
2008-09-12 23:27 ` Simon Horman
2008-09-13 0:38 ` Jay Lan
2008-09-15 5:47 ` Simon Horman
2008-09-15 6:58 ` Simon Horman
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=48BEFB47.20004@sgi.com \
--to=jlan@sgi.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.