From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@osdl.org>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>,
neilb@suse.de, okir@suse.de, nfs@lists.sourceforge.net
Subject: Re: Problems with mmap consistency
Date: Sat, 25 Feb 2006 05:59:40 +0100 [thread overview]
Message-ID: <20060225045940.GB6592@g5.random> (raw)
In-Reply-To: <20060224171752.546dbe0d.akpm@osdl.org>
On Fri, Feb 24, 2006 at 05:17:52PM -0800, Andrew Morton wrote:
> Trond Myklebust <trond.myklebust@fys.uio.no> wrote:
> >
> > On Sat, 2006-02-25 at 01:33 +0100, Andrea Arcangeli wrote:
> >
> > > I got positive confirmation that my patch that makes
> > > invalidate_inode_pages2 non-destructive fixed the problem. At the top of
> > > this thread you can find the testcase used to reproduce the race posted
> > > by Olaf. I'm unsure if Neil's patch is needed, but it certainly could
> > > co-exist. I feel his patch should not execute a writepage inside
> > > try_to_release_page, it's not needed anymore with my fix in place.
> >
> > Yes it still is needed. The page doesn't need to have the dirty bit set
> > in order to actually need writing out (sort of the equivalent of having
> > buffers in the blocks case).
>
> eh? I don't know what's being talked about here, but that doesn't sound
> right. Taking the block-backed protocol as an example, if a page isn't
> dirty it shouldn't be written out. What _is_ legal is a page which is
> dirty but doesn't need writing out. You've gone and invented the converse,
> illegal case here.
Agreed, this is what I was trying to say too in the previous emails in
answer to Neil (and it was confirmed by your last email too). It doesn't
sound sane that a page has dirty-lowlevel data but PG_dirty is not set.
try_to_release_page isn't ->writepage and if PG_dirty isn't set it would
be hiding those pages to pdflush (pdflush wouldn't see the dirty bit and
it wouldn't writeback periodically).
try_to_release_page can return failure without doing writeback if it
finds dirty data in the lowlevel caches (but even that isn't strictly
necessary as long as the PG_dirty bit is set correctly).
Now the fact my patch fixed the problem, makes me quite optimistic nfs
is currently doing the right thing in setting PG_dirty, but perhaps the
testcase isn't stressing all races...
> > My patch just ensures that try_to_release_page() actually flushes those
> > buffers and waits for completion.
>
> <what patch?>
The one that Neil posted, it was the second URL (the first url is my
proposed patch):
http://sourceforge.net/mailarchive/message.php?msg_id=14906347
http://sourceforge.net/mailarchive/message.php?msg_id=14906867
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
NFS maillist - NFS@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs
next prev parent reply other threads:[~2006-02-25 5:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-17 10:57 Problems with mmap consistency Olaf Kirch
2006-02-17 15:15 ` Trond Myklebust
2006-02-24 4:01 ` Andrea Arcangeli
2006-02-24 6:15 ` Neil Brown
2006-02-24 16:08 ` Andrea Arcangeli
2006-02-24 23:39 ` Andrew Morton
2006-02-25 0:33 ` Andrea Arcangeli
2006-02-25 0:59 ` Trond Myklebust
2006-02-25 1:17 ` Andrew Morton
2006-02-25 4:59 ` Andrea Arcangeli [this message]
2006-02-25 14:55 ` Trond Myklebust
2006-02-25 17:27 ` Andrea Arcangeli
2006-02-25 18:42 ` Trond Myklebust
2006-02-27 0:26 ` Neil Brown
2006-02-28 1:04 ` Andrea Arcangeli
2006-02-26 22:33 ` Neil Brown
2006-02-24 7:12 ` Olaf Kirch
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=20060225045940.GB6592@g5.random \
--to=andrea@suse.de \
--cc=akpm@osdl.org \
--cc=neilb@suse.de \
--cc=nfs@lists.sourceforge.net \
--cc=okir@suse.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox