From: Andrea Arcangeli <andrea@suse.de>
To: William Lee Irwin III <wli@holomorphy.com>,
Ingo Oeser <ingo.oeser@informatik.tu-chemnitz.de>,
linux-kernel@vger.kernel.org
Subject: Re: 64GB NUMA-Q after pgcl
Date: Tue, 1 Apr 2003 03:25:53 +0200 [thread overview]
Message-ID: <20030401012553.GK12718@x30.random> (raw)
In-Reply-To: <20030331222733.GT30140@holomorphy.com>
On Mon, Mar 31, 2003 at 02:27:33PM -0800, William Lee Irwin III wrote:
> On Sun, Mar 30, 2003 at 09:22:14PM -0800, William Lee Irwin III wrote:
> >> Miscellaneous side effects happen, like follow_page() and
> >> get_user_pages() need to return pfn's instead of struct pages.
>
> On Mon, Mar 31, 2003 at 11:02:51PM +0200, Ingo Oeser wrote:
> > Hmm, but you know, that users of get_user_pages() play games with
> > pages? They need to lock them into memory, mark them eventually
> > dirty, map them to a struct scatterlist and much more.
> > I worked on an API (I called it the page-walk-api), to make this
> > more and more transparent.
>
> There are no changes of semantics, it finds the struct page, does
> page_cache_get() and fiddles with the struct page just like before, but
> it needs to use the pfn as the handle to the thing when returning it to
> the caller, not the struct page pointer.
>
> The caller invariably needs the page structures to do anything, but
> it also often needs the subpfn (which pfn inside the area tracked by
> the struct page). The pfn is just the most compact way to pass that
> information. Things end up doing pfn_to_page() to get at the page
> structures that are returned in current mainline, and just use the
> low bits of the pfn to reconstruct the offset into the page for copying
> and bitblitting and so on.
This complicates things but to get the file offset right it's probably
unavoidable to leave hard page size knowledge in the common code in
terms of hard-pfn.
> On Mon, Mar 31, 2003 at 11:02:51PM +0200, Ingo Oeser wrote:
> > So if this work will go into 2.6.x, then the page-walk-API will
> > be needed, or else the driver writers playing tricks with
> > virtual<->physical<->bus address conversions will go nuts.
> > So which kernel is the target of this development?
>
> My target for this has always been 2.7; earlier kernels can take
> things on at the maintainer's discretion. I expect it to live out
> of tree for a substantial amount of time. =(
Andrea
next prev parent reply other threads:[~2003-04-01 1:14 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-28 4:00 64GB NUMA-Q after pgcl William Lee Irwin III
2003-03-28 7:45 ` Zwane Mwaikambo
2003-03-28 7:57 ` William Lee Irwin III
2003-03-28 8:05 ` Zwane Mwaikambo
2003-03-28 10:14 ` William Lee Irwin III
2003-03-28 17:38 ` John Levon
2003-03-30 23:19 ` Andrea Arcangeli
2003-03-31 4:27 ` William Lee Irwin III
2003-03-31 5:22 ` William Lee Irwin III
2003-03-31 21:02 ` Ingo Oeser
2003-03-31 22:27 ` William Lee Irwin III
2003-04-01 1:25 ` Andrea Arcangeli [this message]
2003-03-31 18:35 ` Andrea Arcangeli
2003-03-31 18:41 ` Christoph Hellwig
2003-03-31 19:08 ` William Lee Irwin III
2003-04-01 0:47 ` Andrea Arcangeli
2003-04-01 0:44 ` Andrea Arcangeli
2003-03-31 18:55 ` William Lee Irwin III
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=20030401012553.GK12718@x30.random \
--to=andrea@suse.de \
--cc=ingo.oeser@informatik.tu-chemnitz.de \
--cc=linux-kernel@vger.kernel.org \
--cc=wli@holomorphy.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