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

Nick Piggin
2009-06-09T09:59:28Z

On Wed, Jun 03, 2009 at 08:46:43PM +0200, 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 don't agree with adding overhead to fastpaths like this. Your
MCE handler should have already taken care of this so I can't
see what it can gain.

>
> Signed-off-by: Andi Kleen <ak@linux.intel.com>
>
> ---
> mm/page-writeback.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> Index: linux/mm/page-writeback.c
> ===================================================================
> --- linux.orig/mm/page-writeback.c 2009-06-03 19:36:20.000000000 +0200
> +++ linux/mm/page-writeback.c 2009-06-03 19:36:23.000000000 +0200
> @@ -1304,6 +1304,10 @@
> {
> struct address_space *mapping = page_mapping(page);
>
> + if (unlikely(PageHWPoison(page))) {
> + SetPageDirty(page);
> + return 0;
> + }
> if (likely(mapping)) {
> int (*spd)(struct page *) = mapping->a_ops->set_page_dirty;
> #ifdef CONFIG_BLOCK