From: Tang Chen <tangchen@cn.fujitsu.com>
To: Mel Gorman <mgorman@suse.de>
Cc: Minchan Kim <minchan@kernel.org>,
Lin Feng <linfeng@cn.fujitsu.com>,
akpm@linux-foundation.org, bcrl@kvack.org,
viro@zeniv.linux.org.uk, khlebnikov@openvz.org,
walken@google.com, kamezawa.hiroyu@jp.fujitsu.com,
riel@redhat.com, rientjes@google.com,
isimatu.yasuaki@jp.fujitsu.com, wency@cn.fujitsu.com,
laijs@cn.fujitsu.com, jiang.liu@huawei.com, zab@redhat.com,
jmoyer@redhat.com, linux-mm@kvack.org, linux-aio@kvack.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCH V2 1/2] mm: hotplug: implement non-movable version of get_user_pages() called get_user_pages_non_movable()
Date: Tue, 14 May 2013 11:55:31 +0800 [thread overview]
Message-ID: <5191B5B3.7080406@cn.fujitsu.com> (raw)
In-Reply-To: <20130513091902.GP11497@suse.de>
Hi Mel,
On 05/13/2013 05:19 PM, Mel Gorman wrote:
>> For memory hot-remove case, the aio pages are pined in memory and making
>> the pages cannot be offlined, furthermore, the pages cannot be removed.
>>
>> IIUC, you mean implement migrate_unpin() and migrate_pin() callbacks in aio
>> subsystem, and call them when hot-remove code tries to offline
>> pages, right ?
>>
>> If so, I'm wondering where should we put this callback pointers ?
>> In struct page ?
>>
>
> No, I would expect the callbacks to be part the address space operations
> which can be found via page->mapping.
>
Two more problems I don't quite understand.
1. For an anonymous page, it has no address_space, and no address space
operation. But the aio ring problem just happened when dealing with
anonymous pages. Please refer to:
(https://lkml.org/lkml/2012/11/29/69)
If we put the the callbacks in page->mapping->a_ops, the anonymous
pages
won't be able to use them.
And we cannot give a default callback because the situation we are
dealing
with is a special situation.
So where to put the callback for anonymous pages ?
2. How to find out the reason why page->count != 1 in
migrate_page_move_mapping() ?
In the problem we are dealing with, get_user_pages() is called to
pin the pages
in memory. And the pages are migratable. So we want to decrease the
page->count.
But get_user_pages() is not the only reason leading to page->count
increased.
How can I know when should decrease teh page->count or when should not ?
The way I can figure out is to assign the callback pointer in
get_user_pages()
because it is get_user_pages() who pins the pages.
Thanks. :)
--
To unsubscribe, send a message with 'unsubscribe linux-aio' in
the body to majordomo@kvack.org. For more info on Linux AIO,
see: http://www.kvack.org/aio/
Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>
WARNING: multiple messages have this Message-ID (diff)
From: Tang Chen <tangchen@cn.fujitsu.com>
To: Mel Gorman <mgorman@suse.de>
Cc: Minchan Kim <minchan@kernel.org>,
Lin Feng <linfeng@cn.fujitsu.com>,
akpm@linux-foundation.org, bcrl@kvack.org,
viro@zeniv.linux.org.uk, khlebnikov@openvz.org,
walken@google.com, kamezawa.hiroyu@jp.fujitsu.com,
riel@redhat.com, rientjes@google.com,
isimatu.yasuaki@jp.fujitsu.com, wency@cn.fujitsu.com,
laijs@cn.fujitsu.com, jiang.liu@huawei.com, zab@redhat.com,
jmoyer@redhat.com, linux-mm@kvack.org, linux-aio@kvack.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCH V2 1/2] mm: hotplug: implement non-movable version of get_user_pages() called get_user_pages_non_movable()
Date: Tue, 14 May 2013 11:55:31 +0800 [thread overview]
Message-ID: <5191B5B3.7080406@cn.fujitsu.com> (raw)
In-Reply-To: <20130513091902.GP11497@suse.de>
Hi Mel,
On 05/13/2013 05:19 PM, Mel Gorman wrote:
>> For memory hot-remove case, the aio pages are pined in memory and making
>> the pages cannot be offlined, furthermore, the pages cannot be removed.
>>
>> IIUC, you mean implement migrate_unpin() and migrate_pin() callbacks in aio
>> subsystem, and call them when hot-remove code tries to offline
>> pages, right ?
>>
>> If so, I'm wondering where should we put this callback pointers ?
>> In struct page ?
>>
>
> No, I would expect the callbacks to be part the address space operations
> which can be found via page->mapping.
>
Two more problems I don't quite understand.
1. For an anonymous page, it has no address_space, and no address space
operation. But the aio ring problem just happened when dealing with
anonymous pages. Please refer to:
(https://lkml.org/lkml/2012/11/29/69)
If we put the the callbacks in page->mapping->a_ops, the anonymous
pages
won't be able to use them.
And we cannot give a default callback because the situation we are
dealing
with is a special situation.
So where to put the callback for anonymous pages ?
2. How to find out the reason why page->count != 1 in
migrate_page_move_mapping() ?
In the problem we are dealing with, get_user_pages() is called to
pin the pages
in memory. And the pages are migratable. So we want to decrease the
page->count.
But get_user_pages() is not the only reason leading to page->count
increased.
How can I know when should decrease teh page->count or when should not ?
The way I can figure out is to assign the callback pointer in
get_user_pages()
because it is get_user_pages() who pins the pages.
Thanks. :)
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Tang Chen <tangchen@cn.fujitsu.com>
To: Mel Gorman <mgorman@suse.de>
Cc: Minchan Kim <minchan@kernel.org>,
Lin Feng <linfeng@cn.fujitsu.com>,
akpm@linux-foundation.org, bcrl@kvack.org,
viro@zeniv.linux.org.uk, khlebnikov@openvz.org,
walken@google.com, kamezawa.hiroyu@jp.fujitsu.com,
riel@redhat.com, rientjes@google.com,
isimatu.yasuaki@jp.fujitsu.com, wency@cn.fujitsu.com,
laijs@cn.fujitsu.com, jiang.liu@huawei.com, zab@redhat.com,
jmoyer@redhat.com, linux-mm@kvack.org, linux-aio@kvack.org,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [PATCH V2 1/2] mm: hotplug: implement non-movable version of get_user_pages() called get_user_pages_non_movable()
Date: Tue, 14 May 2013 11:55:31 +0800 [thread overview]
Message-ID: <5191B5B3.7080406@cn.fujitsu.com> (raw)
In-Reply-To: <20130513091902.GP11497@suse.de>
Hi Mel,
On 05/13/2013 05:19 PM, Mel Gorman wrote:
>> For memory hot-remove case, the aio pages are pined in memory and making
>> the pages cannot be offlined, furthermore, the pages cannot be removed.
>>
>> IIUC, you mean implement migrate_unpin() and migrate_pin() callbacks in aio
>> subsystem, and call them when hot-remove code tries to offline
>> pages, right ?
>>
>> If so, I'm wondering where should we put this callback pointers ?
>> In struct page ?
>>
>
> No, I would expect the callbacks to be part the address space operations
> which can be found via page->mapping.
>
Two more problems I don't quite understand.
1. For an anonymous page, it has no address_space, and no address space
operation. But the aio ring problem just happened when dealing with
anonymous pages. Please refer to:
(https://lkml.org/lkml/2012/11/29/69)
If we put the the callbacks in page->mapping->a_ops, the anonymous
pages
won't be able to use them.
And we cannot give a default callback because the situation we are
dealing
with is a special situation.
So where to put the callback for anonymous pages ?
2. How to find out the reason why page->count != 1 in
migrate_page_move_mapping() ?
In the problem we are dealing with, get_user_pages() is called to
pin the pages
in memory. And the pages are migratable. So we want to decrease the
page->count.
But get_user_pages() is not the only reason leading to page->count
increased.
How can I know when should decrease teh page->count or when should not ?
The way I can figure out is to assign the callback pointer in
get_user_pages()
because it is get_user_pages() who pins the pages.
Thanks. :)
next prev parent reply other threads:[~2013-05-14 3:55 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-05 9:21 [PATCH V2 0/2] mm: hotplug: implement non-movable version of get_user_pages() to kill long-time pin pages Lin Feng
2013-02-05 9:21 ` Lin Feng
2013-02-05 9:21 ` Lin Feng
2013-02-05 9:21 ` [PATCH V2 1/2] mm: hotplug: implement non-movable version of get_user_pages() called get_user_pages_non_movable() Lin Feng
2013-02-05 9:21 ` Lin Feng
2013-02-05 12:01 ` Mel Gorman
2013-02-05 12:01 ` Mel Gorman
2013-02-05 12:01 ` Mel Gorman
2013-02-06 0:42 ` Minchan Kim
2013-02-06 0:42 ` Minchan Kim
2013-02-06 0:52 ` Benjamin LaHaise
2013-02-06 0:52 ` Benjamin LaHaise
2013-02-06 0:52 ` Benjamin LaHaise
2013-02-06 9:56 ` Mel Gorman
2013-02-06 9:56 ` Mel Gorman
2013-02-08 2:32 ` Minchan Kim
2013-02-08 2:32 ` Minchan Kim
2013-02-08 2:32 ` Minchan Kim
2013-05-13 9:11 ` Tang Chen
2013-05-13 9:11 ` Tang Chen
2013-05-13 9:11 ` Tang Chen
2013-05-13 9:19 ` Mel Gorman
2013-05-13 9:19 ` Mel Gorman
2013-05-13 9:19 ` Mel Gorman
2013-05-13 14:37 ` Benjamin LaHaise
2013-05-13 14:37 ` Benjamin LaHaise
2013-05-13 14:37 ` Benjamin LaHaise
2013-05-13 14:54 ` Jeff Moyer
2013-05-13 14:54 ` Jeff Moyer
2013-05-13 14:54 ` Jeff Moyer
2013-05-13 15:01 ` Benjamin LaHaise
2013-05-13 15:01 ` Benjamin LaHaise
2013-05-13 15:01 ` Benjamin LaHaise
2013-05-14 1:24 ` Tang Chen
2013-05-14 1:24 ` Tang Chen
2013-05-14 13:58 ` Benjamin LaHaise
2013-05-14 13:58 ` Benjamin LaHaise
2013-05-14 13:58 ` Benjamin LaHaise
2013-05-14 15:16 ` chen tang
2013-05-15 2:09 ` Tang Chen
2013-05-15 2:09 ` Tang Chen
2013-05-15 7:21 ` Tang Chen
2013-05-15 7:21 ` Tang Chen
2013-05-15 7:21 ` Tang Chen
2013-05-14 3:55 ` Tang Chen [this message]
2013-05-14 3:55 ` Tang Chen
2013-05-14 3:55 ` Tang Chen
2013-05-15 13:24 ` Mel Gorman
2013-05-15 13:24 ` Mel Gorman
2013-05-16 5:54 ` Tang Chen
2013-05-16 5:54 ` Tang Chen
2013-05-17 0:23 ` [WiP]: aio support for migrating pages (Re: [PATCH V2 1/2] mm: hotplug: implement non-movable version of get_user_pages() called get_user_pages_non_movable()) Benjamin LaHaise
2013-05-17 0:23 ` Benjamin LaHaise
2013-05-17 0:23 ` Benjamin LaHaise
2013-05-17 3:28 ` Tang Chen
2013-05-17 3:28 ` Tang Chen
2013-05-17 3:28 ` Tang Chen
2013-05-17 14:37 ` Benjamin LaHaise
2013-05-17 14:37 ` Benjamin LaHaise
2013-05-17 14:37 ` Benjamin LaHaise
2013-05-21 2:07 ` Tang Chen
2013-05-21 2:07 ` Tang Chen
2013-05-21 2:27 ` Benjamin LaHaise
2013-05-21 2:27 ` Benjamin LaHaise
2013-05-21 2:27 ` Benjamin LaHaise
2013-06-11 9:42 ` Tang Chen
2013-06-11 9:42 ` Tang Chen
2013-06-11 9:42 ` Tang Chen
2013-06-11 14:45 ` Benjamin LaHaise
2013-06-11 14:45 ` Benjamin LaHaise
2013-06-28 9:24 ` Gu Zheng
2013-06-28 9:24 ` Gu Zheng
2013-07-01 7:23 ` Gu Zheng
2013-07-01 7:23 ` Gu Zheng
2013-07-02 18:00 ` Benjamin LaHaise
2013-07-02 18:00 ` Benjamin LaHaise
2013-07-02 18:00 ` Benjamin LaHaise
2013-07-03 1:53 ` Gu Zheng
2013-07-03 1:53 ` Gu Zheng
2013-07-03 1:53 ` Gu Zheng
2013-07-04 6:51 ` Gu Zheng
2013-07-04 6:51 ` Gu Zheng
2013-07-04 6:51 ` Gu Zheng
2013-07-04 11:41 ` Benjamin LaHaise
2013-07-04 11:41 ` Benjamin LaHaise
2013-07-04 11:41 ` Benjamin LaHaise
2013-07-05 3:21 ` Gu Zheng
2013-07-05 3:21 ` Gu Zheng
2013-07-05 3:21 ` Gu Zheng
2013-05-17 18:17 ` Zach Brown
2013-05-17 18:17 ` Zach Brown
2013-05-17 18:30 ` Benjamin LaHaise
2013-05-17 18:30 ` Benjamin LaHaise
2013-05-17 18:30 ` Benjamin LaHaise
2013-02-20 11:37 ` [PATCH V2 1/2] mm: hotplug: implement non-movable version of get_user_pages() called get_user_pages_non_movable() Wanpeng Li
2013-02-20 12:39 ` Lin Feng
2013-02-20 12:39 ` Lin Feng
2013-02-20 12:39 ` Lin Feng
2013-02-20 11:37 ` Wanpeng Li
2013-02-20 11:37 ` Wanpeng Li
2013-02-20 11:37 ` Wanpeng Li
2013-02-20 11:37 ` Wanpeng Li
2013-02-05 9:21 ` [PATCH V2 2/2] fs/aio.c: use get_user_pages_non_movable() to pin ring pages when support memory hotremove Lin Feng
2013-02-05 9:21 ` Lin Feng
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=5191B5B3.7080406@cn.fujitsu.com \
--to=tangchen@cn.fujitsu.com \
--cc=akpm@linux-foundation.org \
--cc=bcrl@kvack.org \
--cc=isimatu.yasuaki@jp.fujitsu.com \
--cc=jiang.liu@huawei.com \
--cc=jmoyer@redhat.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=khlebnikov@openvz.org \
--cc=laijs@cn.fujitsu.com \
--cc=linfeng@cn.fujitsu.com \
--cc=linux-aio@kvack.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=m.szyprowski@samsung.com \
--cc=mgorman@suse.de \
--cc=minchan@kernel.org \
--cc=riel@redhat.com \
--cc=rientjes@google.com \
--cc=viro@zeniv.linux.org.uk \
--cc=walken@google.com \
--cc=wency@cn.fujitsu.com \
--cc=zab@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.