1. 15 Oct, 2020 1 commit
  2. 21 May, 2020 1 commit
  3. 11 May, 2020 1 commit
  4. 09 May, 2020 2 commits
    • Janusz Krzysztofik's avatar
      i915/gem_exec_nop: Remove submission batching · 16f067ae
      Janusz Krzysztofik authored
      Execbuf requests are now submitted by subtests in batches of 1024
      repetitions.  That may be too many under some circumstances (e.g.,
      intensive logging output) and subtests may take far more time than
      expected.
      
      The reason standing behind that batching was unacceptable microsecond
      imprecision of gettime when gem_exec_nop was a benchmark rather than a
      test and time measurement was looking for a precision of ~100 ns.
      Since that measurement is now mostly informative and not a pass/fail
      metric, we can be more tolerant and accept overhead of gettime after
      each submission.
      
      Remove the batching from the body of subtests which don't require
      submicrosecond precision and measure time after each execbuf request
      submission (or a group of one submission per engine).  Since there is
      one subtest - "headless" - which still requires more precise time
      measurement, don't remove the batching from nop_on_ring() helper but
      let its users request non-batched submission mode instead.  To make
      this even more flexible, change semantics of the helper argument used
      so far for returning the count of submissions completed within the
      requested time frame and use it also for passing desired batch size
      (number of iterations), then update its users to initialize that
      argument according to their individual requirements.
      
      Note that this will impact slow hpet, such as Pineview, most. But
      equally the platform themselves is slow enough that a multi-millisecond
      clock granularity is still a minor irritation.
      Suggested-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: Janusz Krzysztofik's avatarJanusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
      Reviewed-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      16f067ae
    • Janusz Krzysztofik's avatar
      i915/gem_exec_nop: Kill obsolete pass/fail metric · 6a92555e
      Janusz Krzysztofik authored
      Commit 870c774b ("igt/gem_exec_nop: Add expectancy of independent
      execution between engines") extended a "basic" subtest (now
      "basic-series") with a pass/fail metric based on comparison of parallel
      execution time to be less than an average * 2.  Since then, that limit
      has been raised quite a few times:
      - by commit 41a26b51 ("igt/gem_exec_nop: Relax parallel assertion
        for short rings") to maximum + minimum,
      - by commit 7bd4f918 ("igt/gem_exec_nop: Explain the parallel
        execution assertion") to maximum + minimum * 10/9,
      - by commit a0eebbdd ("igt/gem_exec_nop: Relax assertion for
        parallel execution") to sum * 2.
      
      With the criteria relaxed up to that extent, the purpose of that check
      has been limited to a showcase for an old GuC failure.  Since that is
      now obsolete, kill that assert.
      Suggested-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: Janusz Krzysztofik's avatarJanusz Krzysztofik <janusz.krzysztofik@linux.intel.com>
      Reviewed-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      6a92555e
  5. 07 May, 2020 1 commit
  6. 31 Mar, 2020 1 commit
  7. 07 Mar, 2020 1 commit
  8. 11 Feb, 2020 1 commit
  9. 31 Jan, 2020 1 commit
  10. 27 Jan, 2020 1 commit
  11. 15 Nov, 2019 1 commit
  12. 27 Oct, 2019 1 commit
  13. 26 Oct, 2019 1 commit
    • Chris Wilson's avatar
      lib/i915: Use explicit iterator names in for_each_engine() · 6fbb9508
      Chris Wilson authored
      Provide the iterator name as an explicit macro parameter so that it is
      known to the caller, and allows for them to properly nest loops over all
      engines.
      
      Fixes:
      ../tests/i915/gem_exec_schedule.c: In function ‘semaphore_noskip’:
      ../lib/igt_gt.h:84:44: warning: declaration of ‘e__’ shadows a previous local [-Wshadow]
        for (const struct intel_execution_engine *e__ = intel_execution_engines;\
                                                  ^~~
      ../tests/i915/gem_exec_schedule.c:653:2: note: in expansion of macro ‘for_each_physical_engine’
        for_each_physical_engine(i915, other) {
        ^~~~~~~~~~~~~~~~~~~~~~~~
      ../lib/igt_gt.h:84:44: note: shadowed declaration is here
        for (const struct intel_execution_engine *e__ = intel_execution_engines;\
                                                  ^~~
      ../tests/i915/gem_exec_schedule.c:652:2: note: in expansion of macro ‘for_each_physical_engine’
        for_each_physical_engine(i915, engine) {
        ^~~~~~~~~~~~~~~~~~~~~~~~
      ../tests/i915/gem_exec_schedule.c: In function ‘measure_semaphore_power’:
      ../lib/igt_gt.h:84:44: warning: declaration of ‘e__’ shadows a previous local [-Wshadow]
        for (const struct intel_execution_engine *e__ = intel_execution_engines;\
                                                  ^~~
      ../tests/i915/gem_exec_schedule.c:1740:3: note: in expansion of macro ‘for_each_physical_engine’
         for_each_physical_engine(i915, engine) {
         ^~~~~~~~~~~~~~~~~~~~~~~~
      ../lib/igt_gt.h:84:44: note: shadowed declaration is here
        for (const struct intel_execution_engine *e__ = intel_execution_engines;\
                                                  ^~~
      ../tests/i915/gem_exec_schedule.c:1719:2: note: in expansion of macro ‘for_each_physical_engine’
        for_each_physical_engine(i915, signaler) {
        ^~~~~~~~~~~~~~~~~~~~~~~~
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Cc: Andi Shyti <andi.shyti@intel.com>
      6fbb9508
  14. 18 Apr, 2019 1 commit
  15. 26 Mar, 2019 1 commit
  16. 23 Oct, 2018 1 commit
  17. 04 Oct, 2018 1 commit
    • Chris Wilson's avatar
      igt: Check drmModeGetResources() · 519003ca
      Chris Wilson authored
      If KMS is not supported on the device, drmModeGetResources() will return
      NULL, often this is an indication that we should not attempt to run the
      test. Although it would be preferred to use something like
      igt_require_display() as the canonical check and assert that
      drmModeGetResources() did not hit an error, it is not always practical
      as the tests do not utilize the common igt_display abstraction.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Reviewed-by: default avatarArkadiusz Hiler <arkadiusz.hiler@intel.com>
      519003ca
  18. 06 Jul, 2018 1 commit
  19. 20 Jun, 2018 1 commit
  20. 20 Mar, 2018 1 commit
  21. 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
  22. 07 Feb, 2018 1 commit
  23. 11 Dec, 2017 1 commit
  24. 29 Nov, 2017 1 commit
  25. 25 Oct, 2017 1 commit
  26. 19 Oct, 2017 1 commit
  27. 17 Oct, 2017 3 commits
  28. 29 Sep, 2017 1 commit
  29. 07 Jun, 2017 2 commits
  30. 31 May, 2017 1 commit
  31. 13 May, 2017 1 commit
  32. 12 May, 2017 1 commit
  33. 19 Apr, 2017 2 commits
  34. 21 Mar, 2017 1 commit
  35. 22 Feb, 2017 1 commit