From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: linux-mm@kvack.org, mgorman@suse.de, dhillf@gmail.com,
aarcange@redhat.com, mhocko@suse.cz, akpm@linux-foundation.org,
hannes@cmpxchg.org, linux-kernel@vger.kernel.org,
cgroups@vger.kernel.org
Subject: Re: [PATCH -V5 06/14] hugetlb: Simplify migrate_huge_page
Date: Mon, 09 Apr 2012 14:06:33 +0530 [thread overview]
Message-ID: <87398de1yl.fsf@skywalker.in.ibm.com> (raw)
In-Reply-To: <4F8277ED.8040904@jp.fujitsu.com>
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> writes:
> (2012/04/07 3:50), Aneesh Kumar K.V wrote:
>
>> From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
>>
>> Since we migrate only one hugepage don't use linked list for passing
>> the page around. Directly pass page that need to be migrated as argument.
>> This also remove the usage page->lru in migrate path.
>>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
>
> seems good to me. I have one question below.
>
>
>> ---
...... snip ......
>> - list_add(&hpage->lru, &pagelist);
>> - ret = migrate_huge_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, 0,
>> - true);
>> + ret = migrate_huge_page(page, new_page, MPOL_MF_MOVE_ALL, 0, true);
>> + put_page(page);
>> if (ret) {
>> - struct page *page1, *page2;
>> - list_for_each_entry_safe(page1, page2, &pagelist, lru)
>> - put_page(page1);
>> -
>> pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
>> pfn, ret, page->flags);
>> - if (ret > 0)
>> - ret = -EIO; <---------------------------- here
>> return ret;
>> }
>> done:
>> diff --git a/mm/migrate.c b/mm/migrate.c
>> index 51c08a0..d7eb82d 100644
>> --- a/mm/migrate.c
>> +++ b/mm/migrate.c
>> @@ -929,15 +929,8 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
>> if (anon_vma)
>> put_anon_vma(anon_vma);
>> unlock_page(hpage);
.... snip .....
>> -
>> - rc = unmap_and_move_huge_page(get_new_page,
>> - private, page, pass > 2, offlining,
>> - mode);
>> -
>> - switch(rc) {
>> - case -ENOMEM:
>> - goto out;
>> - case -EAGAIN:
>> - retry++;
>> - break;
>> - case 0:
>> - break;
>> - default:
>> - /* Permanent failure */
>> - nr_failed++;
>> - break;
>> - }
>> + break;
>> + case 0:
>> + goto out;
>> + default:
>> + rc = -EIO;
>> + goto out;
>
>
> why -EIO ? Isn't this BUG() ??
I am not sure doing a BUG() for migrate is a good idea. We may want to
return error and let the higher layer handle this. Also as you see in
the two hunks I listed above, default is mapped to -EIO in the current
code. I didn't want to change that.
-aneesh
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: linux-mm@kvack.org, mgorman@suse.de, dhillf@gmail.com,
aarcange@redhat.com, mhocko@suse.cz, akpm@linux-foundation.org,
hannes@cmpxchg.org, linux-kernel@vger.kernel.org,
cgroups@vger.kernel.org
Subject: Re: [PATCH -V5 06/14] hugetlb: Simplify migrate_huge_page
Date: Mon, 09 Apr 2012 14:06:33 +0530 [thread overview]
Message-ID: <87398de1yl.fsf@skywalker.in.ibm.com> (raw)
In-Reply-To: <4F8277ED.8040904@jp.fujitsu.com>
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> writes:
> (2012/04/07 3:50), Aneesh Kumar K.V wrote:
>
>> From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
>>
>> Since we migrate only one hugepage don't use linked list for passing
>> the page around. Directly pass page that need to be migrated as argument.
>> This also remove the usage page->lru in migrate path.
>>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>
>
> seems good to me. I have one question below.
>
>
>> ---
...... snip ......
>> - list_add(&hpage->lru, &pagelist);
>> - ret = migrate_huge_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, 0,
>> - true);
>> + ret = migrate_huge_page(page, new_page, MPOL_MF_MOVE_ALL, 0, true);
>> + put_page(page);
>> if (ret) {
>> - struct page *page1, *page2;
>> - list_for_each_entry_safe(page1, page2, &pagelist, lru)
>> - put_page(page1);
>> -
>> pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
>> pfn, ret, page->flags);
>> - if (ret > 0)
>> - ret = -EIO; <---------------------------- here
>> return ret;
>> }
>> done:
>> diff --git a/mm/migrate.c b/mm/migrate.c
>> index 51c08a0..d7eb82d 100644
>> --- a/mm/migrate.c
>> +++ b/mm/migrate.c
>> @@ -929,15 +929,8 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
>> if (anon_vma)
>> put_anon_vma(anon_vma);
>> unlock_page(hpage);
.... snip .....
>> -
>> - rc = unmap_and_move_huge_page(get_new_page,
>> - private, page, pass > 2, offlining,
>> - mode);
>> -
>> - switch(rc) {
>> - case -ENOMEM:
>> - goto out;
>> - case -EAGAIN:
>> - retry++;
>> - break;
>> - case 0:
>> - break;
>> - default:
>> - /* Permanent failure */
>> - nr_failed++;
>> - break;
>> - }
>> + break;
>> + case 0:
>> + goto out;
>> + default:
>> + rc = -EIO;
>> + goto out;
>
>
> why -EIO ? Isn't this BUG() ??
I am not sure doing a BUG() for migrate is a good idea. We may want to
return error and let the higher layer handle this. Also as you see in
the two hunks I listed above, default is mapped to -EIO in the current
code. I didn't want to change that.
-aneesh
next prev parent reply other threads:[~2012-04-09 8:36 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-06 18:50 [PATCH -V5 00/14] memcg: Add memcg extension to control HugeTLB allocation Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 01/14] hugetlb: rename max_hstate to hugetlb_max_hstate Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 02/14] hugetlbfs: don't use ERR_PTR with VM_FAULT* values Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 03/14] hugetlbfs: Add an inline helper for finding hstate index Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 04/14] hugetlb: Use mmu_gather instead of a temporary linked list for accumulating pages Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-09 5:36 ` KAMEZAWA Hiroyuki
2012-04-09 5:36 ` KAMEZAWA Hiroyuki
2012-04-06 18:50 ` [PATCH -V5 05/14] hugetlb: Avoid taking i_mmap_mutex in unmap_single_vma for hugetlb Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 06/14] hugetlb: Simplify migrate_huge_page Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
[not found] ` <1333738260-1329-7-git-send-email-aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2012-04-09 5:47 ` KAMEZAWA Hiroyuki
2012-04-09 5:47 ` KAMEZAWA Hiroyuki
2012-04-09 5:47 ` KAMEZAWA Hiroyuki
2012-04-09 8:36 ` Aneesh Kumar K.V [this message]
2012-04-09 8:36 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 07/14] memcg: Add HugeTLB extension Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
[not found] ` <1333738260-1329-8-git-send-email-aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2012-04-09 6:04 ` KAMEZAWA Hiroyuki
2012-04-09 6:04 ` KAMEZAWA Hiroyuki
2012-04-09 6:04 ` KAMEZAWA Hiroyuki
[not found] ` <4F827BF9.2090205-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2012-04-09 8:43 ` Aneesh Kumar K.V
2012-04-09 8:43 ` Aneesh Kumar K.V
2012-04-09 8:43 ` Aneesh Kumar K.V
[not found] ` <87zkalcn26.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
2012-04-09 9:00 ` KAMEZAWA Hiroyuki
2012-04-09 9:00 ` KAMEZAWA Hiroyuki
2012-04-09 9:00 ` KAMEZAWA Hiroyuki
2012-04-06 18:50 ` [PATCH -V5 08/14] hugetlb: add charge/uncharge calls for HugeTLB alloc/free Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 09/14] memcg: track resource index in cftype private Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-09 5:56 ` KAMEZAWA Hiroyuki
2012-04-09 5:56 ` KAMEZAWA Hiroyuki
2012-04-06 18:50 ` [PATCH -V5 10/14] hugetlbfs: Add memcg control files for hugetlbfs Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-09 6:00 ` KAMEZAWA Hiroyuki
2012-04-09 6:00 ` KAMEZAWA Hiroyuki
[not found] ` <4F827AF8.9070204-+CUm20s59erQFUHtdCDX3A@public.gmane.org>
2012-04-09 8:46 ` Aneesh Kumar K.V
2012-04-09 8:46 ` Aneesh Kumar K.V
2012-04-09 8:46 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 11/14] hugetlbfs: Add a list for tracking in-use HugeTLB pages Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:50 ` [PATCH -V5 12/14] memcg: move HugeTLB resource count to parent cgroup on memcg removal Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
[not found] ` <1333738260-1329-13-git-send-email-aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2012-04-09 6:16 ` KAMEZAWA Hiroyuki
2012-04-09 6:16 ` KAMEZAWA Hiroyuki
2012-04-09 6:16 ` KAMEZAWA Hiroyuki
2012-04-09 10:00 ` Aneesh Kumar K.V
2012-04-09 10:00 ` Aneesh Kumar K.V
[not found] ` <87ty0tcjhx.fsf-6yE53ggjAfyqSkle7U1LjlaTQe2KTcn/@public.gmane.org>
2012-04-10 6:55 ` KAMEZAWA Hiroyuki
2012-04-10 6:55 ` KAMEZAWA Hiroyuki
2012-04-10 6:55 ` KAMEZAWA Hiroyuki
2012-04-06 18:50 ` [PATCH -V5 13/14] hugetlb: migrate memcg info from oldpage to new page during migration Aneesh Kumar K.V
2012-04-06 18:50 ` Aneesh Kumar K.V
2012-04-06 18:51 ` [PATCH -V5 14/14] memcg: Add memory controller documentation for hugetlb management Aneesh Kumar K.V
2012-04-06 18:51 ` Aneesh Kumar K.V
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=87398de1yl.fsf@skywalker.in.ibm.com \
--to=aneesh.kumar@linux.vnet.ibm.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=dhillf@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mhocko@suse.cz \
/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.