From 797f6a684f28dbb00f9e9719315574e344fcbf53 Mon Sep 17 00:00:00 2001 From: Xishi Qiu Date: Mon, 25 Mar 2013 19:14:16 +0800 Subject: [PATCH] Add size restriction to the kdump documentation In efi_init() memory aligns in IA64_GRANULE_SIZE(16M). If set "crashkernel=1024M-:600M" and use sparse memory model, when crash kernel booting it changes [128M-728M] to [128M-720M]. But initrd memory is in [709M-727M], and virt_addr_valid() *can not* check the invalid pages when freeing initrd memory, because there are some pages missed at the end of the section, and this causes error. ... Unpacking initramfs... Freeing initrd memory: 19648kB freed BUG: Bad page state in process swapper pfn:02d00 page:e0000000102dd800 flags:(null) count:0 mapcount:1 mapping:(null) index:0 Call Trace: [] show_stack+0x80/0xa0 sp=e000000021e8fbd0 bsp=e000000021e81360 [] dump_stack+0x30/0x50 sp=e000000021e8fda0 bsp=e000000021e81348 [] bad_page+0x280/0x380 sp=e000000021e8fda0 bsp=e000000021e81308 [] free_hot_cold_page+0x3a0/0x5c0 sp=e000000021e8fda0 bsp=e000000021e812a0 [] free_hot_page+0x30/0x60 sp=e000000021e8fda0 bsp=e000000021e81280 [] __free_pages+0xb0/0xe0 sp=e000000021e8fda0 bsp=e000000021e81258 [] free_pages+0xa0/0xc0 sp=e000000021e8fda0 bsp=e000000021e81230 [] free_initrd_mem+0x230/0x290 sp=e000000021e8fda0 bsp=e000000021e811d8 [] populate_rootfs+0x1c0/0x280 sp=e000000021e8fdb0 bsp=e000000021e811a0 [] do_one_initcall+0x3b0/0x3e0 sp=e000000021e8fdb0 bsp=e000000021e81158 [] kernel_init+0x3f0/0x4b0 sp=e000000021e8fdb0 bsp=e000000021e81108 [] kernel_thread_helper+0xd0/0x100 sp=e000000021e8fe30 bsp=e000000021e810e0 [] start_kernel_thread+0x20/0x40 sp=e000000021e8fe30 bsp=e000000021e810e0 ... In "http://marc.info/?l=linux-arch&m=136147092429314&w=2" Tony said: "Perhaps in Documentation/kdump/kdump.txt (which the crashkernel entry in kernel-parameters.txt points at). The ia64 section of kdump.txt notes that the start address will be rounded up to a GRANULE boundary, but doesn't talk about restrictions on the size." This patch add size restriction to the documentation of kdump. Signed-off-by: Xishi Qiu Signed-off-by: Tony Luck --- Documentation/kdump/kdump.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/kdump/kdump.txt b/Documentation/kdump/kdump.txt index 13f1aa09b938..9c7fd988e299 100644 --- a/Documentation/kdump/kdump.txt +++ b/Documentation/kdump/kdump.txt @@ -297,6 +297,7 @@ Boot into System Kernel On ia64, 256M@256M is a generous value that typically works. The region may be automatically placed on ia64, see the dump-capture kernel config option notes above. + If use sparse memory, the size should be rounded to GRANULE boundaries. On s390x, typically use "crashkernel=xxM". The value of xx is dependent on the memory consumption of the kdump system. In general this is not -- 2.30.2