diff for duplicates of <20140109073259.GK4106@localhost.localdomain> diff --git a/a/1.txt b/N1/1.txt index f6c942d..75eaafe 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -33,3 +33,70 @@ On Wed, Jan 08, 2014 at 11:16:11AM +0100, Michal Hocko wrote: > This is the new patch, please review. Thanks. + + +>From b8db4f157a17d6d8652cc9cff024a192c3ee0779 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 | 9 ++++++++- + mm/page_alloc.c | 2 +- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/mm/huge_memory.c b/mm/huge_memory.c +index 7de1bf8..e0e4e29 100644 +--- a/mm/huge_memory.c ++++ b/mm/huge_memory.c +@@ -100,6 +100,7 @@ static struct khugepaged_scan khugepaged_scan = { + .mm_head = LIST_HEAD_INIT(khugepaged_scan.mm_head), + }; + ++extern int user_min_free_kbytes; + + static int set_recommended_min_free_kbytes(void) + { +@@ -130,8 +131,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/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 aa188bf..81a95d7 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -51,6 +51,73 @@ "> extern declaration in mm/huge_memory.c?\n" "> \n" "\n" - This is the new patch, please review. Thanks. + "This is the new patch, please review. Thanks.\n" + "\n" + "\n" + ">From b8db4f157a17d6d8652cc9cff024a192c3ee0779 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 | 9 ++++++++-\n" + " mm/page_alloc.c | 2 +-\n" + " 2 files changed, 9 insertions(+), 2 deletions(-)\n" + "\n" + "diff --git a/mm/huge_memory.c b/mm/huge_memory.c\n" + "index 7de1bf8..e0e4e29 100644\n" + "--- a/mm/huge_memory.c\n" + "+++ b/mm/huge_memory.c\n" + "@@ -100,6 +100,7 @@ static struct khugepaged_scan khugepaged_scan = {\n" + " \t.mm_head = LIST_HEAD_INIT(khugepaged_scan.mm_head),\n" + " };\n" + " \n" + "+extern int user_min_free_kbytes;\n" + " \n" + " static int set_recommended_min_free_kbytes(void)\n" + " {\n" + "@@ -130,8 +131,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/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 -857be3da0a52e81bf5612912085891f03d27082176d57e750239543d8d00c026 +d3917ed38618b39ee5d56a87938bb4f541b3f6bc0def84c1a10d15322d1f0aeb
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.