All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wanpeng Li <liwanp@linux.vnet.ibm.com>
To: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Hugh Dickins <hughd@google.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	Andi Kleen <andi@firstfloor.org>, Hillf Danton <dhillf@gmail.com>,
	Michal Hocko <mhocko@suse.cz>, Rik van Riel <riel@redhat.com>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	linux-kernel@vger.kernel.org,
	Naoya Horiguchi <nao.horiguchi@gmail.com>
Subject: Re: [PATCH 8/8] prepare to remove /proc/sys/vm/hugepages_treat_as_movable
Date: Wed, 24 Jul 2013 11:46:43 +0800	[thread overview]
Message-ID: <20130724034643.GI22680@hacker.(null)> (raw)
In-Reply-To: <1374183272-10153-9-git-send-email-n-horiguchi@ah.jp.nec.com>

On Thu, Jul 18, 2013 at 05:34:32PM -0400, Naoya Horiguchi wrote:
>Now hugepages are definitely movable. So allocating hugepages from
>ZONE_MOVABLE is natural and we have no reason to keep this parameter.
>In order to allow userspace to prepare for the removal, let's leave
>this sysctl handler as noop for a while.
>
>ChangeLog v3:
> - use WARN_ON_ONCE
>
>ChangeLog v2:
> - shift to noop function instead of completely removing the parameter
> - rename patch title
>

Reviewed-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>

>Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
>---
> Documentation/sysctl/vm.txt | 13 ++-----------
> mm/hugetlb.c                | 17 ++++++-----------
> 2 files changed, 8 insertions(+), 22 deletions(-)
>
>diff --git v3.11-rc1.orig/Documentation/sysctl/vm.txt v3.11-rc1/Documentation/sysctl/vm.txt
>index 36ecc26..6e211a1 100644
>--- v3.11-rc1.orig/Documentation/sysctl/vm.txt
>+++ v3.11-rc1/Documentation/sysctl/vm.txt
>@@ -200,17 +200,8 @@ fragmentation index is <= extfrag_threshold. The default value is 500.
>
> hugepages_treat_as_movable
>
>-This parameter is only useful when kernelcore= is specified at boot time to
>-create ZONE_MOVABLE for pages that may be reclaimed or migrated. Huge pages
>-are not movable so are not normally allocated from ZONE_MOVABLE. A non-zero
>-value written to hugepages_treat_as_movable allows huge pages to be allocated
>-from ZONE_MOVABLE.
>-
>-Once enabled, the ZONE_MOVABLE is treated as an area of memory the huge
>-pages pool can easily grow or shrink within. Assuming that applications are
>-not running that mlock() a lot of memory, it is likely the huge pages pool
>-can grow to the size of ZONE_MOVABLE by repeatedly entering the desired value
>-into nr_hugepages and triggering page reclaim.
>+This parameter is obsolete and planned to be removed. The value has no effect
>+on kernel's behavior.
>
> ==============================================================
>
>diff --git v3.11-rc1.orig/mm/hugetlb.c v3.11-rc1/mm/hugetlb.c
>index 9575e8a..aab5aef 100644
>--- v3.11-rc1.orig/mm/hugetlb.c
>+++ v3.11-rc1/mm/hugetlb.c
>@@ -34,7 +34,6 @@
> #include "internal.h"
>
> const unsigned long hugetlb_zero = 0, hugetlb_infinity = ~0UL;
>-static gfp_t htlb_alloc_mask = GFP_HIGHUSER;
> unsigned long hugepages_treat_as_movable;
>
> int hugetlb_max_hstate __read_mostly;
>@@ -546,7 +545,7 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
> retry_cpuset:
> 	cpuset_mems_cookie = get_mems_allowed();
> 	zonelist = huge_zonelist(vma, address,
>-					htlb_alloc_mask, &mpol, &nodemask);
>+					GFP_HIGHUSER_MOVABLE, &mpol, &nodemask);
> 	/*
> 	 * A child process with MAP_PRIVATE mappings created by their parent
> 	 * have no page reserves. This check ensures that reservations are
>@@ -562,7 +561,7 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
>
> 	for_each_zone_zonelist_nodemask(zone, z, zonelist,
> 						MAX_NR_ZONES - 1, nodemask) {
>-		if (cpuset_zone_allowed_softwall(zone, htlb_alloc_mask)) {
>+		if (cpuset_zone_allowed_softwall(zone, GFP_HIGHUSER_MOVABLE)) {
> 			page = dequeue_huge_page_node(h, zone_to_nid(zone));
> 			if (page) {
> 				if (!avoid_reserve)
>@@ -719,7 +718,7 @@ static struct page *alloc_fresh_huge_page_node(struct hstate *h, int nid)
> 		return NULL;
>
> 	page = alloc_pages_exact_node(nid,
>-		htlb_alloc_mask|__GFP_COMP|__GFP_THISNODE|
>+		GFP_HIGHUSER_MOVABLE|__GFP_COMP|__GFP_THISNODE|
> 						__GFP_REPEAT|__GFP_NOWARN,
> 		huge_page_order(h));
> 	if (page) {
>@@ -944,12 +943,12 @@ static struct page *alloc_buddy_huge_page(struct hstate *h, int nid)
> 	spin_unlock(&hugetlb_lock);
>
> 	if (nid == NUMA_NO_NODE)
>-		page = alloc_pages(htlb_alloc_mask|__GFP_COMP|
>+		page = alloc_pages(GFP_HIGHUSER_MOVABLE|__GFP_COMP|
> 				   __GFP_REPEAT|__GFP_NOWARN,
> 				   huge_page_order(h));
> 	else
> 		page = alloc_pages_exact_node(nid,
>-			htlb_alloc_mask|__GFP_COMP|__GFP_THISNODE|
>+			GFP_HIGHUSER_MOVABLE|__GFP_COMP|__GFP_THISNODE|
> 			__GFP_REPEAT|__GFP_NOWARN, huge_page_order(h));
>
> 	if (page && arch_prepare_hugepage(page)) {
>@@ -2128,11 +2127,7 @@ int hugetlb_treat_movable_handler(struct ctl_table *table, int write,
> 			void __user *buffer,
> 			size_t *length, loff_t *ppos)
> {
>-	proc_dointvec(table, write, buffer, length, ppos);
>-	if (hugepages_treat_as_movable)
>-		htlb_alloc_mask = GFP_HIGHUSER_MOVABLE;
>-	else
>-		htlb_alloc_mask = GFP_HIGHUSER;
>+	WARN_ON_ONCE("This knob is obsolete and has no effect. It is scheduled for removal.\n");
> 	return 0;
> }
>
>-- 
>1.8.3.1
>
>--
>To unsubscribe, send a message with 'unsubscribe linux-mm' in
>the body to majordomo@kvack.org.  For more info on Linux MM,
>see: http://www.linux-mm.org/ .
>Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2013-07-24  3:46 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-18 21:34 [PATCH v3 0/8] extend hugepage migration Naoya Horiguchi
2013-07-18 21:34 ` Naoya Horiguchi
2013-07-18 21:34 ` [PATCH 1/8] migrate: make core migration code aware of hugepage Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-19  2:38   ` Hillf Danton
2013-07-19  2:38     ` Hillf Danton
2013-07-19  3:18     ` Naoya Horiguchi
2013-07-19  3:18       ` Naoya Horiguchi
2013-07-19  4:04       ` Hillf Danton
2013-07-19  4:04         ` Hillf Danton
2013-07-19  5:09         ` Naoya Horiguchi
2013-07-19  5:09           ` Naoya Horiguchi
2013-07-24  2:28   ` Wanpeng Li
2013-07-24  2:28   ` Wanpeng Li
2013-07-18 21:34 ` [PATCH 2/8] soft-offline: use migrate_pages() instead of migrate_huge_page() Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-24  2:40   ` Wanpeng Li
2013-07-24  2:40   ` Wanpeng Li
2013-07-18 21:34 ` [PATCH 3/8] migrate: add hugepage migration code to migrate_pages() Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-19  3:05   ` Hillf Danton
2013-07-19  3:05     ` Hillf Danton
2013-07-19  4:13     ` Naoya Horiguchi
2013-07-19  4:13       ` Naoya Horiguchi
2013-07-24  3:33   ` Wanpeng Li
2013-07-24  3:33   ` Wanpeng Li
2013-07-18 21:34 ` [PATCH 4/8] migrate: add hugepage migration code to move_pages() Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-19  3:36   ` Hillf Danton
2013-07-19  3:36     ` Hillf Danton
2013-07-19  4:36     ` Naoya Horiguchi
2013-07-19  4:36       ` Naoya Horiguchi
2013-07-24  3:41   ` Wanpeng Li
2013-07-24  3:41   ` Wanpeng Li
2013-07-18 21:34 ` [PATCH 5/8] mbind: add hugepage migration code to mbind() Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-24  3:43   ` Wanpeng Li
2013-07-24  3:43   ` Wanpeng Li
2013-07-18 21:34 ` [PATCH 6/8] migrate: remove VM_HUGETLB from vma flag check in vma_migratable() Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-19  5:26   ` Hillf Danton
2013-07-19  5:26     ` Hillf Danton
2013-07-24  3:45   ` Wanpeng Li
2013-07-24  3:45   ` Wanpeng Li
2013-07-18 21:34 ` [PATCH 7/8] memory-hotplug: enable memory hotplug to handle hugepage Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-19  5:40   ` Hillf Danton
2013-07-19  5:40     ` Hillf Danton
2013-07-19 14:39     ` Naoya Horiguchi
2013-07-19 14:39       ` Naoya Horiguchi
2013-07-20 10:04       ` Hillf Danton
2013-07-20 10:04         ` Hillf Danton
2013-07-24  6:10   ` Wanpeng Li
2013-07-24  6:10   ` Wanpeng Li
     [not found]   ` <51ef6fd0.1019310a.5683.345bSMTPIN_ADDED_BROKEN@mx.google.com>
2013-07-24  6:26     ` Naoya Horiguchi
2013-07-24  6:26       ` Naoya Horiguchi
2013-07-18 21:34 ` [PATCH 8/8] prepare to remove /proc/sys/vm/hugepages_treat_as_movable Naoya Horiguchi
2013-07-18 21:34   ` Naoya Horiguchi
2013-07-24  3:46   ` Wanpeng Li
2013-07-24  3:46   ` Wanpeng Li [this message]
2013-07-19 15:33 ` [PATCH v3 0/8] extend hugepage migration Andi Kleen
2013-07-19 15:33   ` Andi Kleen
2013-07-19 15:49   ` Naoya Horiguchi
2013-07-19 15:49     ` Naoya Horiguchi
2013-07-19 17:33     ` Andi Kleen
2013-07-19 17:33       ` Andi Kleen
  -- strict thread matches above, loose matches on Subject: below --
2013-07-25  4:54 [PATCH v4 " Naoya Horiguchi
2013-07-25  4:55 ` [PATCH 8/8] prepare to remove /proc/sys/vm/hugepages_treat_as_movable Naoya Horiguchi
2013-07-25  4:55   ` Naoya Horiguchi
2013-07-30 18:32   ` Aneesh Kumar K.V
2013-07-30 18:32     ` Aneesh Kumar K.V
2013-07-31 20:24     ` Naoya Horiguchi
2013-07-31 20:24       ` Naoya Horiguchi
2013-08-01  5:59       ` Aneesh Kumar K.V
2013-08-01  5:59         ` Aneesh Kumar K.V
2013-08-02  2:43         ` Naoya Horiguchi
2013-08-02  2:43           ` Naoya Horiguchi
2013-08-06  1:52           ` Aneesh Kumar K.V
2013-08-06  1:52             ` Aneesh Kumar K.V
2013-08-06  4:30             ` Naoya Horiguchi
2013-08-06  4:30               ` Naoya Horiguchi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='20130724034643.GI22680@hacker.(null)' \
    --to=liwanp@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=dhillf@gmail.com \
    --cc=hughd@google.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=mhocko@suse.cz \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=nao.horiguchi@gmail.com \
    --cc=riel@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.