[Intel-gfx] [PATCH 12/66] drm/i915: Switch to object allocations for page directories
Matthew Auld
matthew.auld at intel.com
Mon Jul 20 10:34:10 UTC 2020
On 15/07/2020 12:50, Chris Wilson wrote:
> The GEM object is grossly overweight for the practicality of tracking
> large numbers of individual pages, yet it is currently our only
> abstraction for tracking DMA allocations. Since those allocations need
> to be reserved upfront before an operation, and that we need to break
> away from simple system memory, we need to ditch using plain struct page
> wrappers.
>
> In the process, we drop the WC mapping as we ended up clflushing
> everything anyway due to various issues across a wider range of
> platforms. Though in a future step, we need to drop the kmap_atomic
> approach which suggests we need to pre-map all the pages and keep them
> mapped.
>
> v2: Verify our large scratch page is suitably DMA aligned; and manually
> clear the scratch since we are allocating random struct pages.
>
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> Cc: Matthew Auld <matthew.auld at intel.com>
> ---
<snip>
> -
> -static struct page *vm_alloc_page(struct i915_address_space *vm, gfp_t gfp)
> -{
> - struct pagevec stack;
> - struct page *page;
> -
> - if (I915_SELFTEST_ONLY(should_fail(&vm->fault_attr, 1)))
> - i915_gem_shrink_all(vm->i915);
I guess shrink_boom et al are now mostly irrelevant in this new scheme.
Fwiw,
Reviewed-by: Matthew Auld <matthew.auld at intel.com>
More information about the Intel-gfx
mailing list