[PATCH i-g-t,v3 0/5] Stress copy engines during render

Francois Dugast francois.dugast at intel.com
Wed Mar 26 12:02:55 UTC 2025


This series uses existing BLT copy code to stress the copy engines with many
jobs in parallel, while measuring the impact on the execution duration of a
rendering job. This has been tested on BMG, where a typical run looks like
this:

    IGT-Version: 2.0-g21c8917a9 (x86_64) (Linux: 6.14.0-rc3+ x86_64)
    Using IGT_SRANDOM=1742990501 for randomisation
    Opened device: /dev/dri/card0
    Starting subtest: render-stress-0-copies
    Render duration: avg = 3924293 ns, min = 3187704 ns, max = 8860981 ns
    Subtest render-stress-0-copies: SUCCESS (0.404s)
    Starting subtest: render-stress-1-copies
    Render duration: avg = 2504371 ns, min = 1724688 ns, max = 3979533 ns
    Subtest render-stress-1-copies: SUCCESS (0.279s)
    Starting subtest: render-stress-2-copies
    Render duration: avg = 7610632 ns, min = 1784311 ns, max = 261435774 ns
    Subtest render-stress-2-copies: SUCCESS (0.546s)
    Starting subtest: render-stress-4-copies
    Render duration: avg = 17915510 ns, min = 1913233 ns, max = 778946986 ns
    Subtest render-stress-4-copies: SUCCESS (1.055s)
    Starting subtest: render-stress-16-copies
    Render duration: avg = 80099175 ns, min = 1620635 ns, max = 3885120584 ns
    Stack trace:
      #0 ../lib/igt_core.c:2054 __igt_fail_assert()
      #1 ../tests/intel/xe_render_copy.c:690 __igt_unique____real_main662()
      #2 ../tests/intel/xe_render_copy.c:662 main()
      #3 ../sysdeps/nptl/libc_start_call_main.h:74 __libc_start_call_main()
      #4 ../csu/libc-start.c:128 __libc_start_main@@GLIBC_2.34()
      #5 [_start+0x25]
    Subtest render-stress-16-copies: FAIL (4.246s)

v3: Rename to xe_blt_mem_copy() and promote to xe_util instead of
    lib/intel_blt as this is xe-specific

Francois Dugast (5):
  lib/xe/xe_util: Promote xe_blt_mem_copy()
  lib/intel_blt: Allow forcing multiple runs in blt_mem_copy()
  lib/xe/xe_util: Control ncopies in xe_blt_mem_copy()
  tests/intel/xe_render_copy: Expose render duration
  tests/intel/xe_render_copy: Render under copy stress

 lib/intel_blt.c              |  32 +++---
 lib/intel_blt.h              |   3 +-
 lib/xe/xe_util.c             |  56 +++++++++
 lib/xe/xe_util.h             |   3 +
 tests/intel/xe_copy_basic.c  |  36 +-----
 tests/intel/xe_render_copy.c | 217 ++++++++++++++++++++++++++++++++++-
 6 files changed, 295 insertions(+), 52 deletions(-)

-- 
2.43.0



More information about the igt-dev mailing list