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

Wu Fengguang
2009-08-05T12:17:00Z

On Wed, Aug 05, 2009 at 07:12:31PM +0800, 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.

In patch 13, it simply calls truncate_inode_page() for S_ISREG inodes.

Nick suggests call truncate_inode_page() with i_mutex. Sure we can
do mutex_trylock(i_mutex), but we'd appreciate it if some fs gurus
can demonstrate some bad consequences of not doing so, thanks!

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

We have some additional patches (ugly but works for now) that export
interfaces for injecting hwpoison to selected types pages. It can
guarantee only data/metadata pages of selected fs will be poisoned.
Based on which we can do all kinds of stress testing in user space.

Thanks,
Fengguang