From: Andrew Morton <akpm@digeo.com>
To: Daniel Phillips <phillips@arcor.de>
Cc: trond.myklebust@fys.uio.no, Chuck Lever <cel@citi.umich.edu>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: invalidate_inode_pages in 2.5.32/3
Date: Sat, 07 Sep 2002 09:06:40 -0700 [thread overview]
Message-ID: <3D7A2410.168668CC@digeo.com> (raw)
In-Reply-To: E17natE-0006OB-00@starship
Daniel Phillips wrote:
>
> On Friday 06 September 2002 00:19, Andrew Morton wrote:
> > I'm not sure what semantics we really want for this. If we were to
> > "invalidate" a mapped page then it would become anonymous, which
> > makes some sense.
>
> There's no need to leave the page mapped, you can easily walk the rmap list
> and remove the references.
Yes, unmapping and forcing a subsequent major fault would make
sense. It would require additional locking in the nopage pth
to make this 100% accurate. I doubt if it's worth doing that,
so the unmap-and-refault-for-invalidate feature would probably
be best-effort. But more accurate than what we have now.
> > If the VM wants to reclaim a page, and it has PG_private set then
> > the vm will run mapping->releasepage() against the page. The mapping's
> > releasepage must try to clear away whatever is held at ->private. If
> > that was successful then releasepage() must clear PG_private, decrement
> > page->count and return non-zero. If the info at ->private is not
> > freeable, releasepage returns zero. ->releasepage() may not sleep in
> > 2.5.
> >
> > So. NFS can put anything it likes at page->private. If you're not
> > doing that then you don't need a releasepage. If you are doing that
> > then you must have a releasepage().
>
> Right now, there are no filesystems actually doing anything filesystem
> specific here, are there? I really wonder if making this field, formerly
> known as buffers, opaque to the vfs is the right idea.
That's right - it is only used for buffers at present. I was using
page->private in the delayed-allocate code for directly holding the
disk mapping information. There was some talk of using it for <mumble>
in XFS. Also it may be used in the NFS server for storing credential
information. Also it could be used for MAP_SHARED pages for credential
information - to fix the problem wherein kswapd (ie: root) is the
one who instantiates the page's blocks, thus allowing non-root programs
to consume the root-only reserved ext2/ext3 blocks.
next prev parent reply other threads:[~2002-09-07 15:48 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-05 14:25 invalidate_inode_pages in 2.5.32/3 Chuck Lever
2002-09-05 18:27 ` Andrew Morton
2002-09-05 18:53 ` Chuck Lever
2002-09-05 19:17 ` Andrew Morton
2002-09-05 20:00 ` Trond Myklebust
2002-09-05 20:15 ` Andrew Morton
2002-09-05 20:27 ` Trond Myklebust
2002-09-05 20:37 ` Andrew Morton
2002-09-05 20:51 ` Trond Myklebust
2002-09-05 21:12 ` Andrew Morton
2002-09-05 21:31 ` Trond Myklebust
2002-09-05 22:19 ` Andrew Morton
2002-09-06 0:48 ` Trond Myklebust
2002-09-06 1:08 ` Andrew Morton
2002-09-06 6:49 ` Trond Myklebust
2002-09-07 8:37 ` Daniel Phillips
2002-09-07 16:09 ` Andrew Morton
2002-09-07 17:02 ` Andrew Morton
2002-09-07 8:24 ` Daniel Phillips
2002-09-07 16:06 ` Andrew Morton [this message]
2002-09-09 21:08 ` Daniel Phillips
2002-09-09 21:36 ` Andrew Morton
2002-09-09 22:12 ` Daniel Phillips
2002-09-07 18:47 ` Rik van Riel
2002-09-07 23:09 ` Andrew Morton
2002-09-09 21:44 ` Daniel Phillips
2002-09-09 22:03 ` Andrew Morton
2002-09-09 22:19 ` Daniel Phillips
2002-09-09 22:32 ` Andrew Morton
2002-09-10 16:57 ` Daniel Phillips
2002-09-09 23:51 ` Chuck Lever
2002-09-10 1:07 ` Daniel Phillips
2002-09-10 15:09 ` Chuck Lever
2002-09-10 16:13 ` Daniel Phillips
2002-09-10 19:04 ` Chuck Lever
2002-09-10 20:52 ` Daniel Phillips
2002-09-11 0:07 ` Andrew Morton
2002-09-11 0:27 ` Daniel Phillips
2002-09-11 0:38 ` Andrew Morton
2002-09-11 0:53 ` Daniel Phillips
2002-09-11 1:49 ` Andrew Morton
2002-09-11 2:14 ` Daniel Phillips
2002-09-11 16:18 ` Rik van Riel
2002-09-11 17:14 ` Daniel Phillips
2002-09-12 19:06 ` Daniel Phillips
2002-09-12 22:05 ` Urban Widmark
2002-09-12 22:21 ` Andrew Morton
2002-09-12 22:30 ` Rik van Riel
2002-09-12 22:43 ` Daniel Phillips
2002-09-12 22:51 ` Andrew Morton
2002-09-12 23:05 ` Randy.Dunlap
2002-09-12 23:23 ` Rik van Riel
2002-09-12 23:53 ` Daniel Phillips
2002-09-23 16:38 ` Trond Myklebust
2002-09-23 17:16 ` Daniel Phillips
2002-09-23 18:57 ` Andrew Morton
2002-09-23 20:41 ` Trond Myklebust
2002-09-23 20:49 ` Daniel Phillips
2002-09-23 22:43 ` Trond Myklebust
2002-09-24 5:09 ` Daniel Phillips
2002-09-24 16:40 ` Trond Myklebust
2002-09-23 19:13 ` Daniel Phillips
2002-09-13 4:19 ` Daniel Phillips
2002-09-13 4:52 ` Daniel Phillips
2002-09-14 9:58 ` Urban Widmark
2002-09-12 13:04 ` Trond Myklebust
2002-09-12 18:21 ` Andrew Morton
2002-09-12 21:15 ` Daniel Phillips
2002-09-12 21:38 ` Andrew Morton
2002-09-12 21:52 ` Daniel Phillips
2002-09-05 22:01 ` Chuck Lever
2002-09-05 22:23 ` Andrew Morton
2002-09-05 21:41 ` Chuck Lever
2002-09-06 9:35 ` Helge Hafting
2002-09-06 16:16 ` Chuck Lever
2002-09-07 8:01 ` Daniel Phillips
2002-09-07 10:01 ` Daniel Phillips
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=3D7A2410.168668CC@digeo.com \
--to=akpm@digeo.com \
--cc=cel@citi.umich.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=phillips@arcor.de \
--cc=trond.myklebust@fys.uio.no \
/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.