1. 10 1月, 2022 1 次提交
  2. 20 10月, 2021 1 次提交
  3. 16 10月, 2021 2 次提交
  4. 05 10月, 2021 2 次提交
    • A
      drm/i915/pxp: Add plane decryption support · ef6ba31d
      Anshuman Gupta 提交于
      Add support to enable/disable PLANE_SURF Decryption Request bit.
      It requires only to enable plane decryption support when following
      condition met.
      1. PXP session is enabled.
      2. Buffer object is protected.
      
      v2:
      - Used gen fb obj user_flags instead gem_object_metadata. [Krishna]
      
      v3:
      - intel_pxp_gem_object_status() API changes.
      
      v4: use intel_pxp_is_active (Daniele)
      
      v5: rebase and use the new protected object status checker (Daniele)
      
      v6: used plane state for plane_decryption to handle async flip
          as suggested by Ville.
      
      v7: check pxp session while plane decrypt state computation. [Ville]
          removed pointless code. [Ville]
      
      v8 (Daniele): update PXP check
      
      v9: move decrypt check after icl_check_nv12_planes() when overlays
          have fb set (Juston)
      
      v10 (Daniele): update PXP check again to match rework in earlier
      patches and don't consider protection valid if the object has not
      been used in an execbuf beforehand.
      
      Cc: Bommu Krishnaiah <krishnaiah.bommu@intel.com>
      Cc: Huang Sean Z <sean.z.huang@intel.com>
      Cc: Gaurav Kumar <kumar.gaurav@intel.com>
      Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: NAnshuman Gupta <anshuman.gupta@intel.com>
      Signed-off-by: NDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Signed-off-by: NJuston Li <juston.li@intel.com>
      Reviewed-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Reviewed-by: Uma Shankar <uma.shankar@intel.com> #v9
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210924191452.1539378-14-alan.previn.teres.alexis@intel.com
      ef6ba31d
    • 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
  5. 06 9月, 2021 2 次提交
  6. 05 8月, 2021 2 次提交
  7. 19 7月, 2021 1 次提交
    • J
      drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser" · c9d9fdbc
      Jason Ekstrand 提交于
      This reverts 686c7c35 ("drm/i915/gem: Asynchronous cmdparser").  The
      justification for this commit in the git history was a vague comment
      about getting it out from under the struct_mutex.  While this may
      improve perf for some workloads on Gen7 platforms where we rely on the
      command parser for features such as indirect rendering, no numbers were
      provided to prove such an improvement.  It claims to closed two
      gitlab/bugzilla issues but with no explanation whatsoever as to why or
      what bug it's fixing.
      
      Meanwhile, by moving command parsing off to an async callback, it leaves
      us with a problem of what to do on error.  When things were synchronous,
      EXECBUFFER2 would fail with an error code if parsing failed.  When
      moving it to async, we needed another way to handle that error and the
      solution employed was to set an error on the dma_fence and then trust
      that said error gets propagated to the client eventually.  Moving back
      to synchronous will help us untangle the fence error propagation mess.
      
      This also reverts most of 0edbb9ba ("drm/i915: Move cmd parser
      pinning to execbuffer") which is a refactor of some of our allocation
      paths for asynchronous parsing.  Now that everything is synchronous, we
      don't need it.
      
      v2 (Daniel Vetter):
       - Add stabel Cc and Fixes tag
      Signed-off-by: NJason Ekstrand <jason@jlekstrand.net>
      Cc: <stable@vger.kernel.org> # v5.6+
      Fixes: 9e31c1fe ("drm/i915: Propagate errors on awaiting already signaled fences")
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: NJon Bloomfield <jon.bloomfield@intel.com>
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210714193419.1459723-2-jason@jlekstrand.net
      (cherry picked from commit 93b71330)
      Signed-off-by: NRodrigo Vivi <rodrigo.vivi@intel.com>
      c9d9fdbc
  8. 17 7月, 2021 1 次提交
    • J
      drm/i915: Revert "drm/i915/gem: Asynchronous cmdparser" · 93b71330
      Jason Ekstrand 提交于
      This reverts 686c7c35 ("drm/i915/gem: Asynchronous cmdparser").  The
      justification for this commit in the git history was a vague comment
      about getting it out from under the struct_mutex.  While this may
      improve perf for some workloads on Gen7 platforms where we rely on the
      command parser for features such as indirect rendering, no numbers were
      provided to prove such an improvement.  It claims to closed two
      gitlab/bugzilla issues but with no explanation whatsoever as to why or
      what bug it's fixing.
      
      Meanwhile, by moving command parsing off to an async callback, it leaves
      us with a problem of what to do on error.  When things were synchronous,
      EXECBUFFER2 would fail with an error code if parsing failed.  When
      moving it to async, we needed another way to handle that error and the
      solution employed was to set an error on the dma_fence and then trust
      that said error gets propagated to the client eventually.  Moving back
      to synchronous will help us untangle the fence error propagation mess.
      
      This also reverts most of 0edbb9ba ("drm/i915: Move cmd parser
      pinning to execbuffer") which is a refactor of some of our allocation
      paths for asynchronous parsing.  Now that everything is synchronous, we
      don't need it.
      
      v2 (Daniel Vetter):
       - Add stabel Cc and Fixes tag
      Signed-off-by: NJason Ekstrand <jason@jlekstrand.net>
      Cc: <stable@vger.kernel.org> # v5.6+
      Fixes: 9e31c1fe ("drm/i915: Propagate errors on awaiting already signaled fences")
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Reviewed-by: NJon Bloomfield <jon.bloomfield@intel.com>
      Acked-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210714193419.1459723-2-jason@jlekstrand.net
      93b71330
  9. 09 7月, 2021 5 次提交
  10. 21 6月, 2021 1 次提交
    • D
      drm/i915/eb: Fix pagefault disabling in the first slowpath · ca319ee9
      Daniel Vetter 提交于
      In
      
      commit ebc0808f
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Tue Oct 18 13:02:51 2016 +0100
      
          drm/i915: Restrict pagefault disabling to just around copy_from_user()
      
      we entirely missed that there's a slow path call to eb_relocate_entry
      (or i915_gem_execbuffer_relocate_entry as it was called back then)
      which was left fully wrapped by pagefault_disable/enable() calls.
      Previously any issues with blocking calls where handled by the
      following code:
      
      	/* we can't wait for rendering with pagefaults disabled */
      	if (pagefault_disabled() && !object_is_idle(obj))
      		return -EFAULT;
      
      Now at this point the prefaulting was still around, which means in
      normal applications it was very hard to hit this bug. No idea why the
      regressions in igts weren't caught.
      
      Now this all changed big time with 2 patches merged closely together.
      
      First
      
      commit 2889caa9
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Fri Jun 16 15:05:19 2017 +0100
      
          drm/i915: Eliminate lots of iterations over the execobjects array
      
      removes the prefaulting from the first relocation path, pushing it into
      the first slowpath (of which this patch added a total of 3 escalation
      levels). This would have really quickly uncovered the above bug, were
      it not for immediate adding a duct-tape on top with
      
      commit 7dd4f672
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Fri Jun 16 15:05:24 2017 +0100
      
          drm/i915: Async GPU relocation processing
      
      by pushing all all the relocation patching to the gpu if the buffer
      was busy, which avoided all the possible blocking calls.
      
      The entire slowpath was then furthermore ditched in
      
      commit 7dc8f114
      Author: Chris Wilson <chris@chris-wilson.co.uk>
      Date:   Wed Mar 11 16:03:10 2020 +0000
      
              drm/i915/gem: Drop relocation slowpath
      
      and resurrected in
      
      commit fd1500fc
      Author: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Date:   Wed Aug 19 16:08:43 2020 +0200
      
              Revert "drm/i915/gem: Drop relocation slowpath".
      
      but this did not further impact what's going on.
      
      Since pagefault_disable/enable is an atomic section, any sleeping in
      there is prohibited, and we definitely do that without gpu relocations
      since we have to wait for the gpu usage to finish before we can patch
      up the relocations.
      Reviewed-by: NMatthew Auld <matthew.auld@intel.com>
      Reviewed-by: NMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Signed-off-by: NDaniel Vetter <daniel.vetter@intel.com>
      Cc: Jon Bloomfield <jon.bloomfield@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: "Thomas Hellström" <thomas.hellstrom@linux.intel.com>
      Cc: Matthew Auld <matthew.auld@intel.com>
      Cc: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
      Cc: Dave Airlie <airlied@redhat.com>
      Cc: Jason Ekstrand <jason@jlekstrand.net>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210618214503.1773805-1-daniel.vetter@ffwll.ch
      ca319ee9
  11. 17 6月, 2021 1 次提交
  12. 15 6月, 2021 1 次提交
  13. 14 6月, 2021 1 次提交
  14. 06 6月, 2021 2 次提交
  15. 14 4月, 2021 1 次提交
  16. 25 3月, 2021 3 次提交
  17. 24 3月, 2021 3 次提交
  18. 18 3月, 2021 2 次提交
  19. 20 1月, 2021 1 次提交
  20. 09 1月, 2021 1 次提交
  21. 05 1月, 2021 1 次提交
  22. 03 1月, 2021 1 次提交
  23. 24 12月, 2020 1 次提交
  24. 18 12月, 2020 1 次提交
  25. 16 12月, 2020 2 次提交