[PATCH 00/20] ppgtt cleanups / scratch merge

Mika Kuoppala
2015-05-21T14:37:54Z

Hi,

My take on cleaning up more of the i915_gem_gtt.c.
The goal is to have generic tools to allocate and map
any type of paging structure.

And at the end we will have one instance of each scratch
chain type (scratch pd->pte->page) across all ppgtts,
saving 2 pages of memory per ppgtt.

Mika Kuoppala (20):
drm/i915/gtt: Mark TLBS dirty for gen8+
drm/i915: Force PD restore on dirty ppGTTs
drm/i915/gtt: Check va range against vm size
drm/i915/gtt: Allow >= 4GB sizes for vm.
drm/i915/gtt: Don't leak scratch page on mapping error
drm/i915/gtt: Remove _single from page table allocator
drm/i915/gtt: Introduce i915_page_dir_dma_addr
drm/i915/gtt: Introduce struct i915_page_dma
drm/i915/gtt: Rename unmap_and_free_px to free_px
drm/i915/gtt: Remove superfluous free_pd with gen6/7
drm/i915/gtt: Introduce fill_page_dma()
drm/i915/gtt: Introduce kmap|kunmap for dma page
drm/i915/gtt: Introduce copy_page_dma and copy_px
drm/i915/gtt: Use macros to access dma mapped pages
drm/i915/gtt: Make scratch page i915_page_dma compatible
drm/i915/gtt: Fill scratch page
drm/i915/gtt: Pin vma during virtual address allocation
drm/i915/gtt: Cleanup page directory encoding
drm/i915/gtt: Move scratch_pd and scratch_pt into vm area
drm/i915/gtt: One instance of scratch page table/directory

drivers/char/agp/intel-gtt.c | 4 +-
drivers/gpu/drm/i915/i915_debugfs.c | 44 +--
drivers/gpu/drm/i915/i915_gem.c | 6 +-
drivers/gpu/drm/i915/i915_gem_gtt.c | 662 ++++++++++++++++++++----------------
drivers/gpu/drm/i915/i915_gem_gtt.h | 55 +--
drivers/gpu/drm/i915/intel_lrc.c | 69 ++--
include/drm/intel-gtt.h | 4 +-
7 files changed, 470 insertions(+), 374 deletions(-)