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

Andi Kleen
2009-06-04T05:20:28Z

On Thu, Jun 04, 2009 at 08:36:21AM +0800, Wu Fengguang wrote:
> On Thu, Jun 04, 2009 at 02:46:43AM +0800, 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'm afraid this patch is not necessary and could be harmful.
>
> It is not necessary because a poisoned page will normally already be
> isolated from page cache, or likely cannot be isolated because it has
> dirty buffers.

Hmm I think I had a case when I originally wrote the code where it was needed.
But I can't clearly remember now what it was.

But you're right the page cache isolation should normally take care of it.

> It is harmful because it put the page into dirty state without queuing
> it for IO by moving it to s_io. When more normal pages are dirtied
> later, __set_page_dirty_nobuffers() won't move the inode into s_io,
> hence delaying the writeback of good pages for arbitrary long time.

That's a good point.

I dropped the patch for now.

-Andi

--
ak@linux.intel.com -- Speaking for myself only.