mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
Add vmcoreinfo
This patch set frees the restriction that makedumpfile users should install a vmlinux file (including the debugging information) into each system. makedumpfile command is the dump filtering feature for kdump. It creates a small dumpfile by filtering unnecessary pages for the analysis. To distinguish unnecessary pages, it needs a vmlinux file including the debugging information. These days, the debugging package becomes a huge file, and it is hard to install it into each system. To solve the problem, kdump developers discussed it at lkml and kexec-ml. As the result, we reached the conclusion that necessary information for dump filtering (called "vmcoreinfo") should be embedded into the first kernel file and it should be accessed through /proc/vmcore during the second kernel. (http://www.uwsg.iu.edu/hypermail/linux/kernel/0707.0/1806.html) Dan Aloni created the patch set for the above implementation. (http://www.uwsg.iu.edu/hypermail/linux/kernel/0707.1/1053.html) And I updated it for multi architectures and memory models. (http://lists.infradead.org/pipermail/kexec/2007-August/000479.html) Signed-off-by: Dan Aloni <da-x@monatomic.org> Signed-off-by: Ken'ichi Ohmichi <oomichi@mxs.nes.nec.co.jp> Signed-off-by: Bernhard Walle <bwalle@suse.de> Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
0e647c04f6
commit
fd59d231f8
8 changed files with 200 additions and 1 deletions
|
@ -15,6 +15,8 @@
|
|||
#include <linux/cpu.h>
|
||||
#include <linux/irq.h>
|
||||
#include <linux/efi.h>
|
||||
#include <linux/numa.h>
|
||||
#include <linux/mmzone.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/setup.h>
|
||||
#include <asm/delay.h>
|
||||
|
@ -121,3 +123,31 @@ void machine_kexec(struct kimage *image)
|
|||
unw_init_running(ia64_machine_kexec, image);
|
||||
for(;;);
|
||||
}
|
||||
|
||||
void arch_crash_save_vmcoreinfo(void)
|
||||
{
|
||||
#ifdef CONFIG_ARCH_DISCONTIGMEM_ENABLE
|
||||
SYMBOL(pgdat_list);
|
||||
LENGTH(pgdat_list, MAX_NUMNODES);
|
||||
|
||||
SYMBOL(node_memblk);
|
||||
LENGTH(node_memblk, NR_NODE_MEMBLKS);
|
||||
SIZE(node_memblk_s);
|
||||
OFFSET(node_memblk_s, start_paddr);
|
||||
OFFSET(node_memblk_s, size);
|
||||
#endif
|
||||
#ifdef CONFIG_PGTABLE_3
|
||||
CONFIG(PGTABLE_3);
|
||||
#elif CONFIG_PGTABLE_4
|
||||
CONFIG(PGTABLE_4);
|
||||
#endif
|
||||
}
|
||||
|
||||
unsigned long paddr_vmcoreinfo_note(void)
|
||||
{
|
||||
unsigned long vaddr, paddr;
|
||||
vaddr = (unsigned long)(char *)&vmcoreinfo_note;
|
||||
asm volatile ("tpa %0 = %1" : "=r"(paddr) : "r"(vaddr) : "memory");
|
||||
return paddr;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue