Skip to content
  1. Dec 14, 2023
  2. Dec 13, 2023
  3. Dec 11, 2023
  4. Dec 08, 2023
  5. Dec 07, 2023
    • Tvrtko Ursulin's avatar
      drm/i915: Use internal class when counting engine resets · cf9cb028
      Tvrtko Ursulin authored
      Commit 50357944 ("drm/i915/gsc: Mark internal GSC engine with reserved uabi class")
      made the GSC0 engine not have a valid uabi class and so broke the engine
      reset counting, which in turn was made class based in cb823ed9
      
       ("drm/i915/gt: Use intel_gt as the primary object for handling resets").
      
      Despite the title and commit text of the latter is not mentioning it (and
      has left the storage array incorrectly sized), tracking by class, despite
      it adding aliasing in hypthotetical multi-tile systems, is handy for
      virtual engines which for instance do not have a valid engine->id.
      
      Therefore we keep that but just change it to use the internal class which
      is always valid. We also add a helper to increment the count, which
      aligns with the existing getter.
      
      What was broken without this fix were out of bounds reads every time a
      reset would happen on the GSC0 engine, or during selftests when storing
      and cross-checking the counts in igt_live_test_begin and
      igt_live_test_end.
      
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Fixes: dfed6b58
      
       ("drm/i915/gsc: Mark internal GSC engine with reserved uabi class")
      [tursulin: fixed Fixes tag]
      Reported-by: default avatarAlan Previn Teres Alexis <alan.previn.teres.alexis@intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231201122109.729006-2-tvrtko.ursulin@linux.intel.com
      cf9cb028
    • Tvrtko Ursulin's avatar
      drm/i915/selftests: Fix engine reset count storage for multi-tile · 0647ece3
      Tvrtko Ursulin authored
      
      
      Engine->id namespace is per-tile so struct igt_live_test->reset_engine[]
      needs to be two-dimensional so engine reset counts from all tiles can be
      stored with no aliasing. With aliasing, if we had a real multi-tile
      platform, the reset counts would be incorrect for same engine instance on
      different tiles.
      
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Fixes: 0c29efa2
      
       ("drm/i915/selftests: Consider multi-gt instead of to_gt()")
      Reported-by: default avatarAlan Previn Teres Alexis <alan.previn.teres.alexis@intel.com>
      Cc: Tejas Upadhyay <tejas.upadhyay@intel.com>
      Cc: Andi Shyti <andi.shyti@linux.intel.com>
      Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Reviewed-by: default avatarAndi Shyti <andi.shyti@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231201122109.729006-1-tvrtko.ursulin@linux.intel.com
      0647ece3
  6. Dec 01, 2023
    • John Harrison's avatar
      drm/i915/guc: Add a selftest for FAST_REQUEST errors · 706785c1
      John Harrison authored
      
      
      There is a mechanism for reporting errors from fire and forget H2G
      messages. This is the only way to find out about almost any error in
      the GuC backend submission path. So it would be useful to know that it
      is working.
      
      v2: Fix some dumb over-complications and a couple of typos - review
      feedback from Daniele.
      
      Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
      Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231114010016.234570-3-John.C.Harrison@Intel.com
      706785c1
    • John Harrison's avatar
      drm/i915/guc: Fix for potential false positives in GuC hang selftest · b7d2a4da
      John Harrison authored
      
      
      Noticed that the hangcheck selftest is submitting a non-preemptoble
      spinner. That means that even if the GuC does not die, the heartbeat
      will still kick in and trigger a reset. Which is rather defeating the
      purpose of the test - to verify that the heartbeat will kick in if the
      GuC itself has died. The test is deliberately killing the GuC, so it
      should never hit the case of a non-dead GuC. But it is not impossible
      that the kill might fail at some future point due to other driver
      re-work.
      
      So, make the spinner pre-emptible. That way the heartbeat can get
      through if the GuC is alive and context switching. Thus a reset only
      happens if the GuC dies. Thus, if the kill should stop working the
      test will now fail rather than claim to pass.
      
      Signed-off-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
      Reviewed-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231114010016.234570-2-John.C.Harrison@Intel.com
      b7d2a4da
  7. Nov 30, 2023
  8. Nov 29, 2023
  9. Nov 22, 2023
  10. Nov 20, 2023
  11. Nov 18, 2023
  12. Nov 17, 2023
    • Daniele Ceraolo Spurio's avatar
      drm/i915/huc: Stop printing about unsupported HuC on MTL · d3715a64
      Daniele Ceraolo Spurio authored
      
      
      On MTL, the HuC is only supported on the media GT, so our validation
      check on the module parameter detects an inconsistency on the root GT
      (the modparams asks to enable HuC, but the support is not there) and
      prints the following info message:
      
      [drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!
      
      This can be confusing to the user and make them think that something is
      wrong when it isn't, so we need to silence it.
      Given that any platform that supports HuC also supports GuC, if a user
      tries to enable HuC on a platform that really doesn't support it they'll
      already see a message about GuC not being supported, so instead of just
      silencing the HuC message on newer platforms we can just get rid of it
      entirely.
      
      Signed-off-by: default avatarDaniele Ceraolo Spurio <daniele.ceraolospurio@intel.com>
      Cc: John Harrison <john.c.harrison@intel.com>
      Reviewed-by: default avatarJohn Harrison <John.C.Harrison@Intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231109235436.2349963-1-daniele.ceraolospurio@intel.com
      d3715a64
  13. Nov 16, 2023
  14. Nov 10, 2023
  15. Nov 09, 2023
    • Sam James's avatar
      drm: i915: Adapt to -Walloc-size · bae9fca9
      Sam James authored
      
      
      GCC 14 introduces a new -Walloc-size included in -Wextra which errors out
      like:
      ```
      drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c: In function ‘eb_copy_relocations’:
      drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:1681:24: error: allocation of insufficient size ‘1’ for type ‘struct drm_i915_gem_relocation_entry’ with size ‘32’ [-Werror=alloc-size]
       1681 |                 relocs = kvmalloc_array(size, 1, GFP_KERNEL);
            |                        ^
      
      ```
      
      So, just swap the number of members and size arguments to match the prototype, as
      we're initialising 1 element of size `size`. GCC then sees we're not
      doing anything wrong.
      
      Signed-off-by: default avatarSam James <sam@gentoo.org>
      Reviewed-by: default avatarJani Nikula <jani.nikula@intel.com>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20231107215538.1891359-1-sam@gentoo.org
      bae9fca9
  16. Nov 08, 2023
  17. Nov 07, 2023
  18. Nov 06, 2023
  19. Nov 03, 2023
  20. Nov 02, 2023
  21. Oct 31, 2023