Re: [PATCH] [13/16] POISON: The high level memory error handler in the VM
From: Andi Kleen
Date: Thu Apr 09 2009 - 03:28:46 EST
On Wed, Apr 08, 2009 at 01:03:59PM -0400, Chris Mason wrote:
Hi Chris,
Thanks for the review.
> So, try_to_release_page returns 1 when it works. I know this only
> because I have to read it every time to remember ;)
Argh. I think I read that, but then somehow the code still came out
wrong and the tester didn't catch the failure.
>
> try_to_release_page is also very likely to fail if the page is dirty or
> under writeback. At the end of the day, we'll probably need a call into
Would you recommend a retry step? If it fails cancel_dirty_page() and then
retry?
Ideally I would like to stop the write back before it starts (it will
result in a hardware bus abort or even a machine check if the CPU
touches the data), but I realize it's difficult for anything with
private page state. I just cancel dirty for !Private at least.
> the FS to tell it a given page isn't coming back, and to clean it at all
> cost.
>
> invalidatepage is close, but ext3/reiserfs will keep the buffer heads
> and let the page->mapping go to null in an ugly data=ordered corner
> case. The buffer heads pin the page and it won't be freed until the IO
> is done.
invalidate_mapping_pages() ?
I had this in an earlier version, but took it out because it seemed
problematic to rely on a specific inode. Should i reconsider it?
-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/