From: Atsushi Kumagai <[email protected]>
Subject: [PATCH 03/16] [PATCH v3 3/12] Change the function related to excluding 
unnecessary pages.
Date: Thu, 30 Aug 2012 16:47:01 +0900

> From: Atsushi Kumagai <[email protected]>
> Date: Thu, 23 Aug 2012 17:49:16 +0900
> Subject: [PATCH 03/16] [PATCH v3 3/12] Change the function related to 
> excluding unnecessary pages.
<cut>
> +int
> +exclude_unnecessary_pages_cyclic(void)
> +{
> +     unsigned int mm;
> +     struct mem_map_data *mmd;
> +
> +     /*
> +      * Copy 1st-bitmap to 2nd-bitmap.
> +      */
> +     copy_bitmap_cyclic();
> +
> +     if (info->dump_level & DL_EXCLUDE_FREE)
> +             if (!exclude_free_page())
> +                     return FALSE;
> +
> +     /*
> +      * Exclude cache pages, cache private pages, user data pages, and free 
> pages.
> +      */
> +     if (info->dump_level & DL_EXCLUDE_CACHE ||
> +         info->dump_level & DL_EXCLUDE_CACHE_PRI ||
> +         info->dump_level & DL_EXCLUDE_USER_DATA) {
> +             for (mm = 0; mm < info->num_mem_map; mm++) {
> +
> +                     mmd = &info->mem_map_data[mm];
> +
> +                     if (mmd->mem_map == NOT_MEMMAP_ADDR)
> +                             continue;
> +
> +                     if (mmd->pfn_end >= info->cyclic_start_pfn || 
> mmd->pfn_start <= info->cyclic_end_pfn) {
> +                             if (!__exclude_unnecessary_pages(mmd->mem_map,
> +                                                              
> mmd->pfn_start, mmd->pfn_end))
> +                                     return FALSE;
> +                     }
> +             }
> +     }

This patch misses reporting the time consumed for excluding necessary
pages. I noticed this during benchmarking. Here is the patch I used at
the time, but I wrote this version over your patch set.

    Report the time consumed for excluding unnecessary pages in cyclic mode

    Here is the example:

    [Before]
    STEP [Excluding free pages       ] : 0.500269 seconds
    STEP [Excluding free pages       ] : 0.002081 seconds
    STEP [Copying data               ] : 2.115097 seconds

    [After]

    STEP [Excluding free pages       ] : 0.002148 seconds
    STEP [Excluding unnecessary pages] : 0.015641 seconds
    STEP [Excluding free pages       ] : 0.002130 seconds
    STEP [Excluding unnecessary pages] : 0.024436 seconds
    STEP [Copying data               ] : 0.211287 seconds

diff --git a/makedumpfile.c b/makedumpfile.c
index 0a43181..caac37b 100644
--- a/makedumpfile.c
+++ b/makedumpfile.c
@@ -3882,6 +3882,7 @@ exclude_unnecessary_pages_cyclic(void)
 {
        unsigned int mm;
        struct mem_map_data *mmd;
+       struct timeval tv_start;

        /*
         * Copy 1st-bitmap to 2nd-bitmap.
@@ -3898,8 +3899,13 @@ exclude_unnecessary_pages_cyclic(void)
        if (info->dump_level & DL_EXCLUDE_CACHE ||
            info->dump_level & DL_EXCLUDE_CACHE_PRI ||
            info->dump_level & DL_EXCLUDE_USER_DATA) {
+
+               gettimeofday(&tv_start, NULL);
+
                for (mm = 0; mm < info->num_mem_map; mm++) {

+                       print_progress(PROGRESS_UNN_PAGES, mm, 
info->num_mem_map);
+
                        mmd = &info->mem_map_data[mm];

                        if (mmd->mem_map == NOT_MEMMAP_ADDR)
@@ -3911,6 +3917,12 @@ exclude_unnecessary_pages_cyclic(void)
                                        return FALSE;
                        }
                }
+
+               /*
+                * print [100 %]
+                */
+               print_progress(PROGRESS_UNN_PAGES, info->num_mem_map, 
info->num_mem_map);
+               print_execution_time(PROGRESS_UNN_PAGES, &tv_start);
        }

        return TRUE;

Thanks.
HATAYAMA, Daisuke


_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to