Re: [PATCH 4/4] Hugetlb: Copy on Write support

From: David Gibson
Date: Wed Nov 09 2005 - 19:49:07 EST


On Wed, Nov 09, 2005 at 04:15:34PM -0800, William Lee Irwin wrote:
> On Wed, Nov 09, 2005 at 05:39:55PM -0600, Adam Litke wrote:
> > Hugetlb: Copy on Write support
> > Implement copy-on-write support for hugetlb mappings so MAP_PRIVATE can be
> > supported. This helps us to safely use hugetlb pages in many more
> > applications. The patch makes the following changes. If needed, I also have
> > it broken out according to the following paragraphs.
> > 1. Add a pair of functions to set/clear write access on huge ptes. The
> > writable check in make_huge_pte is moved out to the caller for use by COW
> > later.
> > 2. Hugetlb copy-on-write requires special case handling in the following
> > situations:
> > - copy_hugetlb_page_range() - Copied pages must be write protected so a COW
> > fault will be triggered (if necessary) if those pages are written to.
> > - find_or_alloc_huge_page() - Only MAP_SHARED pages are added to the page
> > cache. MAP_PRIVATE pages still need to be locked however.
> > 3. Provide hugetlb_cow() and calls from hugetlb_fault() and hugetlb_no_page()
> > which handles the COW fault by making the actual copy.
> > 4. Remove the check in hugetlbfs_file_map() so that MAP_PRIVATE mmaps will be
> > allowed. Make MAP_HUGETLB exempt from the depricated VM_RESERVED mapping
> > check.
>
> Did you do the audit of pte protection bits I asked about? If not, I'll
> dredge them up and check to make sure.

I still don't know what you're talking about here - you never
responded to my mail asking for clarification. The hugepage code
already relies on pte_mkwrite() and pte_wrprotect() working correctly,
I don't see that COW makes any difference.

--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
-
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/