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