From: Andrew Morton <akpm@osdl.org>
To: Nick Piggin <npiggin@suse.de>
Cc: Linus Torvalds <torvalds@osdl.org>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Linux Memory Management List <linux-mm@kvack.org>,
Greg KH <gregkh@suse.de>
Subject: Re: [patch] mm: bug in set_page_dirty_buffers
Date: Mon, 9 Oct 2006 21:14:04 -0700 [thread overview]
Message-ID: <20061009211404.ad112128.akpm@osdl.org> (raw)
In-Reply-To: <20061010035851.GK15822@wotan.suse.de>
On Tue, 10 Oct 2006 05:58:51 +0200
Nick Piggin <npiggin@suse.de> wrote:
> On Mon, Oct 09, 2006 at 08:50:30PM -0700, Andrew Morton wrote:
> > On Tue, 10 Oct 2006 05:34:12 +0200
> > Nick Piggin <npiggin@suse.de> wrote:
> > > > page->mapping to page_mapping().
> > >
> > > I did the switch because that is that its callers and
> > > the other spd functions are using to find the mapping.
> >
> > Maybe they're wrong?
>
> Well swapcache pages and anonymous pages can have set_page_dirty run
> against them. Granted in the current setup, those won't reach
> set_page_dirty_buffers, so maybe it isn't needed.
Well it wasn't needed before.
> > > the problem is that page_mapping is still free to go NULL at any
> > > time, and __set_page_dirty_buffers wasn't checking for that.
> > >
> > > If there is another race, then it must be because the buffer code
> > > cannot cope with dirty buffers against a truncated page. It is
> > > kind of spaghetti, though. What stops set_page_dirty_buffers from
> > > racing with block_invalidatepage, for example?
> >
> > Nothing that I can think of. We keep on adding calls to set_page_dirty()
> > against unlocked pages. It would have been better to fix that one case in
> > the pte-unmapping path rather than adding heaps more.
>
> I haven't been adding any, so I would love to ;)
Can we convert set_page_dirty_balance() to call set_page_dirty_lock()?
And make set_page_dirty_lock() return if the page is already dirty?
> I think there are
> a whole lot more problems than just the unmapping path, though. Direct
> IO comes to mind.
Why? direct-io locks the pages while invalidating them, and while marking
them dirty.
--
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:[~2006-10-10 4:14 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-10 2:36 [patch] mm: bug in set_page_dirty_buffers Nick Piggin
2006-10-10 3:06 ` Linus Torvalds
2006-10-10 3:19 ` Nick Piggin
2006-10-10 3:20 ` Andrew Morton
2006-10-10 3:34 ` Nick Piggin
2006-10-10 3:50 ` Andrew Morton
2006-10-10 3:58 ` Nick Piggin
2006-10-10 4:14 ` Andrew Morton [this message]
2006-10-10 4:21 ` Nick Piggin
2006-10-10 4:38 ` Andrew Morton
2006-10-10 4:47 ` Nick Piggin
2006-10-10 5:01 ` Andrew Morton
2006-10-10 5:22 ` Nick Piggin
2006-10-10 5:29 ` Andrew Morton
2006-10-10 5:48 ` Nick Piggin
2006-10-10 6:08 ` Andrew Morton
2006-10-10 6:19 ` Nick Piggin
2006-10-10 6:27 ` Andrew Morton
2006-10-10 6:39 ` Nick Piggin
2006-10-10 6:52 ` Nick Piggin
2006-10-10 7:06 ` Andrew Morton
2006-10-10 7:21 ` Nick Piggin
2006-10-10 8:07 ` Andrew Morton
2006-10-10 8:18 ` Nick Piggin
2006-10-10 8:41 ` Andrew Morton
2006-10-10 8:49 ` Nick Piggin
2006-10-10 9:07 ` Andrew Morton
2006-10-10 9:23 ` Nick Piggin
2006-10-10 6:48 ` Peter Zijlstra
2006-10-10 6:59 ` Nick Piggin
2006-10-10 7:11 ` Peter Zijlstra
2006-10-10 7:30 ` Nick Piggin
2006-10-10 4:11 ` Nick Piggin
2006-10-10 3:37 ` Andrew Morton
2006-10-10 3:42 ` Nick Piggin
2006-10-10 7:42 ` patch mm-bug-in-set_page_dirty_buffers.patch queued to -stable tree gregkh
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=20061009211404.ad112128.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=a.p.zijlstra@chello.nl \
--cc=gregkh@suse.de \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
--cc=torvalds@osdl.org \
/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.