Re: [PATCH] [8/16] POISON: Add various poison checks in mm/memory.c

Johannes Weiner
2009-04-07T20:37:09Z

On Tue, Apr 07, 2009 at 10:24:49PM +0200, Andi Kleen wrote:
> > I think we missed each other here. I wasn't talking about _why_ you
> > take that reference -- that is clear. But I see these two
> > possibilities:
> >
> > a) memory_failure() is called on a page on the free list, the
> > get_page() will trigger a bug because the refcount is 0
>
> Ah got it now. Sorry for misreading you. That's indeed a problem.
> Fixing.
>
> free pages was something my injector based test suite didn't cover :/

Hm, perhaps walking mem_map and poisoning pages at random? :)

> > b) if that is not possible, the above check is not needed
>
> There was at least one case where the process could free it anyways.
> I think. Or maybe that was something I fixed in a different way.
> It's possible this check is not needed, but it's probably safer
> to keep it (and it's all super slow path)

Ok. I first thought it could be useful to shrink the race window
between allocating the page and installing the pte but the rest of the
poisoning code should be able to cope.

Hannes