1. 21 Feb, 2019 1 commit
  2. 24 Jan, 2019 1 commit
  3. 16 Jan, 2019 1 commit
  4. 13 Jul, 2018 1 commit
  5. 10 Jul, 2018 1 commit
  6. 26 Mar, 2018 1 commit
    • Tvrtko Ursulin's avatar
      lib/dummyload: Add pollable spin batch · 9d9978af
      Tvrtko Ursulin authored
      Pollable spin batch exports a spin->running pointer which can be checked
      by dereferencing it to see if the spinner is actually executing on the
      GPU.
      
      This is useful for tests which want to make sure they do not proceed with
      their next step whilst the spinner is potentially only being processed by
      the driver and not actually executing.
      
      Pollable spinner can be created with igt_spin_batch_new_poll or
      __igt_spin_batch_new_poll, after which igt_spin_busywait_until_running can
      be used to busy wait until it is executing.
      
      v2:
       * Move READ_ONCE to igt_core.
       * Add igt_spin_busywait_until_running. (Chris Wilson)
      Signed-off-by: Tvrtko Ursulin's avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      9d9978af
  7. 07 Mar, 2018 1 commit
  8. 03 Mar, 2018 1 commit
  9. 23 Feb, 2018 1 commit
    • Chris Wilson's avatar
      Iterate over physical engines · 305ebced
      Chris Wilson authored
      We current have a single for_each_engine() iterator which we use to
      generate both a set of uABI engines and a set of physical engines.
      Determining what uABI ring-id corresponds to an actual HW engine is
      tricky, so pull that out to a library function and introduce
      for_each_physical_engine() for cases where we want to issue requests
      once on each HW ring (avoiding aliasing issues).
      
      v2: Remember can_store_dword for gem_sync
      v3: Find more open-coded for_each_physical
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Reviewed-by: Tvrtko Ursulin's avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      305ebced
  10. 21 Feb, 2018 1 commit
  11. 07 Dec, 2017 1 commit
  12. 22 Nov, 2017 1 commit
    • Tvrtko Ursulin's avatar
      tests/perf_pmu: Tests for i915 PMU API · 20d89b41
      Tvrtko Ursulin authored
      A bunch of tests for the new i915 PMU feature.
      
      Parts of the code were initialy sketched by Dmitry Rogozhkin.
      
      v2: (Most suggestions by Chris Wilson)
       * Add new class/instance based engine list.
       * Add gem_has_engine/gem_require_engine to work with class/instance.
       * Use the above two throughout the test.
       * Shorten tests to 100ms busy batches, seems enough.
       * Add queued counter sanity checks.
       * Use igt_nsec_elapsed.
       * Skip on perf -ENODEV in some tests instead of embedding knowledge locally.
       * Fix multi ordering for busy accounting.
       * Use new guranteed_usleep when sleep time is asserted on.
       * Check for no queued when idle/busy.
       * Add queued counter init test.
       * Add queued tests.
       * Consolidate and increase multiple busy engines tests to most-busy and
         all-busy tests.
       * Guarantte interrupts by using fences.
       * Test RC6 via forcewake.
      
      v3:
       * Tweak assert in interrupts subtest.
       * Sprinkle of comments.
       * Fix multi-client test which got broken in v2.
      
      v4:
       * Measured instead of guaranteed sleep.
       * Missing sync in no_sema.
       * Log busyness before asserts for debug.
       * access(2) instead of open(2) to determine if cpu0 is hotpluggable.
       * Test frequency reporting via min/max setting instead assuming.
         ^^ All above suggested by Chris Wilson. ^^
       * Drop queued subtests to match i915.
       * Use long batches with fences to ensure interrupts.
       * Test render node as well.
      
      v5:
       * Add to meson build. (Petri Latvala)
       * Use 1eN constants. (Chris Wilson)
       * Add tests for semaphore and event waiting.
      
      v6:
       * Fix interrupts subtest by polling the fence from the "outside".
         (Chris Wilson)
      
      v7:
       * Assert number of initialized engines matches the expectation.
         (Chris Wilson)
       * Warn instead of skipping if we couldn't restore the initial
         frequency. (Chris Wilson)
       * Move all asserts to after the test cleanup (just a tidy).
       * More 1eN notation for timeouts.
       * Bump the tolerance to 5% since I saw a few noisy runs with
         sampling counters.
       * Always start the PMU before submitting batches to lower
         reliance on i915 doing the delayed engine busy stats disable.
      
      v8:
       * Update for upstream engine class enum.
      
      v9:
       * Add meson build support.
      Signed-off-by: Tvrtko Ursulin's avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Chris Wilson <chris@chris-wilson.co.uk>
      Cc: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
      Reviewed-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      20d89b41
  13. 21 Nov, 2017 1 commit
  14. 25 Oct, 2017 1 commit
    • Chris Wilson's avatar
      lib/gt: Always eat the unwanted error state · e2598d4e
      Chris Wilson authored
      We only suppress the error state from the context, iff we trigger the
      GPU reset by hangcheck (igt_hang_ring). If we trigger an immediate reset
      via igt_force_gpu_reset(), we will populate the error-state but not free
      it because we thought we have it suppressed by the context parameter.
      Always eat the error after we expect a GPU reset and have not specified
      that we want to keep it.
      
      The side-effect of keeping the error-state around after we deliberately
      created it is that subsequent GPU hangs are not prominently recorded, as
      the kernel believes they are secondary hangs (and we only announce the
      first).
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: Michał Winiarski's avatarMichał Winiarski <michal.winiarski@intel.com>
      e2598d4e
  15. 19 Oct, 2017 1 commit
  16. 17 Oct, 2017 1 commit
  17. 16 Oct, 2017 1 commit
    • Vinay Belgaumkar's avatar
      lib/igt_gt: Allow non-default contexts to hang non-render rings · 7bf3bd72
      Vinay Belgaumkar authored
      This limitation does not exist in latest kernel. It was removed by this patch-
      
      commit f7978a0c581a8a840a28306f8da43e06e7fef3bf
      
      v2: Added commit id that removes the limitation(Chris Wilson)
      V3: Generic way to find if kernel supports this instead of hardcoding gens(Chris Wilson)
      v4: Optimize the if block (Daniele)
      v5: Use the same context instead of creating a dummy (Chris Wilson)
      v6: Changed comment structure and removed extra brackets, local var (Chris Wilson)
      v7: Removed some more extra brackets
      
      Cc: Michel Thierry <michel.thierry@intel.com>
      Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
      Cc: Petri Latvala <petri.latvala@intel.com>
      Signed-off-by: default avatarVinay Belgaumkar <vinay.belgaumkar@intel.com>
      Reviewed-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      7bf3bd72
  18. 06 Sep, 2017 1 commit
  19. 08 Aug, 2017 1 commit
  20. 06 Jul, 2017 2 commits
  21. 21 Jun, 2017 1 commit
    • Chris Wilson's avatar
      lib: Force global reset + uevents for hang detector · 310eaeb6
      Chris Wilson authored
      The hang detector relies on a uevent for notification and aborting the
      test. As proposed, fine-grained resets may not produce a global uevent
      and so this hang detection becomes void. As we don't expect any hang, we
      can just reduce the reset to only a global + uevent and so maintain
      functionality, and switch back to fine-grained resets afterwards.
      
      Note that any test that requires testing fine-grained resets should
      ensure that they are enabled first as igt may leave the global
      parameters in an inconsistent state.
      
      v2: Restore fine-grained resets for explict igt_allow_hang()
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Michel Thierry <michel.thierry@intel.com>
      Reviewed-by: default avatarMichel Thierry <michel.thierry@intel.com>
      310eaeb6
  22. 07 Jun, 2017 1 commit
  23. 18 May, 2017 1 commit
  24. 11 Apr, 2017 1 commit
  25. 30 Mar, 2017 1 commit
  26. 24 Mar, 2017 1 commit
  27. 23 Mar, 2017 1 commit
  28. 21 Mar, 2017 3 commits
  29. 14 Mar, 2017 1 commit
    • Chris Wilson's avatar
      lib: Squelch a pair of ignore result warnings · f6eba0b5
      Chris Wilson authored
      igt_debugfs.c: In function 'igt_drop_caches_has':
      igt_debugfs.c:890:9: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]
         fscanf(file, "0x%" PRIx64, &mask);
               ^
        CC       igt_aux.lo
        CC       igt_gt.lo
      igt_gt.c: In function 'igt_force_gpu_reset':
      igt_gt.c:382:8: warning: ignoring return value of 'fscanf', declared with attribute warn_unused_result [-Wunused-result]
        fscanf(file, "%d", &wedged);
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      f6eba0b5
  30. 08 Mar, 2017 1 commit
  31. 07 Mar, 2017 1 commit
  32. 04 Feb, 2017 1 commit
  33. 02 Jan, 2017 1 commit
  34. 11 Nov, 2016 1 commit
  35. 13 Oct, 2016 1 commit
  36. 13 Sep, 2016 1 commit
  37. 04 Jul, 2016 1 commit