From: Chen Gong <gong.chen@linux.intel.com>
To: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
Mel Gorman <mel@csn.ul.ie>, Hugh Dickins <hughd@google.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Andi Kleen <andi@firstfloor.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/9] soft-offline: use migrate_pages() instead of migrate_huge_page()
Date: Wed, 27 Feb 2013 02:25:17 -0500 [thread overview]
Message-ID: <20130227072517.GA30971@gchen.bj.intel.com> (raw)
In-Reply-To: <1361475708-25991-4-git-send-email-n-horiguchi@ah.jp.nec.com>
[-- Attachment #1: Type: text/plain, Size: 3065 bytes --]
On Thu, Feb 21, 2013 at 02:41:42PM -0500, Naoya Horiguchi wrote:
> Date: Thu, 21 Feb 2013 14:41:42 -0500
> From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> To: linux-mm@kvack.org
> Cc: Andrew Morton <akpm@linux-foundation.org>, Mel Gorman <mel@csn.ul.ie>,
> Hugh Dickins <hughd@google.com>, KOSAKI Motohiro
> <kosaki.motohiro@jp.fujitsu.com>, Andi Kleen <andi@firstfloor.org>,
> linux-kernel@vger.kernel.org
> Subject: [PATCH 3/9] soft-offline: use migrate_pages() instead of
> migrate_huge_page()
>
> Currently migrate_huge_page() takes a pointer to a hugepage to be
> migrated as an argument, instead of taking a pointer to the list of
> hugepages to be migrated. This behavior was introduced in commit
> 189ebff28 ("hugetlb: simplify migrate_huge_page()"), and was OK
> because until now hugepage migration is enabled only for soft-offlining
> which takes only one hugepage in a single call.
>
> But the situation will change in the later patches in this series
> which enable other users of page migration to support hugepage migration.
> They can kick migration for both of normal pages and hugepages
> in a single call, so we need to go back to original implementation
> of using linked lists to collect the hugepages to be migrated.
>
> Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> ---
> mm/memory-failure.c | 20 ++++++++++++++++----
> mm/migrate.c | 2 ++
> 2 files changed, 18 insertions(+), 4 deletions(-)
>
> diff --git v3.8.orig/mm/memory-failure.c v3.8/mm/memory-failure.c
> index bc126f6..01e4676 100644
> --- v3.8.orig/mm/memory-failure.c
> +++ v3.8/mm/memory-failure.c
> @@ -1467,6 +1467,7 @@ static int soft_offline_huge_page(struct page *page, int flags)
> int ret;
> unsigned long pfn = page_to_pfn(page);
> struct page *hpage = compound_head(page);
> + LIST_HEAD(pagelist);
>
> /* Synchronized using the page lock with memory_failure() */
> lock_page(hpage);
> @@ -1479,13 +1480,24 @@ static int soft_offline_huge_page(struct page *page, int flags)
> unlock_page(hpage);
>
> /* Keep page count to indicate a given hugepage is isolated. */
> - ret = migrate_huge_page(hpage, new_page, MPOL_MF_MOVE_ALL, false,
> - MIGRATE_SYNC);
> - put_page(hpage);
> + list_move(&hpage->lru, &pagelist);
> + ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, false,
> + MIGRATE_SYNC, MR_MEMORY_FAILURE);
> if (ret) {
> pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
> pfn, ret, page->flags);
> - return ret;
> + /*
> + * We know that soft_offline_huge_page() tries to migrate
> + * only one hugepage pointed to by hpage, so we need not
> + * run through the pagelist here.
> + */
> + putback_active_hugepage(hpage);
> + if (ret > 0)
> + ret = -EIO;
> + } else {
> + set_page_hwpoison_huge_page(hpage);
> + dequeue_hwpoisoned_huge_page(hpage);
> + atomic_long_add(1<<compound_trans_order(hpage), &mce_bad_pages);
mce_bad_pages has been substituted by num_poisoned_pages.
[...]
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-02-27 7:27 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-21 19:41 [RFC][PATCH 0/9] extend hugepage migration Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-02-21 19:41 ` [PATCH 1/9] migrate: add migrate_entry_wait_huge() Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-03-18 14:51 ` Michal Hocko
2013-03-18 14:51 ` Michal Hocko
2013-03-19 0:06 ` Naoya Horiguchi
2013-03-19 0:06 ` Naoya Horiguchi
2013-03-19 23:57 ` Simon Jeons
2013-03-19 23:57 ` Simon Jeons
2013-03-20 21:53 ` Naoya Horiguchi
2013-03-20 21:53 ` Naoya Horiguchi
2013-03-20 23:36 ` Simon Jeons
2013-03-20 23:36 ` Simon Jeons
2013-04-04 4:57 ` Simon Jeons
2013-04-04 4:57 ` Simon Jeons
2013-02-21 19:41 ` [PATCH 2/9] migrate: make core migration code aware of hugepage Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-03-18 15:22 ` Michal Hocko
2013-03-18 15:22 ` Michal Hocko
2013-03-18 15:33 ` Michal Hocko
2013-03-18 15:33 ` Michal Hocko
2013-03-19 0:06 ` Naoya Horiguchi
2013-03-19 0:06 ` Naoya Horiguchi
2013-02-21 19:41 ` [PATCH 3/9] soft-offline: use migrate_pages() instead of migrate_huge_page() Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-02-27 7:25 ` Chen Gong [this message]
2013-02-27 17:06 ` Naoya Horiguchi
2013-02-27 17:06 ` Naoya Horiguchi
2013-02-27 17:57 ` Naoya Horiguchi
2013-02-27 17:57 ` Naoya Horiguchi
2013-02-21 19:41 ` [PATCH 4/9] migrate: clean up migrate_huge_page() Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-02-21 19:41 ` [PATCH 5/9] migrate: enable migrate_pages() to migrate hugepage Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-03-18 15:40 ` Michal Hocko
2013-03-18 15:40 ` Michal Hocko
2013-03-19 0:07 ` Naoya Horiguchi
2013-03-19 0:07 ` Naoya Horiguchi
2013-03-19 7:11 ` Michal Hocko
2013-03-19 7:11 ` Michal Hocko
2013-03-20 6:12 ` Naoya Horiguchi
2013-03-20 6:12 ` Naoya Horiguchi
2013-03-20 7:41 ` Michal Hocko
2013-03-20 7:41 ` Michal Hocko
2013-03-20 0:31 ` Simon Jeons
2013-03-20 0:31 ` Simon Jeons
2013-03-20 21:59 ` Naoya Horiguchi
2013-03-20 21:59 ` Naoya Horiguchi
2013-03-21 0:06 ` Simon Jeons
2013-03-21 0:06 ` Simon Jeons
2013-02-21 19:41 ` [PATCH 6/9] migrate: enable move_pages() " Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-02-21 19:41 ` [PATCH 7/9] mbind: enable mbind() " Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-02-21 19:41 ` [PATCH 8/9] memory-hotplug: enable memory hotplug to handle hugepage Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-02-23 7:05 ` Hillf Danton
2013-02-23 7:05 ` Hillf Danton
2013-02-25 16:57 ` Naoya Horiguchi
2013-02-25 16:57 ` Naoya Horiguchi
2013-02-27 7:36 ` Chen Gong
2013-02-27 17:16 ` Naoya Horiguchi
2013-02-27 17:16 ` Naoya Horiguchi
2013-03-18 16:07 ` Michal Hocko
2013-03-18 16:07 ` Michal Hocko
2013-03-20 3:55 ` Naoya Horiguchi
2013-03-20 3:55 ` Naoya Horiguchi
2013-03-20 7:57 ` Michal Hocko
2013-03-20 7:57 ` Michal Hocko
2013-03-20 1:03 ` Simon Jeons
2013-03-20 1:03 ` Simon Jeons
2013-03-20 22:05 ` Naoya Horiguchi
2013-03-20 22:05 ` Naoya Horiguchi
2013-03-20 23:55 ` Simon Jeons
2013-03-20 23:55 ` Simon Jeons
2013-02-21 19:41 ` [PATCH 9/9] remove /proc/sys/vm/hugepages_treat_as_movable Naoya Horiguchi
2013-02-21 19:41 ` Naoya Horiguchi
2013-02-28 6:02 ` KOSAKI Motohiro
2013-02-28 6:02 ` KOSAKI Motohiro
2013-02-28 18:16 ` Naoya Horiguchi
2013-02-28 18:16 ` Naoya Horiguchi
2013-03-18 15:51 ` Michal Hocko
2013-03-18 15:51 ` Michal Hocko
2013-03-19 0:07 ` Naoya Horiguchi
2013-03-19 0:07 ` Naoya Horiguchi
2013-03-19 23:43 ` [RFC][PATCH 0/9] extend hugepage migration Simon Jeons
2013-03-19 23:43 ` Simon Jeons
2013-03-20 21:35 ` Naoya Horiguchi
2013-03-20 21:35 ` Naoya Horiguchi
2013-03-20 23:49 ` Simon Jeons
2013-03-20 23:49 ` Simon Jeons
2013-03-21 12:56 ` Michal Hocko
2013-03-21 12:56 ` Michal Hocko
2013-03-21 23:46 ` Simon Jeons
2013-03-21 23:46 ` Simon Jeons
[not found] ` <20130322081532.GC31457@dhcp22.suse.cz>
2013-04-05 1:14 ` Simon Jeons
2013-04-05 1:14 ` Simon Jeons
2013-04-05 8:08 ` Michal Hocko
2013-04-05 8:08 ` Michal Hocko
2013-04-05 9:00 ` Simon Jeons
2013-04-05 9:00 ` Simon Jeons
2013-04-05 9:30 ` Michal Hocko
2013-04-05 9:30 ` Michal Hocko
2013-04-07 0:32 ` Simon Jeons
2013-04-07 0:32 ` Simon Jeons
2013-04-07 14:05 ` KOSAKI Motohiro
2013-04-07 14:05 ` KOSAKI Motohiro
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=20130227072517.GA30971@gchen.bj.intel.com \
--to=gong.chen@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=hughd@google.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=n-horiguchi@ah.jp.nec.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.