1. 23 12月, 2021 1 次提交
  2. 21 12月, 2021 1 次提交
  3. 25 11月, 2021 1 次提交
  4. 23 11月, 2021 1 次提交
  5. 02 11月, 2021 1 次提交
  6. 22 10月, 2021 1 次提交
  7. 20 10月, 2021 1 次提交
  8. 05 10月, 2021 1 次提交
    • D
      drm/i915/pxp: interfaces for using protected objects · d3ac8d42
      Daniele Ceraolo Spurio 提交于
      This api allow user mode to create protected buffers and to mark
      contexts as making use of such objects. Only when using contexts
      marked in such a way is the execution guaranteed to work as expected.
      
      Contexts can only be marked as using protected content at creation time
      (i.e. the parameter is immutable) and they must be both bannable and not
      recoverable. Given that the protected session gets invalidated on
      suspend, contexts created this way hold a runtime pm wakeref until
      they're either destroyed or invalidated.
      
      All protected objects and contexts will be considered invalid when the
      PXP session is destroyed and all new submissions using them will be
      rejected. All intel contexts within the invalidated gem contexts will be
      marked banned. Userspace can detect that an invalidation has occurred via
      the RESET_STATS ioctl, where we report it the same way as a ban due to a
      hang.
      
      v5: squash patches, rebase on proto_ctx, update kerneldoc
      
      v6: rebase on obj create_ext changes
      
      v7: Use session counter to check if an object it valid, hold wakeref in
          context, don't add a new flag to RESET_STATS (Daniel)
      
      v8: don't increase guilty count for contexts banned during pxp
          invalidation (Rodrigo)
      
      v9: better comments, avoid wakeref put race between pxp_inval and
          context_close, add usage examples (Rodrigo)
      
      v10: modify internal set/get-protected-context functions to not
           return -ENODEV when setting PXP param to false or getting param
           when running on pxp-unsupported hw or getting param when i915
           was built with CONFIG_PXP off
      Signed-off-by: NAlan Previn <alan.previn.teres.alexis@intel.com>
      Signed-off-by: NDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Signed-off-by: NBommu Krishnaiah <krishnaiah.bommu@intel.com>
      Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
      Cc: Jason Ekstrand <jason@jlekstrand.net>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210924191452.1539378-11-alan.previn.teres.alexis@intel.com
      d3ac8d42
  9. 01 10月, 2021 1 次提交
    • T
      drm/i915/ttm: Rework object initialization slightly · 068396bb
      Thomas Hellström 提交于
      We may end up in i915_ttm_bo_destroy() in an error path before the
      object is fully initialized. In that case it's not correct to call
      __i915_gem_free_object(), because that function
      a) Assumes the gem object refcount is 0, which it isn't.
      b) frees the placements which are owned by the caller until the
      init_object() region ops returns successfully. Fix this by providing
      a lightweight cleanup function __i915_gem_object_fini() which is also
      called by __i915_gem_free_object().
      
      While doing this, also make sure we call dma_resv_fini() as part of
      ordinary object destruction and not from the RCU callback that frees
      the object. This will help track down bugs where the object is incorrectly
      locked from an RCU lookup.
      
      Finally, make sure the object isn't put on the region list until it's
      either locked or fully initialized in order to block list processing of
      partially initialized objects.
      
      v2:
      - The TTM object backend memory was freed before the gem pages were
        put. Separate this functionality into __i915_gem_object_pages_fini()
        and call it from the TTM delete_mem_notify() callback.
      v3:
      - Include i915_gem_object_free_mmaps() in __i915_gem_object_pages_fini()
        to make sure we don't inadvertedly introduce a race.
      
      Fixes: 48b09612 ("drm/i915: Move __i915_gem_free_object to ttm_bo_destroy")
      Signed-off-by: NThomas Hellström <thomas.hellstrom@linux.intel.com>
      Reviewed-by: Matthew Auld <matthew.auld@intel.com> #v1
      Link: https://patchwork.freedesktop.org/patch/msgid/20210930113236.583531-1-thomas.hellstrom@linux.intel.com
      068396bb
  10. 28 7月, 2021 1 次提交
  11. 26 7月, 2021 2 次提交
  12. 22 7月, 2021 1 次提交
    • D
      drm/i915: Ditch i915 globals shrink infrastructure · 4f62a7e0
      Daniel Vetter 提交于
      This essentially reverts
      
      commit 84a10749
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Wed Jan 24 11:36:08 2018 +0000
      
          drm/i915: Shrink the GEM kmem_caches upon idling
      
      mm/vmscan.c:do_shrink_slab() is a thing, if there's an issue with it
      then we need to fix that there, not hand-roll our own slab shrinking
      code in i915.
      
      Also when this was added there was only one other caller of
      kmem_cache_shrink (added 2005 to the acpi code). Now there's a 2nd one
      outside of i915 code in a kunit test, which seems legit since that
      wants to very carefully control what's in the kmem_cache. This out of
      a total of over 500 calls to kmem_cache_create. This alone should have
      been warning sign enough that we're doing something silly.
      
      Noticed while reviewing a patch set from Jason to fix up some issues
      in our i915_init() and i915_exit() module load/cleanup code. Now that
      i915_globals.c isn't any different than normal init/exit functions, we
      should convert them over to one unified table and remove
      i915_globals.[hc] entirely.
      
      v2: Improve commit message (Jason)
      Reviewed-by: NJason Ekstrand <jason@jlekstrand.net>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jason Ekstrand <jason@jlekstrand.net>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210721183229.4136488-1-daniel.vetter@ffwll.ch
      4f62a7e0
  13. 09 7月, 2021 1 次提交
  14. 30 6月, 2021 2 次提交
  15. 25 6月, 2021 1 次提交
  16. 11 6月, 2021 2 次提交
  17. 02 6月, 2021 1 次提交
  18. 01 6月, 2021 1 次提交
  19. 04 5月, 2021 1 次提交
    • M
      drm/i915/uapi: implement object placement extension · 2459e56f
      Matthew Auld 提交于
      Add new extension to support setting an immutable-priority-list of
      potential placements, at creation time.
      
      If we use the normal gem_create or gem_create_ext without the
      extensions/placements then we still get the old behaviour with only
      placing the object in system memory.
      
      v2(Daniel & Jason):
          - Add a bunch of kernel-doc
          - Simplify design for placements extension
      
      Testcase: igt/gem_create/create-ext-placement-sanity-check
      Testcase: igt/gem_create/create-ext-placement-each
      Testcase: igt/gem_create/create-ext-placement-all
      Signed-off-by: NMatthew Auld <matthew.auld@intel.com>
      Signed-off-by: NCQ Tang <cq.tang@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@linux.intel.com>
      Cc: Jordan Justen <jordan.l.justen@intel.com>
      Cc: Daniel Vetter <daniel.vetter@intel.com>
      Cc: Kenneth Graunke <kenneth@whitecape.org>
      Cc: Jason Ekstrand <jason@jlekstrand.net>
      Cc: Dave Airlie <airlied@gmail.com>
      Cc: dri-devel@lists.freedesktop.org
      Cc: mesa-dev@lists.freedesktop.org
      Reviewed-by: NKenneth Graunke <kenneth@whitecape.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210429103056.407067-6-matthew.auld@intel.com
      2459e56f
  20. 25 3月, 2021 2 次提交
  21. 24 3月, 2021 1 次提交
  22. 22 1月, 2021 1 次提交
    • I
      drm/i915/gem: Add a helper to read data from a GEM object page · 5fbc2c2b
      Imre Deak 提交于
      Add a simple helper to read data with the CPU from the page of a GEM
      object. Do the read either via a kmap if the object has struct pages
      or an iomap otherwise. This is needed by the next patch, reading a u64
      value from the object (w/o requiring the obj to be mapped to the GPU).
      
      Suggested by Chris.
      
      v2 (Chris):
      - Sanitize the type and order of func params.
      - Avoid consts requiring too many casts.
      - Use BUG_ON instead of WARN_ON, simplify the conditions.
      - Fix __iomem sparse errors.
      - Leave locking/syncing/pinning up to the caller, require only that the
        caller has pinned the object pages.
      - Check for iomem backing store before reading via an iomap.
      v3:
      - Fix offset passed to io_mapping_map_wc() missing a mem.region.start
        delta. (Chris, Matthew)
      
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.william.auld@gmail.com>
      Signed-off-by: NImre Deak <imre.deak@intel.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210120213834.1435710-1-imre.deak@intel.com
      5fbc2c2b
  23. 20 1月, 2021 1 次提交
  24. 06 10月, 2020 1 次提交
    • T
      drm/i915: Fix DMA mapped scatterlist lookup · 934941ed
      Tvrtko Ursulin 提交于
      As the previous patch fixed the places where we walk the whole scatterlist
      for DMA addresses, this patch fixes the random lookup functionality.
      
      To achieve this we have to add a second lookup iterator and add a
      i915_gem_object_get_sg_dma helper, to be used analoguous to existing
      i915_gem_object_get_sg_dma. Therefore two lookup caches are maintained per
      object and they are flushed at the same point for simplicity. (Strictly
      speaking the DMA cache should be flushed from i915_gem_gtt_finish_pages,
      but today this conincides with unsetting of the pages in general.)
      
      Partial VMA view is then fixed to use the new DMA lookup and properly
      query sg length.
      
      v2:
       * Checkpatch.
      Signed-off-by: NTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Cc: Lu Baolu <baolu.lu@linux.intel.com>
      Cc: Tom Murphy <murphyt7@tcd.ie>
      Cc: Logan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChris Wilson <chris@chris-wilson.co.uk>
      Link: https://patchwork.freedesktop.org/patch/msgid/20201006092508.1064287-2-tvrtko.ursulin@linux.intel.com
      934941ed
  25. 25 9月, 2020 1 次提交
  26. 03 7月, 2020 2 次提交
  27. 01 7月, 2020 1 次提交
  28. 30 5月, 2020 2 次提交
  29. 04 5月, 2020 1 次提交
  30. 24 4月, 2020 1 次提交
  31. 02 4月, 2020 1 次提交
  32. 02 3月, 2020 1 次提交
  33. 22 2月, 2020 1 次提交
  34. 11 2月, 2020 1 次提交