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 5/8] mbind: add hugepage migration code to mbind()
Date: Wed, 24 Jul 2013 11:43:13 +0800	[thread overview]
Message-ID: <20130724034313.GG22680@hacker.(null)> (raw)
In-Reply-To: <1374183272-10153-6-git-send-email-n-horiguchi@ah.jp.nec.com>

On Thu, Jul 18, 2013 at 05:34:29PM -0400, Naoya Horiguchi wrote:
>This patch extends do_mbind() to handle vma with VM_HUGETLB set.
>We will be able to migrate hugepage with mbind(2) after
>applying the enablement patch which comes later in this series.
>
>ChangeLog v3:
> - revert introducing migrate_movable_pages
> - added alloc_huge_page_noerr free from ERR_VALUE
>
>ChangeLog v2:
> - updated description and renamed patch title
>

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

>Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
>---
> include/linux/hugetlb.h |  3 +++
> mm/hugetlb.c            | 14 ++++++++++++++
> mm/mempolicy.c          |  4 +++-
> 3 files changed, 20 insertions(+), 1 deletion(-)
>
>diff --git v3.11-rc1.orig/include/linux/hugetlb.h v3.11-rc1/include/linux/hugetlb.h
>index 0b7a9e7..768ebbe 100644
>--- v3.11-rc1.orig/include/linux/hugetlb.h
>+++ v3.11-rc1/include/linux/hugetlb.h
>@@ -267,6 +267,8 @@ struct huge_bootmem_page {
> };
>
> struct page *alloc_huge_page_node(struct hstate *h, int nid);
>+struct page *alloc_huge_page_noerr(struct vm_area_struct *vma,
>+				unsigned long addr, int avoid_reserve);
>
> /* arch callback */
> int __init alloc_bootmem_huge_page(struct hstate *h);
>@@ -380,6 +382,7 @@ static inline pgoff_t basepage_index(struct page *page)
> #else	/* CONFIG_HUGETLB_PAGE */
> struct hstate {};
> #define alloc_huge_page_node(h, nid) NULL
>+#define alloc_huge_page_noerr(v, a, r) NULL
> #define alloc_bootmem_huge_page(h) NULL
> #define hstate_file(f) NULL
> #define hstate_sizelog(s) NULL
>diff --git v3.11-rc1.orig/mm/hugetlb.c v3.11-rc1/mm/hugetlb.c
>index 4c48a70..fab29a1 100644
>--- v3.11-rc1.orig/mm/hugetlb.c
>+++ v3.11-rc1/mm/hugetlb.c
>@@ -1195,6 +1195,20 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma,
> 	return page;
> }
>
>+/*
>+ * alloc_huge_page()'s wrapper which simply returns the page if allocation
>+ * succeeds, otherwise NULL. This function is called from new_vma_page(),
>+ * where no ERR_VALUE is expected to be returned.
>+ */
>+struct page *alloc_huge_page_noerr(struct vm_area_struct *vma,
>+				unsigned long addr, int avoid_reserve)
>+{
>+	struct page *page = alloc_huge_page(vma, addr, avoid_reserve);
>+	if (IS_ERR(page))
>+		page = NULL;
>+	return page;
>+}
>+
> int __weak alloc_bootmem_huge_page(struct hstate *h)
> {
> 	struct huge_bootmem_page *m;
>diff --git v3.11-rc1.orig/mm/mempolicy.c v3.11-rc1/mm/mempolicy.c
>index f3b65c0..d8ced3e 100644
>--- v3.11-rc1.orig/mm/mempolicy.c
>+++ v3.11-rc1/mm/mempolicy.c
>@@ -1180,6 +1180,8 @@ static struct page *new_vma_page(struct page *page, unsigned long private, int *
> 		vma = vma->vm_next;
> 	}
>
>+	if (PageHuge(page))
>+		return alloc_huge_page_noerr(vma, address, 1);
> 	/*
> 	 * if !vma, alloc_page_vma() will use task or system default policy
> 	 */
>@@ -1290,7 +1292,7 @@ static long do_mbind(unsigned long start, unsigned long len,
> 					(unsigned long)vma,
> 					MIGRATE_SYNC, MR_MEMPOLICY_MBIND);
> 			if (nr_failed)
>-				putback_lru_pages(&pagelist);
>+				putback_movable_pages(&pagelist);
> 		}
>
> 		if (nr_failed && (flags & MPOL_MF_STRICT))
>-- 
>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>

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

Thread overview: 70+ 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 [this message]
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
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 5/8] mbind: add hugepage migration code to mbind() Naoya Horiguchi
2013-07-25  4:55   ` Naoya Horiguchi
2013-07-25  6:33   ` Hillf Danton
2013-07-25  6:33     ` Hillf Danton

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='20130724034313.GG22680@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.