On Fri, Aug 21, 2020 at 12:38:03PM +0100, Chris Wilson wrote: > In the version I tested, I also had > > @@ -2216,7 +2216,7 @@ static int apply_to_pte_range(struct mm_struct *mm, pmd_t *pmd, > > if (create) { > pte = (mm == &init_mm) ? > - pte_alloc_kernel(pmd, addr) : > + pte_alloc_kernel_track(pmd, addr, mask) : > pte_alloc_map_lock(mm, pmd, addr, &ptl); > if (!pte) > return -ENOMEM; > > And that PGTBL_PMD_MODIFIED makes a difference. Right, thanks. Added that too.