RE: [PATCH 2/2] hugetlb: synchronize alloc with page cache insert

From: Adam Litke
Date: Thu Jan 12 2006 - 14:47:47 EST


On Thu, 2006-01-12 at 11:07 -0800, Chen, Kenneth W wrote:
> Sorry, I don't think patch 1 by itself is functionally correct. It opens
> a can of worms with race window all over the place. It does more damage
> than what it is trying to solve. Here is one case:
>
> 1 thread fault on hugetlb page, allocate a non-zero page, insert into the
> page cache, then proceed to zero it. While in the middle of the zeroing,
> 2nd thread comes along fault on the same hugetlb page. It find it in the
> page cache, went ahead install a pte and return to the user. User code
> modify some parts of the hugetlb page while the 1st thread is still
> zeroing. A potential silent data corruption.

I don't think the above case is possible because of find_lock_page().
The second thread would wait on the page to be unlocked by the thread
zeroing it before it could proceed.

--
Adam Litke - (agl at us.ibm.com)
IBM Linux Technology Center

-
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/