diff for duplicates of <20140114200720.GM4106@localhost.localdomain> diff --git a/a/1.txt b/N1/1.txt index a9fe8c6..97526c7 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -34,3 +34,75 @@ On Fri, Jan 10, 2014 at 09:17:44AM +0100, Michal Hocko wrote: This is the latest version which put user_min_free_kbytes in mm/internal.h. Please have a look. Thanks. + + +>From 0d2583bea1f8ffa919e2cee3ee8ed08ec547284a Mon Sep 17 00:00:00 2001 +From: Han Pingtian <hanpt@linux.vnet.ibm.com> +Date: Thu, 9 Jan 2014 15:24:26 +0800 +Subject: [PATCH] mm: show message when raising min_free_kbytes in THP + +min_free_kbytes may be raised during THP's initialization. Sometimes, +this will change the value being set by user. Showing message will +clarify this confusion. + +Only show this message when changing the value set by user according to +Michal Hocko's suggestion. + +Showing the old value of min_free_kbytes according to Dave Hansen's +suggestion. This will give user the chance to restore old value of +min_free_kbytes. + +Signed-off-by: Han Pingtian <hanpt@linux.vnet.ibm.com> +--- + mm/huge_memory.c | 8 +++++++- + mm/internal.h | 1 + + mm/page_alloc.c | 2 +- + 3 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/mm/huge_memory.c b/mm/huge_memory.c +index 7de1bf8..2ca526b8 100644 +--- a/mm/huge_memory.c ++++ b/mm/huge_memory.c +@@ -130,8 +130,14 @@ static int set_recommended_min_free_kbytes(void) + (unsigned long) nr_free_buffer_pages() / 20); + recommended_min <<= (PAGE_SHIFT-10); + +- if (recommended_min > min_free_kbytes) ++ if (recommended_min > min_free_kbytes) { ++ if (user_min_free_kbytes >= 0) ++ pr_info("raising min_free_kbytes from %d to %lu " ++ "to help transparent hugepage allocations\n", ++ min_free_kbytes, recommended_min); ++ + min_free_kbytes = recommended_min; ++ } + setup_per_zone_wmarks(); + return 0; + } +diff --git a/mm/internal.h b/mm/internal.h +index 684f7aa..110d8da 100644 +--- a/mm/internal.h ++++ b/mm/internal.h +@@ -101,6 +101,7 @@ extern void prep_compound_page(struct page *page, unsigned long order); + #ifdef CONFIG_MEMORY_FAILURE + extern bool is_free_buddy_page(struct page *page); + #endif ++extern int user_min_free_kbytes; + + #if defined CONFIG_COMPACTION || defined CONFIG_CMA + +diff --git a/mm/page_alloc.c b/mm/page_alloc.c +index 9ea62b2..a9dcfd8 100644 +--- a/mm/page_alloc.c ++++ b/mm/page_alloc.c +@@ -205,7 +205,7 @@ static char * const zone_names[MAX_NR_ZONES] = { + }; + + int min_free_kbytes = 1024; +-int user_min_free_kbytes; ++int user_min_free_kbytes = -1; + + static unsigned long __meminitdata nr_kernel_pages; + static unsigned long __meminitdata nr_all_pages; +-- +1.7.7.6 diff --git a/a/content_digest b/N1/content_digest index f72c82f..2f5301a 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -52,6 +52,78 @@ "> \n" "\n" "This is the latest version which put user_min_free_kbytes in\n" - mm/internal.h. Please have a look. Thanks. + "mm/internal.h. Please have a look. Thanks.\n" + "\n" + "\n" + ">From 0d2583bea1f8ffa919e2cee3ee8ed08ec547284a Mon Sep 17 00:00:00 2001\n" + "From: Han Pingtian <hanpt@linux.vnet.ibm.com>\n" + "Date: Thu, 9 Jan 2014 15:24:26 +0800\n" + "Subject: [PATCH] mm: show message when raising min_free_kbytes in THP\n" + "\n" + "min_free_kbytes may be raised during THP's initialization. Sometimes,\n" + "this will change the value being set by user. Showing message will\n" + "clarify this confusion.\n" + "\n" + "Only show this message when changing the value set by user according to\n" + "Michal Hocko's suggestion.\n" + "\n" + "Showing the old value of min_free_kbytes according to Dave Hansen's\n" + "suggestion. This will give user the chance to restore old value of\n" + "min_free_kbytes.\n" + "\n" + "Signed-off-by: Han Pingtian <hanpt@linux.vnet.ibm.com>\n" + "---\n" + " mm/huge_memory.c | 8 +++++++-\n" + " mm/internal.h | 1 +\n" + " mm/page_alloc.c | 2 +-\n" + " 3 files changed, 9 insertions(+), 2 deletions(-)\n" + "\n" + "diff --git a/mm/huge_memory.c b/mm/huge_memory.c\n" + "index 7de1bf8..2ca526b8 100644\n" + "--- a/mm/huge_memory.c\n" + "+++ b/mm/huge_memory.c\n" + "@@ -130,8 +130,14 @@ static int set_recommended_min_free_kbytes(void)\n" + " \t\t\t (unsigned long) nr_free_buffer_pages() / 20);\n" + " \trecommended_min <<= (PAGE_SHIFT-10);\n" + " \n" + "-\tif (recommended_min > min_free_kbytes)\n" + "+\tif (recommended_min > min_free_kbytes) {\n" + "+\t\tif (user_min_free_kbytes >= 0)\n" + "+\t\t\tpr_info(\"raising min_free_kbytes from %d to %lu \"\n" + "+\t\t\t\t\"to help transparent hugepage allocations\\n\",\n" + "+\t\t\t\tmin_free_kbytes, recommended_min);\n" + "+\n" + " \t\tmin_free_kbytes = recommended_min;\n" + "+\t}\n" + " \tsetup_per_zone_wmarks();\n" + " \treturn 0;\n" + " }\n" + "diff --git a/mm/internal.h b/mm/internal.h\n" + "index 684f7aa..110d8da 100644\n" + "--- a/mm/internal.h\n" + "+++ b/mm/internal.h\n" + "@@ -101,6 +101,7 @@ extern void prep_compound_page(struct page *page, unsigned long order);\n" + " #ifdef CONFIG_MEMORY_FAILURE\n" + " extern bool is_free_buddy_page(struct page *page);\n" + " #endif\n" + "+extern int user_min_free_kbytes;\n" + " \n" + " #if defined CONFIG_COMPACTION || defined CONFIG_CMA\n" + " \n" + "diff --git a/mm/page_alloc.c b/mm/page_alloc.c\n" + "index 9ea62b2..a9dcfd8 100644\n" + "--- a/mm/page_alloc.c\n" + "+++ b/mm/page_alloc.c\n" + "@@ -205,7 +205,7 @@ static char * const zone_names[MAX_NR_ZONES] = {\n" + " };\n" + " \n" + " int min_free_kbytes = 1024;\n" + "-int user_min_free_kbytes;\n" + "+int user_min_free_kbytes = -1;\n" + " \n" + " static unsigned long __meminitdata nr_kernel_pages;\n" + " static unsigned long __meminitdata nr_all_pages;\n" + "-- \n" + 1.7.7.6 -dec1fd140c2f1ccb59515750f3605bbd84b48638b0a6115cd3c8972a26fa3b81 +a8bd3c4740c23c8e9fc28260540163e2ef2029b048e5ffcac48796087ed82ed1
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.