From: Andrew Morton <akpm@digeo.com>
To: Daniel Phillips <phillips@arcor.de>
Cc: Rik van Riel <riel@conectiva.com.br>,
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: Mon, 09 Sep 2002 15:03:32 -0700 [thread overview]
Message-ID: <3D7D1AB4.B465ABE8@digeo.com> (raw)
In-Reply-To: E17oWKH-0006uw-00@starship
Daniel Phillips wrote:
>
> > I'm very unkeen about using the inaccurate invalidate_inode_pages
> > for anything which matters, really. And the consistency of pagecache
> > data matters.
> >
> > NFS should be using something stronger. And that's basically
> > vmtruncate() without the i_size manipulation.
>
> Yes, that looks good. Semantics are basically "and don't come back
> until every damm page is gone" which is enforced by the requirement
> that we hold the mapping->page_lock though one entire scan of the
> truncated region. (Yes, I remember sweating this one out a year
> or two ago so it doesn't eat 100% CPU on regular occasions.)
>
> So, specifically, we want:
>
> void invalidate_inode_pages(struct inode *inode)
> {
> truncate_inode_pages(mapping, 0);
> }
>
> Is it any harder than that?
Pretty much - need to leave i_size where it was. But there are
apparently reasons why NFS cannot sleepingly lock pages in this particular
context.
> By the way, now that we're all happy with the radix tree, we might
> as well just go traverse that instead of all the mapping->*_pages.
> (Not that I'm seriously suggesting rocking the boat that way just
> now, but it might yield some interesting de-crufting possibilities.)
Oh absolutely.
unsigned long radix_tree_gang_lookup(void **pointers,
unsiged long starting_from_here, unsigned long this_many);
could be used nicely in readahead, drop_behind, truncate, invalidate
and invalidate2. But to use it in writeback (desirable) we would need
additional metadata in radix_tree_node. One bit per page, which means
"this page is dirty" or "this subtree has dirty pages".
I keep saying this in the hope that someone will take pity and write it.
> ...
> Now, what is this invalidate_inode_pages2 seepage about? Called from
> one place. Sheesh.
heh. We still do have some O_DIRECT/pagecache coherency problems.
next prev parent reply other threads:[~2002-09-09 21:59 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
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 [this message]
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=3D7D1AB4.B465ABE8@digeo.com \
--to=akpm@digeo.com \
--cc=cel@citi.umich.edu \
--cc=linux-kernel@vger.kernel.org \
--cc=phillips@arcor.de \
--cc=riel@conectiva.com.br \
--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.