On Thu, Oct 07, 2010 at 04:49:01AM +0800, Andi Kleen wrote: > From: Andi Kleen <ak@xxxxxxxxxxxxxxx> > > When we call the slab shrinker to free a page we need to stop at > page count one because the caller always holds a single reference, not zero. > > This avoids useless looping over slab shrinkers and freeing too much > memory. > > Signed-off-by: Andi Kleen <ak@xxxxxxxxxxxxxxx> Good catch! Reviewed-by: Wu Fengguang <fengguang.wu@xxxxxxxxx> > --- > mm/memory-failure.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/mm/memory-failure.c b/mm/memory-failure.c > index 886144b..7c1af9b 100644 > --- a/mm/memory-failure.c > +++ b/mm/memory-failure.c > @@ -237,7 +237,7 @@ void shake_page(struct page *p, int access) > int nr; > do { > nr = shrink_slab(1000, GFP_KERNEL, 1000); > - if (page_count(p) == 0) > + if (page_count(p) == 1) > break; > } while (nr > 10); > } > -- > 1.7.1 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>