From: Benjamin LaHaise <bcrl@kvack.org>
To: Tang Chen <tangchen@cn.fujitsu.com>
Cc: Mel Gorman <mgorman@suse.de>, Minchan Kim <minchan@kernel.org>,
Lin Feng <linfeng@cn.fujitsu.com>,
akpm@linux-foundation.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: [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())
Date: Mon, 20 May 2013 22:27:33 -0400 [thread overview]
Message-ID: <20130521022733.GT1008@kvack.org> (raw)
In-Reply-To: <519AD6F8.2070504@cn.fujitsu.com>
On Tue, May 21, 2013 at 10:07:52AM +0800, Tang Chen wrote:
....
> I'm not saying using two callbacks before and after migration is better.
> I don't want to use address_space_operations is because there is no such
> member
> for anonymous pages.
That depends on the nature of the pinning. For the general case of
get_user_pages(), you're correct that it won't work for anonymous memory.
> In your idea, using a file mapping will create a
> address_space_operations. But
> I really don't think we can modify the way of memory allocation for all the
> subsystems who has this problem. Maybe not just aio and cma. That means if
> you want to pin pages in memory, you have to use a file mapping. This makes
> the memory allocation more complicated. And the idea should be known by all
> the subsystem developers. Is that going to happen ?
Different subsystems will need to use different approaches to fixing the
issue. I doubt any single approach will work for everything.
> I also thought about reuse one field of struct page. But as you said, there
> may not be many users of this functionality. Reusing a field of struct page
> will make things more complicated and lead to high coupling.
What happens when more than one subsystem tries to pin a particular page?
What if it's a shared page rather than an anonymous page?
> So, how about the other idea that Mel mentioned ?
>
> We create a 1-1 mapping of pinned page ranges and the pinner (subsystem
> callbacks and data), maybe a global list or a hash table. And then, we can
> find the callbacks.
Maybe that is the simplest approach, but it's going to make get_user_pages()
slower and more complicated (as if it wasn't already). Maybe with all the
bells and whistles of per-cpu data structures and such you can make it work,
but I'm pretty sure someone running the large unmentionable benchmark will
complain about the performance regressions you're going to introduce. At
least in the case of the AIO ring buffer, using the address_space approach
doesn't introduce any new performance issues. There's also the bigger
question of if you can or cannot exclude get_user_pages_fast() from this.
In short: you've got a lot more work on your hands to do.
> Thanks. :)
Cheers,
-ben
--
"Thought is the essence of where you are now."
--
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>
next prev parent reply other threads:[~2013-05-21 2:27 UTC|newest]
Thread overview: 40+ 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 ` [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 12:01 ` Mel Gorman
2013-02-06 0:42 ` Minchan Kim
2013-02-06 0:52 ` Benjamin LaHaise
2013-02-06 9:56 ` Mel Gorman
2013-02-08 2:32 ` Minchan Kim
2013-05-13 9:11 ` Tang Chen
2013-05-13 9:19 ` Mel Gorman
2013-05-13 14:37 ` Benjamin LaHaise
2013-05-13 14:54 ` Jeff Moyer
2013-05-13 15:01 ` Benjamin LaHaise
2013-05-14 1:24 ` Tang Chen
2013-05-14 13:58 ` Benjamin LaHaise
2013-05-14 15:16 ` chen tang
2013-05-15 2:09 ` Tang Chen
2013-05-15 7:21 ` Tang Chen
2013-05-14 3:55 ` Tang Chen
2013-05-15 13:24 ` Mel Gorman
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 3:28 ` Tang Chen
2013-05-17 14:37 ` Benjamin LaHaise
2013-05-21 2:07 ` Tang Chen
2013-05-21 2:27 ` Benjamin LaHaise [this message]
2013-06-11 9:42 ` Tang Chen
2013-06-11 14:45 ` Benjamin LaHaise
2013-06-28 9:24 ` Gu Zheng
2013-07-01 7:23 ` Gu Zheng
2013-07-02 18:00 ` Benjamin LaHaise
2013-07-03 1:53 ` Gu Zheng
2013-07-04 6:51 ` Gu Zheng
2013-07-04 11:41 ` Benjamin LaHaise
2013-07-05 3:21 ` Gu Zheng
2013-05-17 18:17 ` Zach Brown
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 11:37 ` Wanpeng Li
[not found] ` <20130220113757.GA10124@hacker.(null)>
2013-02-20 12:39 ` Lin Feng
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
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=20130521022733.GT1008@kvack.org \
--to=bcrl@kvack.org \
--cc=akpm@linux-foundation.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=tangchen@cn.fujitsu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).