linux/arch/i386/kernel
Vivek Goyal 87937472ff [PATCH] i386: export memory more than 4G through /proc/iomem
Currently /proc/iomem exports physical memory also apart from io device
memory.  But on i386, it truncates any memory more than 4GB.  This leads to
problems for kexec/kdump.

Kexec reads /proc/iomem to determine the system memory layout and prepares a
memory map based on that and passes it to the kernel being kexeced.  Given the
fact that memory more than 4GB has been truncated, new kernel never gets to
see and use that memory.

Kdump also reads /proc/iomem to determine the physical memory layout of the
system and encodes this informaiton in ELF headers.  After a crash new kernel
parses these ELF headers being used by previous kernel and vmcore is prepared
accordingly.  As memory more than 4GB has been truncated, kdump never sees
that memory and never prepares ELF headers for it.  Hence vmcore is truncated
and limited to 4GB even if there is more physical memory in the system.

This patch exports memory more than 4GB through /proc/iomem on i386.

Cc: Maneesh Soni <maneesh@in.ibm.com>
Cc: Vivek Goyal <vgoyal@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-06-27 09:24:00 -07:00
..
acpi Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2006-06-23 07:52:36 -07:00
cpu Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
.gitignore [PATCH] x86: gitignore some autogenerated files for i386 2006-02-14 16:09:35 -08:00
alternative.c [PATCH] x86_64: x86_64 version of the smp alternative patch. 2006-06-26 10:48:14 -07:00
apic.c [PATCH] x86_64: fix apic error on bootup 2006-06-26 10:48:22 -07:00
apm.c [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status 2006-06-26 10:48:21 -07:00
asm-offsets.c [CRYPTO] all: Pass tfm instead of ctx to algorithms 2006-06-26 17:34:39 +10:00
bootflag.c
cpuid.c [PATCH] x86 cpuid and msr notifier callback section mismatches 2006-04-19 09:13:50 -07:00
crash_dump.c
crash.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2006-06-26 13:33:14 -07:00
doublefault.c [PATCH] i386: cpu_relax() in crash.c and doublefault.c 2006-06-25 10:00:55 -07:00
early_printk.c
efi_stub.S
efi.c [PATCH] 64bit resource: fix up printks for resources in arch and core code 2006-06-27 09:23:59 -07:00
entry.S [PATCH] i386: reliable stack trace support i386 entry.S 2006-06-26 10:48:17 -07:00
head.S [PATCH] i386: cleanup after cpu_gdt_descr conversion to per-cpu data 2006-03-23 07:38:06 -08:00
hpet.c [PATCH] generic-time: add macro to simplify/hide mask constants 2006-06-26 09:58:21 -07:00
i386_ksyms.c [PATCH] No arch-specific strpbrk implementations 2006-04-11 06:18:40 -07:00
i387.c [PATCH] x86: make i387 mxcsr_feature_mask __read_mostly 2006-06-23 07:42:57 -07:00
i8237.c
i8253.c [PATCH] time: fix time going backward w/ clock=pit 2006-06-26 09:58:21 -07:00
i8259.c spelling fixes 2006-06-26 18:35:02 +02:00
init_task.c
io_apic.c [PATCH] x86_64: fix vector_lock deadlock in io_apic.c 2006-06-26 10:48:17 -07:00
ioport.c
irq.c [PATCH] i386/x86-64: adjust /proc/interrupts column headings 2006-06-26 10:48:21 -07:00
kprobes.c [PATCH] Kprobe: multi kprobe posthandler for booster 2006-06-26 09:58:22 -07:00
ldt.c
machine_kexec.c Storage class should be first 2006-06-26 18:57:34 +02:00
Makefile Merge branch 'x86-64' 2006-06-26 10:51:09 -07:00
mca.c
microcode.c [PATCH] fix x86 microcode driver handling of multiple matching revisions 2006-06-23 07:42:56 -07:00
module.c [PATCH] x86: SMP alternatives 2006-03-23 07:38:04 -08:00
mpparse.c [PATCH] x86_64: avoid IRQ0 ioapic pin collision 2006-05-08 09:34:56 -07:00
msr.c [PATCH] x86 cpuid and msr notifier callback section mismatches 2006-04-19 09:13:50 -07:00
nmi.c [PATCH] x86_64: i386/x86-64 Add nmi watchdog support for new Intel CPUs 2006-06-26 10:48:22 -07:00
numaq.c [PATCH] Time: i386 Conversion - part 2: Rework TSC Support 2006-06-26 09:58:21 -07:00
pci-dma.c
process.c [PATCH] i386/x86-64/ia64: Move polling flag into thread_info_status 2006-06-26 10:48:21 -07:00
ptrace.c [PATCH] drop task argument of audit_syscall_{entry,exit} 2006-05-01 06:06:18 -04:00
quirks.c [PATCH] EDAC: core EDAC support code 2006-01-18 19:20:31 -08:00
reboot_fixups.c [PATCH] i386: Remove printk about reboot fixups at reboot 2006-04-09 11:53:53 -07:00
reboot.c
relocate_kernel.S
scx200.c
semaphore.c [PATCH] x86: SMP alternatives 2006-03-23 07:38:04 -08:00
setup.c [PATCH] i386: export memory more than 4G through /proc/iomem 2006-06-27 09:24:00 -07:00
sigframe.h
signal.c [PATCH] swsusp: finally solve mysqld problem 2006-03-23 07:38:08 -08:00
smp.c [PATCH] x86_64: Standardize i386/x86_64 handling of NMI_VECTOR 2006-06-26 10:48:22 -07:00
smpboot.c [PATCH] x86_64: nmi watchdog header cleanup 2006-06-26 10:48:16 -07:00
srat.c [PATCH] Unify pxm_to_node() and node_to_pxm() 2006-06-23 07:42:48 -07:00
summit.c
sys_i386.c [PATCH] Uninline sys_mmap common code (reduce binary size) 2006-03-22 07:54:02 -08:00
syscall_table.S [PATCH] sys_move_pages: 32bit support (i386, x86_64) 2006-06-23 07:42:53 -07:00
sysenter.c
time_hpet.c
time.c [PATCH] Time: i386 Clocksource Drivers 2006-06-26 09:58:21 -07:00
topology.c [PATCH] x86 topology: don;t create a control file for BSP that cannot be removed 2006-03-23 07:38:07 -08:00
trampoline.S
traps.c [PATCH] i386/x86-64: fall back to old-style call trace if no unwinding 2006-06-26 10:48:18 -07:00
tsc.c [PATCH] generic-time: add macro to simplify/hide mask constants 2006-06-26 09:58:21 -07:00
vm86.c [PATCH] drop task argument of audit_syscall_{entry,exit} 2006-05-01 06:06:18 -04:00
vmlinux.lds.S [PATCH] i386: reliable stack trace support (i386) 2006-06-26 10:48:17 -07:00
vsyscall-int80.S
vsyscall-note.S
vsyscall-sigreturn.S [PATCH] Mark unwind info for signal trampolines in vDSOs 2006-03-31 12:18:52 -08:00
vsyscall-sysenter.S [PATCH] i386: more vsyscall documentation 2006-03-23 07:38:06 -08:00
vsyscall.lds.S
vsyscall.S