1. 12 Jul, 2020 1 commit
  2. 23 Jun, 2020 1 commit
  3. 22 Jun, 2020 1 commit
  4. 31 May, 2020 1 commit
  5. 26 May, 2020 2 commits
  6. 21 May, 2020 1 commit
  7. 20 May, 2020 1 commit
  8. 18 May, 2020 1 commit
  9. 12 May, 2020 1 commit
  10. 11 May, 2020 1 commit
  11. 07 May, 2020 3 commits
  12. 06 May, 2020 1 commit
  13. 01 Apr, 2020 1 commit
  14. 18 Feb, 2020 1 commit
  15. 27 Jan, 2020 1 commit
  16. 03 Dec, 2019 1 commit
  17. 28 Nov, 2019 3 commits
    • Chris Wilson's avatar
      i915/gem_exec_schedule: Beware priority inversion from iova faults · 58705eb1
      Chris Wilson authored
      Check that if two contexts (one high priority, one low) share the same
      buffer that has taken a page fault that we do not create an implicit
      dependency between the two contexts for servicing that page fault and
      binding the vma.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Acked-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
      58705eb1
    • Chris Wilson's avatar
      i915/gem_exec_schedule: Exercise priority inversion from resource contention · bac33a15
      Chris Wilson authored
      One of the hardest priority inversion tasks to both handle and to
      simulate in testing is inversion due to resource contention. The
      challenge is that a high priority context should never be blocked by a
      low priority context, even if both are starving for resources --
      ideally, at least for some RT OSes, the higher priority context has
      first pick of the meagre resources so that it can be executed with
      minimum latency.
      
      userfaultfd allows us to handle a page fault in userspace, and so
      arbitrary impose a delay on the fault handler, creating a situation
      where a low priority context is blocked waiting for the fault. This
      blocked context should not prevent a high priority context from being
      executed. While the userfault tries to emulate a slow fault (e.g. from a
      failing swap device), it is unfortunately limited to a single object
      type: the userptr. Hopefully, we will find other ways to impose other
      starvation conditions on global resources.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Acked-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
      bac33a15
    • Chris Wilson's avatar
      i915/gem_exec_schedule: Split pi-ringfull into two tests · cf030d32
      Chris Wilson authored
      pi-ringfull uses 2 contexts that share a buffer. The intent was that the
      contexts were independent, but it was the effect of the global lock held
      by the low priority client that prevented the high priority client from
      executing. I began to add a second variant where there was a shared
      resource which may induce a priority inversion, only to notice the
      existing test already imposed a shared resource. Hence adding a second
      test to rerun pi-ringfull in both unshared and shared resource modes.
      Signed-off-by: Chris Wilson's avatarChris Wilson <chris@chris-wilson.co.uk>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
      Acked-by: default avatarMika Kuoppala <mika.kuoppala@linux.intel.com>
      cf030d32
  18. 15 Nov, 2019 1 commit
  19. 27 Oct, 2019 1 commit
  20. 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
  21. 25 Oct, 2019 1 commit
  22. 15 Oct, 2019 1 commit
  23. 29 Aug, 2019 1 commit
  24. 13 Aug, 2019 1 commit
  25. 05 Aug, 2019 1 commit
  26. 29 Jul, 2019 1 commit
  27. 23 May, 2019 1 commit
  28. 14 May, 2019 1 commit
  29. 25 Apr, 2019 2 commits
  30. 18 Apr, 2019 2 commits
  31. 17 Apr, 2019 1 commit
  32. 09 Apr, 2019 1 commit
  33. 01 Apr, 2019 1 commit