Hello Hugh On Mon, Jan 7, 2013 at 3:06 AM, Hugh Dickins <hu...@google.com> wrote: > I don't entirely like your patch (or the original code): shouldn't > there be a wait_split_huge_page(), rather than hammering back with > repeated faults until the split has completed? > I take another try with waiting added, take a look please.
Hillf --- --- a/mm/memory.c Sun Jan 6 19:49:50 2013 +++ b/mm/memory.c Mon Jan 7 20:16:14 2013 @@ -3710,6 +3710,11 @@ retry: return do_huge_pmd_numa_page(mm, vma, address, orig_pmd, pmd); + /* Check if pmd is stable */ + if (pmd_trans_splitting(orig_pmd)) { + wait_split_huge_page(vma->anon_vma, pmd); + goto retry; + } if (dirty && !pmd_write(orig_pmd)) { ret = do_huge_pmd_wp_page(mm, vma, address, pmd, orig_pmd); -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/