[igt-dev] [Intel-gfx] [PATCH i-g-t 1/3] i915/gem_userptr_blits: Only mlock the memfd once, not the arena

Chris Wilson chris at chris-wilson.co.uk
Wed Jan 16 09:58:16 UTC 2019


Quoting Mika Kuoppala (2019-01-16 09:47:27)
> Chris Wilson <chris at chris-wilson.co.uk> writes:
> 
> > We multiply the memfd 64k to create a 2G arena which we then attempt to
> > write into after marking read-only. Howver, when it comes to unlock the
> 
> s/Howver/However
> 
> > arena after the test, performance tanks as the kernel tries to resolve
> > the 64k repeated mappings onto the same set of pages. (Must not be a
> > very common operation!) We can get away with just mlocking the backing
> > store to prevent its eviction, which should prevent the arena mapping
> > from being freed as well.
> 
> hmm should. How are they bound?

All I'm worried about are the allocs for the pud/pmd etc, which aiui are
not freed until the pte are removed and the pte shouldn't be reaped
because the struct page are locked. However, I haven't actually verified
that mlocking the underlying pages is enough to be sure that the page
tables of the various mappings are safe from eviction. On the other
hand, munlock_vma_range doesn't scale to the abuse we put it to, and
that is causing issues for CI!
-Chris


More information about the igt-dev mailing list