On Tue, Jan 8, 2013 at 10:03 AM, Andrea Arcangeli <aarcange@xxxxxxxxxx> wrote: > > It looks very fine to me, but I suggest to move it above the > pmd_numa() check because of the newly introduced > migrate_misplaced_transhuge_page method relying on pmd_same too. Hmm. If we need it there, then we need to fix the *later* case of pmd_numa() too: if (pmd_numa(*pmd)) return do_pmd_numa_page(mm, vma, address, pmd); Also, and more fundamentally, since do_pmd_numa_page() doesn't take the orig_pmd thing as an argument (and re-check it under the page-table lock), testing pmd_trans_splitting() on it is pointless, since it can change later. So no, moving the check up does *not* make sense, at least not without other changes. Because if I read things right, pmd_trans_splitting() really has to be done with the page-table lock protection (where "with page-table lock protection" does *not* mean that it has to be done under the page table lock, but if it is done outside, then the pmd entry has to be re-verified after getting the lock - which both do_huge_pmd_wp_page() and huge_pmd_set_accessed() correctly do). Comments? Linus -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>