All of lore.kernel.org
 help / color / mirror / Atom feed
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.