On Mon, Feb 02, 2009 at 07:50:12PM -0800, Greg KH wrote: > On Mon, Feb 02, 2009 at 11:08:56PM +0100, Andrea Arcangeli wrote: > > Hi Greg! > > > > > Thanks for the pointers, I'll go read the thread and follow up there. > > > > If you also run into this final fix is attached below. Porting to > > mainline is a bit hard because of gup-fast... Perhaps we can use mmu > > notifiers to fix gup-fast... need to think more about it then I'll > > post something. > > > > Please help testing the below on pre-gup-fast kernels, thanks! > > Thanks a lot for the patch, I'll try this out tomorrow. before testing I recommend to make this change: - if ((flags & FOLL_WRITE) && PageAnon(page) && !PageGUP(page)) + if (PageAnon(page) && !PageGUP(page)) If gup triggers cow, gup clears FOLL_WRITE from foll_flags before calling follow_page again, I think that's why it didn't work right for everyone, it just couldn't work right if FOLL_WRITE was going away before the last follow_page run. I wanted to set PG_gup only for gup(write=1) and not for gup(write=0) but that optimization that clears FOLL_WRITE prevents the above to work right, so the simple solution is to always set PG_gup, it won't make a big difference. I'm looking at the hugetlb cow before posting an update... -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html