[RFC PATCH 0/4] Relocable kernel support for PPC64

Mohan Kumar M mohan at in.ibm.com
Fri May 30 04:55:12 EST 2008


Following four patches enable the "relocatable kernel" feature for
PPC64 kernels.
	1. extract_relocation_info.patch
	2. relocation_build.patch
	3. apply_relocation.patch
	4. relocation_support.patch

With the patchset, vmcore image of a crashed system can be captured
using the same kernel binary.

Still the kernel is not a fully relocatable kernel. It can either run at
0 or 32MB based on which address its loaded. If its loaded by 'kexec
it behaves as a relocatable kernel and runs at 32MB(even though its
compiled for 0). If the same kernel is loaded by yaboot or kexec -l, it
will behave as a normal kernel and will run at the compiled address.

* During kdump kernel boot, all secondary processors are stuck up. But
  during yaboot all secondary processors are brought online.
* Relocatable kernel build process is not yet integrated with the kernel
* Normal kexec'ing this kernel (kexec -l and -e) does not work. It hangs
  in early_init_devtree function while calling the
  functions (usually these functions are called by function pointers)
* Some times the exception vectors are overwritten in the kdump kernel.

Building relocatable kernel support:
Enable "Build a kdump crash kernel" option and "Build relocatable
options to build the kernel as relocatable.

After the kernel build, build the relocatable kernel by running
	make -f make.reloc

Copy the vmlinux.reloc to /boot, build initrd and update yaboot.conf to
include the entry for 'vmlinux.reloc' and corresponding initrd

Please give me your comments and suggestions to fix the above issues and
improve this feature.


More information about the Linuxppc-dev mailing list