[PATCH] makedumpfile: skip multiple pages filtered as free pages

Atsushi Kumagai kumagai-atsushi at mxc.nes.nec.co.jp
Fri Mar 15 01:16:49 EDT 2013


On Fri, 15 Mar 2013 00:36:35 +0900 (JST)
HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote:

> If buddy page has order n, (2^n) pages are filtered at the same
> time. Then, next (2^n) pages are already filterd, so we can skip the
> (2^n) pages for free.
> 
> By this, on 32GB memory system, there's the following improvement:
> 
> - with mmap() on /proc/vmcore from 0.594421 seconds to 0.496517
>   seconds, and
> - with normal read() from 1.533796 seconds to 0.750935 seconds.
> 
> Note that the two improvements are measured on the same /proc/vmcore.
> 
> Note also that amount of the improvement depends on amount of free
> pages, though it's obvious.
> 
> Signed-off-by: HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com>

Good ! Applied.


Thanks
Atsushi Kumagai

> ---
>  makedumpfile.c | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/makedumpfile.c b/makedumpfile.c
> index 7acbf72..9075f38 100644
> --- a/makedumpfile.c
> +++ b/makedumpfile.c
> @@ -4303,9 +4303,9 @@ __exclude_unnecessary_pages(unsigned long mem_map,
>  		    && info->flag_cyclic
>  		    && info->page_is_buddy
>  		    && info->page_is_buddy(flags, _mapcount, private, _count)) {
> -			int i;
> +			int i, nr_pages = 1 << private;
>  
> -			for (i = 0; i < (1 << private); ++i) {
> +			for (i = 0; i < nr_pages; ++i) {
>  				/*
>  				 * According to combination of
>  				 * MAX_ORDER and size of cyclic
> @@ -4318,6 +4318,9 @@ __exclude_unnecessary_pages(unsigned long mem_map,
>  				clear_bit_on_2nd_bitmap_for_kernel(pfn + i);
>  			}
>  			pfn_free += i;
> +
> +			pfn += nr_pages - 1;
> +			mem_map += (nr_pages - 1) * SIZE(page);
>  		}
>  		/*
>  		 * Exclude the cache page without the private page.
> -- 
> 1.8.1.4
> 
> 
> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec



More information about the kexec mailing list