Subject: [PATCH] kdump : Support kernels having 64k page size.

From: "Sachin P. Sant" <[email-masked]>
Date: Fri, 08 Sep 2006 07:59:52 +0530

Benjamin Herrenschmidt wrote:
> On Fri, 2006-09-08 at 06:30 +0530, Sachin P. Sant wrote:
>   
>>> You should always do 64k regardless of the page size. I think we have
>>> some ABI requirements here for ELF sections to be 64k aligned anyway
>>> no ?
>>>
>>>   
>>>       
>> Ben are you aware of any doc where i can find more information. I 
>> checked the
>> 64Bit PowerPC ELF ABI doc but couldn't find any specific information about
>> this.
>>
>> Also other question is  If we create a 64k segment irrespective of page size
>> [ as compared to 32k currently ] we would be writing extra 32k even for
>> page size of 4K. Which means we have 32k less memory for the kdump
>> kernel. Wouldn't that be an issue ?
>>     
>
> 32k sounds like a drop of water in the kdump pool ...
>
> Ben.
>
>   
The following kernel patch [ along with a patch to kexec tools posted
seperately ]is required to generate proper core files using kdump on ppc64.

* Create a backup region of 64K size irrespective of the PAGE SIZE.
 At present 32K was used as backup size. In the case of 64K page size, 
second
  PT_LOAD segments starts at 32K and the first one is not page aligned.
  __ioremap() (crash_dump.c) fails if pfn = 0 which is the case for the 
second
  PT_LOAD segment. This is not an issue for 4K page size because the the 
first
  page (32K backup) is copied to second kernel memory and thus referencing
  with the second kernel pfn.

Signed-off-by: Sachin Sant <[email-masked]>

Thanks
-Sachin
* Create a backup region of 64K size irrespective of the PAGE SIZE.
  At present 32K was used as backup size. In the case of 64K page size, second 
  PT_LOAD segments starts at 32K and the first one is not page aligned. 
  __ioremap() (crash_dump.c) fails if pfn = 0 which is the case for the second 
  PT_LOAD segment. This is not an issue for 4K page size because the the first 
  page (32K backup) is copied to second kernel memory and thus referencing 
  with the second kernel pfn. 

Signed-off-by: Sachin Sant <[email-masked]>
---

diff -Naurp a/include/asm-powerpc/kdump.h b/include/asm-powerpc/kdump.h
--- a/include/asm-powerpc/kdump.h	2006-09-01 00:40:10.000000000 +0530
+++ b/include/asm-powerpc/kdump.h	2006-09-08 07:12:18.000000000 +0530
@@ -7,7 +7,7 @@
 /* How many bytes to reserve at zero for kdump. The reserve limit should
  * be greater or equal to the trampoline's end address.
  * Reserve to the end of the FWNMI area, see head_64.S */
-#define KDUMP_RESERVE_LIMIT	0x8000
+#define KDUMP_RESERVE_LIMIT	0x10000 /* 64K */
 
 #ifdef CONFIG_CRASH_DUMP