RE: [PATCH v2] Add the values related to buddy system for filteringfree pages.

From: Hatayama, Daisuke
Date: Wed Dec 19 2012 - 22:02:59 EST


> From: kexec-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:kexec-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Atsushi Kumagai
> Sent: Thursday, December 20, 2012 11:21 AM

> On Wed, 19 Dec 2012 16:18:56 -0800
> Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> > On Mon, 10 Dec 2012 10:39:13 +0900
> > Atsushi Kumagai <kumagai-atsushi@xxxxxxxxxxxxxxxxx> wrote:
> >

> >
> > We might change the PageBuddy() implementation at any time, and
> > makedumpfile will break. Or in this case, become less efficient.
> >
> > Is there any way in which we can move some of this logic into the
> > kernel? In this case, add some kernel code which uses PageBuddy() on
> > behalf of makedumpfile, rather than replicating the PageBuddy() logic
> > in userspace?
>
> In last month, Cliff Wickman proposed such idea:
>
> [PATCH v2] makedumpfile: request the kernel do page scans
> http://lists.infradead.org/pipermail/kexec/2012-November/007318.html
>
> [PATCH] scan page tables for makedumpfile, 3.0.13 kernel
> http://lists.infradead.org/pipermail/kexec/2012-November/007319.html
>
> In his idea, the kernel does page scans to distinguish unnecessary pages
> (free pages and others) and returns the list of PFN's which should be
> excluded for makedumpfile.
> As a result, makedumpfile doesn't need to consider internal kernel
> behavior.
>
> I think it's a good idea from the viewpoint of maintainability and
> performance.

I also think wide part of his code can be reused in this work. But the bad
performance is caused by a lot of ioremap, not a lot of copying. See my
profiling result I posted some days ago. Two issues, ioremap one and filtering
maintainability, should be considered separately. Even on ioremap issue,
there is secondary one to consider in memory consumption on the 2nd kernel.

Also, I have one question. Can we always think of 1st and 2nd kernels are same?
If I understand correctly, kexec/kdump can use the 2nd kernel different
from the 1st's. So, differnet kernels need to do the same thing as makedumpfile
does. If assuming two are same, problem is mush simplified.

Thanks.
HATAYAMA, Daisuke

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/