From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from fgwmail5.fujitsu.co.jp ([192.51.44.35]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1VTQ3u-00029o-Kf for kexec@lists.infradead.org; Tue, 08 Oct 2013 05:42:28 +0000 Received: from m1.gw.fujitsu.co.jp (unknown [10.0.50.71]) by fgwmail5.fujitsu.co.jp (Postfix) with ESMTP id A2DAF3EE1D9 for ; Tue, 8 Oct 2013 14:41:56 +0900 (JST) Received: from smail (m1 [127.0.0.1]) by outgoing.m1.gw.fujitsu.co.jp (Postfix) with ESMTP id 8CE6B45DE5A for ; Tue, 8 Oct 2013 14:41:56 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (s1.gw.fujitsu.co.jp [10.0.50.91]) by m1.gw.fujitsu.co.jp (Postfix) with ESMTP id 68DC145DE60 for ; Tue, 8 Oct 2013 14:41:56 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id 58EEC1DB8051 for ; Tue, 8 Oct 2013 14:41:56 +0900 (JST) Received: from m1001.s.css.fujitsu.com (m1001.s.css.fujitsu.com [10.240.81.139]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id EC5AA1DB8049 for ; Tue, 8 Oct 2013 14:41:55 +0900 (JST) Message-ID: <52539B13.6060406@jp.fujitsu.com> Date: Tue, 08 Oct 2013 14:41:39 +0900 From: HATAYAMA Daisuke MIME-Version: 1.0 Subject: Re: [PATCH] makedumpfile: fix max_mapnr issue on system has over 44-bit addressing References: <20130924124931.14715.24507.stgit@k.asiapacific.hpqcorp.net> <52422FCF.1030206@jp.fujitsu.com> <52429BF1.3050303@hp.com> In-Reply-To: <52429BF1.3050303@hp.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "kexec" Errors-To: kexec-bounces+dwmw2=twosheds.infradead.org@lists.infradead.org To: Jingbai Ma Cc: bhe@redhat.com, nishimura@mxp.nes.nec.co.jp, usui@mxm.nes.nec.co.jp, lisa.mitchell@hp.com, ruyang@redhat.com, tachibana@mxm.nes.nec.co.jp, anderson@redhat.com, chaowang@redhat.com, kumagai-atsushi@mxc.nes.nec.co.jp, kexec@lists.infradead.org, vgoyal@redhat.com, crash-utility@redhat.com (2013/09/25 17:16), Jingbai Ma wrote: > On 09/25/2013 08:35 AM, HATAYAMA Daisuke wrote: >> (2013/09/24 21:49), Jingbai Ma wrote: >>> This patch will fix a bug of makedumpfile doesn't work correctly on >>> system >>> has over 44-bit addressing in compression dump mode. >>> This bug was posted here: >>> http://lists.infradead.org/pipermail/kexec/2013-September/009587.html >>> >>> This patch will add a new field in struct kdump_sub_header. >>> unsigned long max_mapnr; >>> >>> And the old "unsigned int max_mapnr" in struct disk_dump_header will >>> not be used anymore. But still be there for compatibility purpose. >>> >>> This patch will change the header_version to 6. >>> >>> The corresponding patch for crash utility will be sent out separately. >>> >>> This patch doesn't change sadump_header. >>> Because of in sadump file, there is no any sub-header, it has to change >>> the sadump_header itself. >>> And if do so, will cause backwards-compatibility issue. >>> So it could be a separate patch if needed. >>> >>> Signed-off-by: Jingbai Ma >>> --- >>> IMPLEMENTATION | 1 + >>> diskdump_mod.h | 5 ++++- >>> makedumpfile.c | 28 ++++++++++++++++++++++------ >>> 3 files changed, 27 insertions(+), 7 deletions(-) >>> >>> diff --git a/IMPLEMENTATION b/IMPLEMENTATION >>> index f0f3135..d576811 100644 >>> --- a/IMPLEMENTATION >>> +++ b/IMPLEMENTATION >>> @@ -77,6 +77,7 @@ >>> unsigned long size_note; /* header_version 4 and later */ >>> off_t offset_eraseinfo; /* header_version 5 and later */ >>> unsigned long size_eraseinfo; /* header_version 5 and later */ >>> + unsigned long max_mapnr; /* header_version 6 and later */ >> >> x86 PAE mode can represents 52-bit physical addresses and so 40-bit >> physical >> page frames. On x86_32 unsigned long has 32-bit length only. So, you should >> define max_mapnr as unsigned long long. >> > > Good catch, I forgot x86 PAE mode also may exceed 32-bit length. > Will fix it. > Though perhaps you've already noticed, both start_pfn and end_pfn in kdump sub header have 32-bit length on x86_32. These need to be extended to 64-bit length, too. /* * Sub header for KDUMP * But Common header of KDUMP is disk_dump_header of diskdump. */ struct kdump_sub_header { unsigned long phys_base; int dump_level; /* header_version 1 and later */ int split; /* header_version 2 and later */ unsigned long start_pfn; /* header_version 2 and later */ unsigned long end_pfn; /* header_version 2 and later */ off_t offset_vmcoreinfo;/* header_version 3 and later */ unsigned long size_vmcoreinfo; /* header_version 3 and later */ off_t offset_note; /* header_version 4 and later */ unsigned long size_note; /* header_version 4 and later */ off_t offset_eraseinfo; /* header_version 5 and later */ unsigned long size_eraseinfo; /* header_version 5 and later */ }; -- Thanks. HATAYAMA, Daisuke _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec