Commit 42aa83cb authored by Han Pingtian's avatar Han Pingtian Committed by Linus Torvalds

mm: show message when updating min_free_kbytes in thp

min_free_kbytes may be raised during THP's initialization.  Sometimes,
this will change the value which was set by the user.  Showing this
message will clarify this confusion.

Only show this message when changing a value which was set by the user
according to Michal Hocko's suggestion.

Show 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: default avatarHan Pingtian <hanpt@linux.vnet.ibm.com>
Reviewed-by: default avatarMichal Hocko <mhocko@suse.cz>
Cc: David Rientjes <rientjes@google.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ac13c462
...@@ -130,8 +130,14 @@ static int set_recommended_min_free_kbytes(void) ...@@ -130,8 +130,14 @@ static int set_recommended_min_free_kbytes(void)
(unsigned long) nr_free_buffer_pages() / 20); (unsigned long) nr_free_buffer_pages() / 20);
recommended_min <<= (PAGE_SHIFT-10); 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; min_free_kbytes = recommended_min;
}
setup_per_zone_wmarks(); setup_per_zone_wmarks();
return 0; return 0;
} }
......
...@@ -99,6 +99,7 @@ extern void prep_compound_page(struct page *page, unsigned long order); ...@@ -99,6 +99,7 @@ extern void prep_compound_page(struct page *page, unsigned long order);
#ifdef CONFIG_MEMORY_FAILURE #ifdef CONFIG_MEMORY_FAILURE
extern bool is_free_buddy_page(struct page *page); extern bool is_free_buddy_page(struct page *page);
#endif #endif
extern int user_min_free_kbytes;
#if defined CONFIG_COMPACTION || defined CONFIG_CMA #if defined CONFIG_COMPACTION || defined CONFIG_CMA
......
...@@ -205,7 +205,7 @@ static char * const zone_names[MAX_NR_ZONES] = { ...@@ -205,7 +205,7 @@ static char * const zone_names[MAX_NR_ZONES] = {
}; };
int min_free_kbytes = 1024; 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_kernel_pages;
static unsigned long __meminitdata nr_all_pages; static unsigned long __meminitdata nr_all_pages;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment