makedumpfile bug with ppc64 CONFIG_SPARSEMEM_EXTREME

Mahesh Jagannath Salgaonkar mahesh at linux.vnet.ibm.com
Thu Jan 17 04:36:23 EST 2013


On 01/11/2013 02:39 AM, Dave Anderson wrote:
> 
> 
> ----- Original Message -----
>>
>> Our QA group recently ran into a makedumpfile problem while
>> testing kdump/makedumpfile w/upstream 3.7.1 kernels, which
>> had to do with the filtering of pages on a 12GB ppc64 system.
>>
> ... [ cut ] ...
>>
>> I haven't checked why the original math fails in the case of the
>> ppc64 kernel, while it does not fail in a CONFIG_SPARSEMEM_EXTREME
>> x86_64 kernel, for example. (page size maybe?)  But obviously the
>> simpler dimemsion-check is a better way to do it.
>>
>> Of course, within the current constraints of makedumpfile, it's not
>> that easy.  Ideally the kernel could pass the configuration in
>> the vmcoreinfo with a VMCOREINFO_CONFIG(name).  But anyway, I'll leave
>> that up to you.
>>
>> Thanks,
>>   Dave
> 
> It's presumably being seen in 3.7.1 because of this commit:
> 
>   $ git log -p arch/powerpc/include/asm/sparsemem.h
>   commit 048ee0993ec8360abb0b51bdf8f8721e9ed62ec4
>   Author: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
>   Date:   Mon Sep 10 02:52:55 2012 +0000
> 
>       powerpc/mm: Add 64TB support
>     
>       Increase max addressable range to 64TB. This is not tested on
>       real hardware yet.
>     
>       Reviewed-by: Paul Mackerras <paulus at samba.org>
>       Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
>       Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> 
>   diff --git a/arch/powerpc/include/asm/sparsemem.h b/arch/powerpc/include/asm/sparsemem.h
>   index 0c5fa31..f6fc0ee 100644
>   --- a/arch/powerpc/include/asm/sparsemem.h
>   +++ b/arch/powerpc/include/asm/sparsemem.h
>   @@ -10,8 +10,8 @@
>     */
>    #define SECTION_SIZE_BITS       24
> 
>   -#define MAX_PHYSADDR_BITS       44
>   -#define MAX_PHYSMEM_BITS        44
>   +#define MAX_PHYSADDR_BITS       46
>   +#define MAX_PHYSMEM_BITS        46
> 
>    #endif /* CONFIG_SPARSEMEM */
> 
>   $ git describe --contains 048ee0993ec8360abb0b51bdf8f8721e9ed62ec4
>   v3.7-rc1~108^2~32
>   $
>   
> Dave

Similar issue was seen on s390x last year
(http://lists.infradead.org/pipermail/kexec/2011-December/005905.html).
The change in
MAX_PHYSMEM_BITS define in kernel causes sparsemem extreme check to fail
in makedumpfile. This needs to be fixed in the same way as it was on
s390x. Will post a fix patch for makedumpfile after testing it on
upstream kernel.

Thanks,
-Mahesh.





More information about the kexec mailing list