From: Christoph Lameter <clameter@sgi.com>
To: Hugh Dickins <hugh@veritas.com>
Cc: Nick Piggin <npiggin@suse.de>, linux-mm@kvack.org, dgc@sgi.com
Subject: Re: [RFC] Free up page->private for compound pages
Date: Thu, 5 Apr 2007 11:58:52 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0704051152500.10694@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0704051919490.17494@blonde.wat.veritas.com>
On Thu, 5 Apr 2007, Hugh Dickins wrote:
> > > off through its page->private (page->first_page comes from another
> > > of your patches, not in -mm). Looks like you need to add a test for
Yes its in mm. See the slub patches.
> > > PageCompound in compound_head (what a surprise!), unfortunately.
> >
> > Hmmm... Thus we should really have separate page flag and not overload it?
>
> Of course that would be more efficient, but is it really something
> we'd want to be spending a page flag on? And it's mainly a codesize
> thing, the initial unlikely(PageCompound) tests should keep the main
> paths as fast as before, shouldn't they?
I am not so much worried about performance but more about the availability
of the page->private field of compound pages.
> But I did wonder whether you could do it differently, but not setting
> PageCompound on the first struct page of the compound at all - that
> one doesn't need the compound page adjustment, of course, which is
> your whole point.
Have not thought about it being a performance improvement. Good point
though.
> Then in those places which really need to know the first is compounded,
> test something like PageCompound(page+1) instead. "something like"
> because that particular test won't work nicely for the very last
> struct page in a ... node? (sorry, I don't know the right terminology:
> the last struct page in a mem_map-like array).
The last page in a MAX_ORDER block may have issues. In particular if its
the last MAX_ORDER block in a zone. This going to make sparsemem go
ballistic.
> But if that ends up peppering the code with PageCompound(page) ||
> PageCompound(page+1) expressions on fast paths, it'd be a whole lot
> worse than the PageCompound(page) && PageTail(page) we're envisaging.
Not sure exactly what you are saying.
The initial proposal was to have
1. Headpage PageCompound
2. Tail page PageCompound & PageTail
The PageCompound on each page is necessary for various I/O paths that
check for compound pages and refuse to do certain things (like dirtying
etc).
The tail marking is advantages because it exactly marks a page that is
1. Compound
2. Not the head of the compound page
Thus is easy and fast to establish the need to lookup the head page of a
compound page.
I think we cannot overload the page flag after all because of the page
count issue you pointed out. Guess I should be cleaning up my
initial patch and repost it?
--
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>
next prev parent reply other threads:[~2007-04-05 18:58 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-05 3:19 Christoph Lameter
2007-04-05 3:36 ` Nick Piggin
2007-04-05 3:38 ` Christoph Lameter
2007-04-05 3:57 ` Nick Piggin
2007-04-05 4:04 ` Christoph Lameter
2007-04-05 4:25 ` Nick Piggin
2007-04-05 4:34 ` Christoph Lameter
2007-04-05 14:30 ` Hugh Dickins
2007-04-05 18:17 ` Christoph Lameter
2007-04-05 18:40 ` Hugh Dickins
2007-04-05 18:58 ` Christoph Lameter [this message]
2007-04-05 19:50 ` Hugh Dickins
2007-04-05 20:07 ` Christoph Lameter
2007-04-05 15:13 ` Dave Kleikamp
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=Pine.LNX.4.64.0704051152500.10694@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=dgc@sgi.com \
--cc=hugh@veritas.com \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
/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