One of the primary issues with Firmware Assisted Dump (fadump) on Power is that it needs a large amount of memory to be reserved. This reserved memory is used for saving the contents of old crashed kernel's memory before fadump capture kernel uses old kernel's memory area to boot. However, This reserved memory area stays unused until system crash and isn't available for production kernel to use.
Instead of setting aside a significant chunk of memory that nobody can use, take advantage Linux kernel's Contiguous Memory Allocator (CMA) feature, to reserve a significant chunk of memory that the kernel is prevented from using , but applications are free to use it. Patch 2 implements the usage of CMA region to allow production kernel to use that memory for applications usage, making fadump reservationless. We now initialize siginificant chunk of faump reserved memory for CMA. Patch 1, 3 and 4 fixes various fadump issues and bugs. Changes in V5: - Drop the patch that does metadata movement. - Move the kexec fix patch to top (patch 1) - Fold CMA documenation patch into patch 2 - Fix the compilation issues when CONFIG_CMA is not set. Reported by Hari. - Use the approach of using boot memory size for CMA as suggested by Hari except the movement of sections. Thanks to Hari. Changes in V4: - patch 1: Make fadump compatible irrespective of kernel versions. - patch 4: moved out of the series and been posted seperatly at http://patchwork.ozlabs.org/patch/896716/ - Documentation update about CMA reservation. Changes in V3: - patch 1 & 2: move metadata region and documentation update. - patch 7: Un-register the faudmp on kexec path --- Mahesh Salgaonkar (4): powerpc/fadump: un-register fadump on kexec path. powerpc/fadump: Reservationless firmware assisted dump powerpc/fadump: throw proper error message on fadump registration failure. powerpc/fadump: Do not allow hot-remove memory from fadump reserved area. Documentation/powerpc/firmware-assisted-dump.txt | 10 ++ arch/powerpc/include/asm/fadump.h | 6 + arch/powerpc/kernel/fadump.c | 130 ++++++++++++++++++++-- arch/powerpc/platforms/pseries/hotplug-memory.c | 7 + 4 files changed, 137 insertions(+), 16 deletions(-) -- Signature