[PATCH] makedumpfile: keep dumpfile pages in a cache

Petr Tesarik ptesarik at suse.cz
Wed Feb 13 07:18:20 EST 2013


On Wed, 6 Feb 2013 16:01:08 +0900
Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> wrote:

> Hello Petr,
> 
> On Thu, 10 Jan 2013 09:48:51 +0900
> Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> wrote:
> 
> > Hello Petr,
> > 
> > On Wed, 19 Dec 2012 16:01:25 +0100
> > Petr Tesarik <ptesarik at suse.cz> wrote:
> > 
> > > V Mon, 19 Nov 2012 17:40:44 +0900
> > > Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> napsáno:
> > > 
> > > > Hello Petr,
> > > > 
> > > > On Wed, 14 Nov 2012 15:42:12 +0100
> > > > Petr Tesarik <ptesarik at suse.cz> wrote:
> > > >  
> > > > > > Sorry for the late reply.
> > > > > > According to your measurement, it looks good on performance.
> > > > > > 
> > > > > > However, I found the issue below in v1.5.1-beta and made sure
> > > > > > that this patch causes it by git bisect (but I don't find the
> > > > > > true cause yet).
> > > > > > 
> > > > > >   result on kernel 3.4:
> > > > > >     $ makedumpfile --non-cyclic vmcore dumpfile
> > > > > >     Copying data                       : [ 62 %]
> > > > > >     readpage_elf: Can't convert a physical address(a0000) to \
> > > > > > offset. readmem: type_addr: 1, addr:1000a0000, size:4096
> > > > > >     read_pfn: Can't get the page data.
> > > > > > 
> > > > > >     makedumpfile Failed.
> > > > > >     $
> > > > > > 
> > > > > > It seems critical issue for all users, so I will postpone merging
> > > > > > this patch until this issue is solved.
> 
> I found the cause of this issue.
> 
> In the log above, readmem() try to read 0x1000a0000 (and it's correct),
> but readpage_elf() try to read 0xa0000.
> This is because your code uses PAGEBASE macro before readpage_elf().
> 
>   #define PAGEBASE(X)             (((unsigned long)(X)) & ~(PAGESIZE() - 1))
>  
> In 32bit systems, sizeof(unsigned long) is 32, 0x1000a0000 is truncated
> to 0xa0000 and readpage_elf() gets it.
> 
> It's PAGEBASE macro's issue, there is no problem in your code. 
> So, I'll merge your patch just as it is, and merge the patch below.

Oh, this is great news! Thank you for the work, and sorry for my late
reply.

Petr Tesarik



More information about the kexec mailing list