Hi, 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 -p', 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. Issues: * 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 build. * Kdump kernel boot fails on some specific systems because exception vectors are overwritten (When I tested the same kernel binary on an another machine kdump kernel boots). No issues in OpenPower and Power6 machines. I have faced exception overwritten problem in one Power5 lpar. Building relocatable kernel support: Enable "Build a kdump crash kernel" option and "Build relocatable kernel" 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. Regards, Mohan. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev