1. 26 6月, 2015 1 次提交
  2. 24 6月, 2015 3 次提交
  3. 23 6月, 2015 5 次提交
  4. 15 6月, 2015 2 次提交
  5. 30 5月, 2015 1 次提交
  6. 20 5月, 2015 1 次提交
  7. 08 5月, 2015 5 次提交
  8. 30 4月, 2015 1 次提交
  9. 24 4月, 2015 6 次提交
  10. 20 4月, 2015 5 次提交
  11. 10 4月, 2015 10 次提交
    • M
      drm/i915: Move vm page allocation in proper place · 1d335d1b
      Mika Kuoppala 提交于
      Move to i915_vma_bind as it is part of the binding.
      Suggested-by: NChris Wilson <chris@chris-wilson.co.uk>
      Cc: Michel Thierry <michel.thierry@intel.com>
      Signed-off-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      1d335d1b
    • C
      drm/i915: Use a separate slab for vmas · e20d2ab7
      Chris Wilson 提交于
      vma are more frequently allocated than objects and so should equally
      benefit from having a dedicated slab.
      Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e20d2ab7
    • M
      drm/i915: Use complete address space in true PPGTT · a4e0bedc
      Michel Thierry 提交于
      True PPGTT is capable of having a full address space, even if the system
      has less allocated memory.
      
      Note that aliasing PPGTT always aliases the GGTT and thus should remain
      of the same size.
      Signed-off-by: NMichel Thierry <michel.thierry@intel.com>
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      a4e0bedc
    • M
      drm/i915/gen8: Dynamic page table allocations · d7b2633d
      Michel Thierry 提交于
      This finishes off the dynamic page tables allocations, in the legacy 3
      level style that already exists. Most everything has already been setup
      to this point, the patch finishes off the enabling by setting the
      appropriate function pointers.
      
      In LRC mode, contexts need to know the PDPs when they are populated. With
      dynamic page table allocations, these PDPs may not exist yet. Check if
      PDPs have been allocated and use the scratch page if they do not exist yet.
      
      Before submission, update the PDPs in the logic ring context as PDPs
      have been allocated.
      
      v2: Update aliasing/true ppgtt allocate/teardown/clear functions for
      gen 6 & 7.
      
      v3: Rebase.
      
      v4: Remove BUG() from ppgtt_unbind_vma, but keep checking that either
      teardown_va_range or clear_range functions exist (Daniel).
      
      v5: Similar to gen6, in init, gen8_ppgtt_clear_range call is only needed
      for aliasing ppgtt. Zombie tracking was originally added for teardown
      function and is no longer required.
      
      v6: Update err_out case in gen8_alloc_va_range (missed from lastest
      rebase).
      
      v7: Rebase after s/page_tables/page_table/.
      
      v8: Updated scratch_pt check after scratch flag was removed in previous
      patch.
      
      v9: Note that lrc mode needs to be updated to support init state without
      any PDP.
      
      v10: Unmap correct page_table in gen8_alloc_va_range's error case,  clean-up
      gen8_aliasing_ppgtt_init (remove duplicated map), and initialize PTs
      during page table allocation.
      
      v11: Squashed LRC enabling commit, otherwise LRC mode would be left broken
      until it was updated to handle the init case without any PDP.
      
      v12: Do not overallocate new_pts bitmap, make alloc_gen8_temp_bitmaps
      static and don't abuse of inline functions. (Mika)
      
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v2+)
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      d7b2633d
    • M
      drm/i915/gen8: begin bitmap tracking · 33c8819f
      Michel Thierry 提交于
      Like with gen6/7, we can enable bitmap tracking with all the
      preallocations to make sure things actually don't blow up.
      
      v2: Rebased to match changes from previous patches.
      v3: Without teardown logic, rely on used_pdpes and used_pdes when
      freeing page tables.
      v4: Rebased after s/page_tables/page_table/.
      v5: Rebased after page table generalizations.
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v2+)
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      33c8819f
    • M
      drm/i915/gen8: Split out mappings · e5815a2e
      Michel Thierry 提交于
      When we do dynamic page table allocations for gen8, we'll need to have
      more control over how and when we map page tables, similar to gen6.
      In particular, DMA mappings for page directories/tables occur at allocation
      time.
      
      This patch adds the functionality and calls it at init, which should
      have no functional change.
      
      The PDPEs are still a special case for now. We'll need a function for
      that in the future as well.
      
      v2: Handle renamed unmap_and_free_page functions.
      v3: Updated after teardown_va logic was removed.
      v4: Rebase after s/page_tables/page_table/.
      v5: No longer allocate all PDPs in GEN8+ systems with less than 4GB of
      memory, and update populate_lr_context to handle this new case (proper
      tracking will be added later in the patch series).
      v6: Assign lrc page directory pointer addresses using a macro. (Mika)
      
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v2+)
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      e5815a2e
    • M
      drm/i915: Extract PPGTT param from page_directory alloc · c488dbba
      Michel Thierry 提交于
      This will be useful for when we move to 48b addressing, and the PDP isn't
      the root of the page table structure.
      
      v2: Rebase after changes for Gen8+ systems with less than 4GB of memory.
      v3: Rebase after Mika's code review.
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v2)
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      c488dbba
    • M
      drm/i915: num_pd_pages/num_pd_entries isn't useful · 09942c65
      Michel Thierry 提交于
      These values are never quite useful for dynamic allocations of the page
      tables. Getting rid of them will help prevent later confusion.
      
      v2: Updated to use unmap_and_free_pd functions.
      v3: Updated gen8_ppgtt_free after teardown logic was removed.
      v4: Rebase after s/page_tables/page_table/.
      v5: Keep allocating all page directories in GEN8+ systems with less
      than 4GB of memory. Updated gen6_for_all_pdes.
      v6: Prevent (harmless) out of range access in gen6_for_all_pdes.
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v2+)
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      09942c65
    • M
      drm/i915/gen8: Update pdp switch and point unused PDPs to scratch page · 7cb6d7ac
      Michel Thierry 提交于
      One important part of this patch is we now write a scratch page
      directory into any unused PDP descriptors. This matters for 2 reasons,
      first, we're not allowed to just use 0, or an invalid pointer, and second,
      we must wipe out any previous contents from the last context.
      
      The latter point only matters with full PPGTT. The former point only
      effect platforms with less than 4GB memory.
      
      v2: Updated commit message to point that we must set unused PDPs to the
      scratch page.
      
      v3: Unmap scratch_pd in gen8_ppgtt_free.
      
      v4: Initialize scratch_pd. (Mika)
      
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v2+)
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      7cb6d7ac
    • M
      drm/i915/gen8: pagetable allocation rework · 5441f0cb
      Michel Thierry 提交于
      Start using gen8_for_each_pde macro to allocate page tables.
      
      v2: teardown_va_range references removed.
      v3: Rebase after s/page_tables/page_table/.
      v4: Keep setting up page tables for all page directories in systems with
      less than 4GB of memory.
      v5: Also initialize the page tables. (Mika)
      v6: Initialize all page tables, including the extra ones from systems
      with less than 4GB of memory. (Mika)
      
      Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
      Signed-off-by: NBen Widawsky <ben@bwidawsk.net>
      Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v2+)
      Reviewed-by: NMika Kuoppala <mika.kuoppala@intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      5441f0cb