Re: [PATCH, RFC/T] Fix handling of write failures to swap devices

From: Andrew Morton
Date: Fri Oct 27 2006 - 17:20:14 EST


On Fri, 27 Oct 2006 08:59:55 +0100
Richard Purdie <rpurdie@xxxxxxxxxxxxxx> wrote:

> Fix handling of write failures to swap devices.
>
> Calling SetPageError(page) marks the data in memory as bad and processes using
> the page in question will die unexpectedly. This isn't necessary as the data
> in the memory page is still valid, just the copy on disk isn't. This patch
> therefore removes this call.
>
> Setting set_page_dirty(page) is good as the memory page will be retained and
> processes don't die. It will try to write out the page again soon but a second
> attempt at a write is probably no more likely to succeed than the first
> resulting in IO loops. We can do better.
>
> This patch attempts to unuse the page in a similar manner to swapoff. If
> successful, mark the swap page as bad and remove it from use. If we fail to
> remove all references, we fall back on set_page_dirty above which will retry
> the write.
>
> If we can mark the swap page as bad, adjust the VM accounting to reflect this.
>

Sounds like a reasonable approach. Please copy Hugh (our lead swapoff maintainer)
on this work.

How was this tested?
-
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/