linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Ingo Molnar <mingo@elte.hu>, Hugh Dickens <hugh@veritas.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>
Subject: Re: Definition of x86 _PAGE_SPECIAL and sharing _PAGE_UNUSED1
Date: Thu, 28 Aug 2008 11:00:46 +1000	[thread overview]
Message-ID: <200808281100.46380.nickpiggin@yahoo.com.au> (raw)
In-Reply-To: <48B5F5A6.4060309@goop.org>

On Thursday 28 August 2008 10:47, Jeremy Fitzhardinge wrote:
> Nick Piggin wrote:
> > Ah... pity it was hidden away there and not put into the include file.
>
> Yes.  I just prepped a patch to bring it out into the light.
>
> > I don't feel strongly about it. But you should put your definition in
> > pgtable.h (and possibly explain how it coexists with _SPECIAL).
>
> Yes, that was my plan, but without knowing how _SPECIAL is used, it's a
> bit tricky.  Is there a comment somewhere which describes who sets it
> and when?  From a quick look, it seems it's set on newly added user
> pages which aren't COWed.  Can they be shared file-backed pages?
> Anonymous pages?  Device pages?

They'll tend to be device pages. XIP filesystem mappings can set it too.

They won't be set on anonymous pages, or on normally mmap()ed pagecache
pages (although best not to take the latter as a strict rule because
in theory a filesystem _could_ map a pagecache page).


> >> Am I right in supposing that _PAGE_SPECIAL can only be set on user
> >> pages?
> >
> > Yes.
>
> OK, that won't clash with CPA tests at all, since they're kernel only.

Right. But they could nearly have clashed without ever being set on
kernel ptes -- if we ever _tested_ kernel ptes for that bit (gup.c
has other safeguards that should keep us away from kernel pages, but
it could in theory be implemented on x86 by only testing _PTE_SPECIAL
if we know it won't be set on kernel ptes).

But if we just document the fact now that _PTE_SPECIAL is valid for
only user ptes, then I think your CPA test bit fits nicely into the
kernel side and we're no longer wasting half a bit ;)


> >> (Also, "SPECIAL" is awfully generic.  Was there really no more
> >> descriptive name for this?)
> >
> > I thought it was about on par with its counterpart, which is "normal".
> > Either way, I don't think a casual reader would get an adequate idea
> > of how it works in one word. normal ~= refcounted, special ~= !refcounted
> > I guess, but it is slightly more than that and besides, normal was there
> > first, and I think Linus coined it... if you can convince him to change
> > it then you have my blessing to change special into whatever you want.
>
> It's only used in a couple of places, so giving it a longer name
> wouldn't cost much.  _PAGE_USER_UNCOUNTED?  But ugh, a lot of cross-arch
> churnpatch to do it.

And you have to get Linus to accept a patch turning vm_normal_page into
vm_user_counted. Good luck :)

--
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>

      reply	other threads:[~2008-08-28  1:00 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-27 19:02 Jeremy Fitzhardinge
2008-08-28  0:32 ` Nick Piggin
2008-08-28  0:47   ` Jeremy Fitzhardinge
2008-08-28  1:00     ` Nick Piggin [this message]

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=200808281100.46380.nickpiggin@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=akpm@linux-foundation.org \
    --cc=hugh@veritas.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    /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