From: Hugh Dickins <hughd@google.com>
To: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Jan Kara <jack@suse.cz>,
linux-mm@kvack.org, LKML <linux-kernel@vger.kernel.org>,
xfs@oss.sgi.com, Mel Gorman <mgorman@suse.de>,
linux-s390@vger.kernel.org
Subject: Re: [PATCH] mm: Fix XFS oops due to dirty pages without buffers on s390
Date: Wed, 10 Oct 2012 14:57:48 -0700 (PDT) [thread overview]
Message-ID: <alpine.LSU.2.00.1210101428470.1939@eggly.anvils> (raw)
In-Reply-To: <alpine.LSU.2.00.1210091600450.30446@eggly.anvils>
On Tue, 9 Oct 2012, Hugh Dickins wrote:
> On Tue, 9 Oct 2012, Martin Schwidefsky wrote:
> > On Mon, 8 Oct 2012 21:24:40 -0700 (PDT)
> > Hugh Dickins <hughd@google.com> wrote:
> >
> > > A separate worry came to mind as I thought about your patch: where
> > > in page migration is s390's dirty storage key migrated from old page
> > > to new? And if there is a problem there, that too should be fixed
> > > by what I propose in the previous paragraph.
> >
> > That is covered by the SetPageUptodate() in migrate_page_copy().
>
> I don't think so: that makes sure that the newpage is not marked
> dirty in storage key just because of the copy_highpage to it; but
> I see nothing to mark the newpage dirty in storage key when the
> old page was dirty there.
I went to prepare a patch to fix this, and ended up finding no such
problem to fix - which fits with how no such problem has been reported.
Most of it is handled by page migration's unmap_and_move() having to
unmap the old page first: so the old page will pass through the final
page_remove_rmap(), which will transfer storage key to page_dirty in
those cases which it deals with (with the old code, any file or swap
page; with the new code, any unaccounted file or swap page, now that
we realize the accounted files don't even need this); and page_dirty
is already properly migrated to the new page.
But that does leave one case behind: an anonymous page not yet in
swapcache, migrated via a swap-like migration entry. But this case
is not a problem because PageDirty doesn't actually affect anything
for an anonymous page not in swapcache. There are various places
where we set it, and its life-history is hard to make sense of, but
in fact it's meaningless in 2.6, where page reclaim adds anon to swap
(and sets PageDirty) whether the page was marked dirty before or not
(which makes sense when we use the ZERO_PAGE for anon read faults).
2.4 did behave differently: it was liable to free anon pages not
marked dirty, and I think most of our anon SetPageDirtys are just a
relic of those days - I do have a patch from 18 months ago to remove
them (adding PG_dirty to the flags which should not be set when a
page is freed), but there are usually more urgent things to attend
to than rebase and retest that.
Hugh
--
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:[~2012-10-10 21:57 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-01 16:26 Jan Kara
2012-10-08 14:28 ` Mel Gorman
2012-10-09 4:24 ` Hugh Dickins
2012-10-09 8:18 ` Martin Schwidefsky
2012-10-09 23:21 ` Hugh Dickins
2012-10-10 21:57 ` Hugh Dickins [this message]
2012-10-19 14:38 ` Martin Schwidefsky
2012-10-09 9:32 ` Mel Gorman
2012-10-09 23:00 ` Hugh Dickins
2012-10-09 16:21 ` Jan Kara
2012-10-10 2:19 ` Hugh Dickins
2012-10-10 8:55 ` Jan Kara
2012-10-10 21:28 ` Hugh Dickins
2012-10-11 7:42 ` Martin Schwidefsky
2012-10-10 21:56 ` Dave Chinner
2012-10-11 7:44 ` Martin Schwidefsky
2012-10-17 0:43 ` Jan Kara
2012-10-22 15:06 Jan Kara
2012-10-22 19:38 ` Andrew Morton
2012-10-23 4:40 ` Hugh Dickins
2012-10-23 10:21 ` Jan Kara
2012-10-23 21:56 ` Andrew Morton
2012-10-24 8:30 ` Martin Schwidefsky
2012-10-25 20:01 ` Jan Kara
2012-12-14 8:45 ` Martin Schwidefsky
2012-12-17 23:31 ` Hugh Dickins
2012-12-18 7:30 ` Martin Schwidefsky
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=alpine.LSU.2.00.1210101428470.1939@eggly.anvils \
--to=hughd@google.com \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=mgorman@suse.de \
--cc=schwidefsky@de.ibm.com \
--cc=xfs@oss.sgi.com \
/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