Re: Hugepage regression

From: Andrew Morton
Date: Tue Oct 10 2006 - 05:06:26 EST


On Tue, 10 Oct 2006 18:47:48 +1000
David Gibson <david@xxxxxxxxxxxxxxxxxxxxx> wrote:

> It seems commit fe1668ae5bf0145014c71797febd9ad5670d5d05 causes a
> hugepage regression. A git bisect points the finger at that commit
> for causing an oops in the 'alloc-instantiate-race' test from the
> libhugetlbfs testsuite.
>
> Still looking to determine the reason it breaks things.
>

It's assuming that unmap_hugepage_range() is always freeing these pages.
If the page is shared by another mapping, bad things will happen: the
threads fight over page->lru.

Doing

+ if (page_count(page) == 1)
list_add(&page->lru, &page_list);

might help. But then we miss the tlb flush in rare racy conditions.
-
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/