Re: [PATCH] [10/16] HWPOISON: Handle poisoned pages in set_page_dirty()

Wu Fengguang
2009-06-09T12:52:10Z

On Tue, Jun 09, 2009 at 05:59:20PM +0800, Nick Piggin wrote:
> On Wed, Jun 03, 2009 at 08:46:43PM +0200, Andi Kleen wrote:
> >
> > Bail out early in set_page_dirty for poisoned pages. We don't want any
> > of the dirty accounting done or file system write back started, because
> > the page will be just thrown away.
>
> I don't agree with adding overhead to fastpaths like this. Your
> MCE handler should have already taken care of this so I can't
> see what it can gain.

Agreed to remove this patch. The poisoned page should already be
isolated (in normal cases), and won't reach this code path.

Thanks,
Fengguang

> >
> > Signed-off-by: Andi Kleen <ak@linux.intel.com>
> >
> > ---
> > mm/page-writeback.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > Index: linux/mm/page-writeback.c
> > ===================================================================
> > --- linux.orig/mm/page-writeback.c 2009-06-03 19:36:20.000000000 +0200
> > +++ linux/mm/page-writeback.c 2009-06-03 19:36:23.000000000 +0200
> > @@ -1304,6 +1304,10 @@
> > {
> > struct address_space *mapping = page_mapping(page);
> >
> > + if (unlikely(PageHWPoison(page))) {
> > + SetPageDirty(page);
> > + return 0;
> > + }
> > if (likely(mapping)) {
> > int (*spd)(struct page *) = mapping->a_ops->set_page_dirty;
> > #ifdef CONFIG_BLOCK