Re: [PATCH] [16/19] HWPOISON: Enable .remove_error_page formigration aware file systems

From: Andi Kleen
Date: Wed Aug 05 2009 - 09:51:21 EST


On Wed, Aug 05, 2009 at 07:12:31AM -0400, Christoph Hellwig wrote:
> On Wed, Aug 05, 2009 at 11:36:43AM +0200, Andi Kleen wrote:
> >
> > Enable removing of corrupted pages through truncation
> > for a bunch of file systems: ext*, xfs, gfs2, ocfs2, ntfs
> > These should cover most server needs.
> >
> > I chose the set of migration aware file systems for this
> > for now, assuming they have been especially audited.
> > But in general it should be safe for all file systems
> > on the data area that support read/write and truncate.
> >
> > Caveat: the hardware error handler does not take i_mutex
> > for now before calling the truncate function. Is that ok?
>
> It will probably need locking, e.g. the iolock in XFS. I'll
> need to take a look at the actual implementation of
> generic_error_remove_page to make sense of this.

Thanks for the review.

It just calls the lower end of the truncate path.

http://git.kernel.org/?p=linux/kernel/git/ak/linux-mce-2.6.git;a=commitdiff;h=b5d3322870b0f6e369809674d2c73857fd6ef480

and

http://git.kernel.org/?p=linux/kernel/git/ak/linux-mce-2.6.git;a=commitdiff;h=4c2df4fa9e4687bde815883fabc602ccc5961272

Is that ok? It should be roughly the same as normal truncate does,
except it doesn't take i_mutex currently.

We're careful to not do it for non regular inodes.

>
> Is there any way for us to test this functionality without introducing
> real hardware problems?

Yes, there are three different injectors to chose from :)

The easiest one is usually the madvise(MADV_POISON) injector.

Just map a suitable page and

There's a test program in

http://git.kernel.org/?p=utils/cpu/mce/mce-test.git;a=blob;f=tsrc/tinjpage.c;h=954e1edab765d1c141f693ae9767ba9d5491c1aa;hb=HEAD

that can be extended for new tests.

-Andi

--
ak@xxxxxxxxxxxxxxx -- Speaking for myself only.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/