Re: [PATCH] mm: Track page table modifications in __apply_to_page_range() construction

From: Chris Wilson
Date: Fri Aug 21 2020 - 07:38:50 EST


Quoting Chris Wilson (2020-08-21 11:39:19)
> Quoting Joerg Roedel (2020-08-21 11:23:43)
> > On Fri, Aug 21, 2020 at 11:13:36AM +0100, Chris Wilson wrote:
> > > We need to store the initial addr, as here addr == end [or earlier on
> > > earlier], so range is (start, addr).
> >
> > Right, I missed that, thanks for pointing it out.
>
> And with that (start, addr)
>
> Tested-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> #x86-32

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.
-Chris