From: Chris Mason <chris.mason@oracle.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: hugh@veritas.com, npiggin@suse.de, riel@redhat.com,
lee.schermerhorn@hp.com, akpm@linux-foundation.org,
linux-kernel@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org
Subject: Re: [PATCH] [13/16] POISON: The high level memory error handler in the VM II
Date: Thu, 09 Apr 2009 10:37:39 -0400 [thread overview]
Message-ID: <1239287859.23150.57.camel@think.oraclecorp.com> (raw)
In-Reply-To: <20090409140257.GI14687@one.firstfloor.org>
On Thu, 2009-04-09 at 16:02 +0200, Andi Kleen wrote:
> On Thu, Apr 09, 2009 at 09:30:29AM -0400, Chris Mason wrote:
> > > Is that a correct assumption?
> >
> > Yes, the page won't become writeback when you're holding the page lock.
> > But, the FS usually thinks of try_to_releasepage as a polite request.
> > It might fail internally for a bunch of reasons.
> >
> > To make things even more fun, the page won't become writeback magically,
> > but ext3 and reiser maintain lists of buffer heads for data=ordered, and
> > they do the data=ordered IO on the buffer heads directly. writepage is
> > never called and the page lock is never taken, but the buffer heads go
> > to disk. I don't think any of the other filesystems do it this way.
>
> Ok, so do you think my code handles this correctly?
Even though try_to_releasepage only checks page_writeback() the lower
filesystems all bail on dirty pages or dirty buffers (see the checks
done by try_to_free_buffers).
It looks like the only way we have to clean a page and all the buffers
in it is the invalidatepage call. But that doesn't return success or
failure, so maybe invalidatepage followed by releasepage?
I'll have to read harder next week, the FS invalidatepage may expect
truncate to be the only caller.
>
> > If we really want the page gone, we'll have to tell the FS
> > drop-this-or-else....sorry, its some ugly stuff.
>
> I would like to give a very strong hint at least. If it fails
> we can still ignore it, but it will likely have negative consequences later.
>
Nod.
> >
> > The good news is, it is pretty rare. I wouldn't hold up the whole patch
>
> You mean pages with Private bit are rare? Are you suggesting to just
> ignore those? How common is it to have Private pages which are not
> locked by someone else?
>
PagePrivate is very common. try_to_releasepage failing on a clean page
without the writeback bit set and without dirty/locked buffers will be
pretty rare.
-chris
--
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:[~2009-04-09 14:40 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-07 15:09 [PATCH] [0/16] POISON: Intro Andi Kleen
2009-04-07 15:09 ` [PATCH] [1/16] POISON: Add support for high priority work items Andi Kleen
2009-04-07 15:09 ` [PATCH] [2/16] POISON: Add page flag for poisoned pages Andi Kleen
2009-04-07 21:07 ` Christoph Lameter
2009-04-08 0:29 ` Russ Anderson
2009-04-08 6:26 ` Andi Kleen
2009-04-08 5:14 ` Andrew Morton
2009-04-08 6:24 ` Andi Kleen
2009-04-08 7:00 ` Andrew Morton
2009-04-08 9:38 ` Andi Kleen
2009-04-07 15:09 ` [PATCH] [3/16] POISON: Handle poisoned pages in page free Andi Kleen
2009-04-07 23:21 ` Minchan Kim
2009-04-08 6:51 ` Andi Kleen
2009-04-08 7:39 ` Minchan Kim
2009-04-08 9:41 ` Andi Kleen
2009-04-08 10:05 ` Minchan Kim
2009-04-07 15:10 ` [PATCH] [4/16] POISON: Export some rmap vma locking to outside world Andi Kleen
2009-04-07 15:10 ` [PATCH] [5/16] POISON: Add support for poison swap entries Andi Kleen
2009-04-07 21:11 ` Christoph Lameter
2009-04-07 21:56 ` Andi Kleen
2009-04-07 21:56 ` Christoph Lameter
2009-04-07 22:25 ` Andi Kleen
2009-04-07 15:10 ` [PATCH] [6/16] POISON: Add new SIGBUS error codes for poison signals Andi Kleen
2009-04-07 15:10 ` [PATCH] [7/16] POISON: Add basic support for poisoned pages in fault handler Andi Kleen
2009-05-26 12:55 ` Hidehiro Kawai
2009-05-26 13:18 ` Andi Kleen
2009-04-07 15:10 ` [PATCH] [8/16] POISON: Add various poison checks in mm/memory.c Andi Kleen
2009-04-07 19:03 ` Johannes Weiner
2009-04-07 19:31 ` Andi Kleen
2009-04-07 20:17 ` Johannes Weiner
2009-04-07 20:24 ` Andi Kleen
2009-04-07 20:36 ` Johannes Weiner
2009-04-07 15:10 ` [PATCH] [9/16] POISON: x86: Add VM_FAULT_POISON handling to x86 page fault handler Andi Kleen
2009-04-07 15:10 ` [PATCH] [10/16] POISON: Use bitmask/action code for try_to_unmap behaviour Andi Kleen
2009-04-07 21:19 ` Christoph Lameter
2009-04-07 21:59 ` Andi Kleen
2009-04-07 22:04 ` Christoph Lameter
2009-04-07 22:35 ` Andi Kleen
2009-04-07 15:10 ` [PATCH] [11/16] POISON: Handle poisoned pages in try_to_unmap Andi Kleen
2009-04-07 15:10 ` [PATCH] [12/16] POISON: Handle poisoned pages in set_page_dirty() Andi Kleen
2009-04-07 15:10 ` [PATCH] [13/16] POISON: The high level memory error handler in the VM Andi Kleen
2009-04-07 16:03 ` Rik van Riel
2009-04-07 16:30 ` Andi Kleen
2009-04-07 18:51 ` Johannes Weiner
2009-04-07 19:40 ` Andi Kleen
2009-04-08 17:03 ` Chris Mason
2009-04-09 7:29 ` Andi Kleen
2009-04-09 7:58 ` [PATCH] [13/16] POISON: The high level memory error handler in the VM II Andi Kleen
2009-04-09 13:30 ` Chris Mason
2009-04-09 14:02 ` Andi Kleen
2009-04-09 14:37 ` Chris Mason [this message]
2009-04-09 14:57 ` Andi Kleen
2009-04-29 8:16 ` Wu Fengguang
2009-04-29 8:21 ` btrfs BUG on creating huge sparse file Wu Fengguang
2009-04-29 11:40 ` Chris Mason
2009-04-29 11:45 ` Wu Fengguang
2009-04-29 8:36 ` [PATCH] [13/16] POISON: The high level memory error handler in the VM II Andi Kleen
2009-04-29 9:05 ` Wu Fengguang
2009-04-29 11:27 ` Chris Mason
2009-04-07 15:10 ` [PATCH] [14/16] x86: MCE: Rename mce_notify_user to mce_notify_irq Andi Kleen
2009-04-07 15:10 ` [PATCH] [15/16] x86: MCE: Support action-optional machine checks Andi Kleen
2009-04-07 15:10 ` [PATCH] [16/16] POISON: Add madvise() based injector for poisoned data Andi Kleen
2009-04-07 19:13 ` [PATCH] [0/16] POISON: Intro Robin Holt
2009-04-07 19:38 ` Andi Kleen
2009-04-08 5:15 ` Andrew Morton
2009-04-08 6:15 ` Andi Kleen
2009-04-08 17:29 ` Roland Dreier
2009-04-09 7:22 ` Andi Kleen
2009-04-08 5:47 ` Andrew Morton
2009-04-08 6:21 ` Andi Kleen
2009-04-13 13:18 ` Wu Fengguang
2009-05-26 12:50 ` Hidehiro Kawai
2009-05-26 13:29 ` Andi Kleen
2009-05-28 4:37 ` Hidehiro Kawai
2009-05-28 8:00 ` Andi Kleen
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=1239287859.23150.57.camel@think.oraclecorp.com \
--to=chris.mason@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=hugh@veritas.com \
--cc=lee.schermerhorn@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
--cc=riel@redhat.com \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).