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

Francois Dugast francois.dugast at intel.com
Wed Apr 2 11:49:58 UTC 2025


This series adds new tests to stress the copy engines with multiple 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:

    $ ./build/tests/xe_render_copy --r render-stress-*
    IGT-Version: 2.0-g9357110dd (x86_64) (Linux: 6.14.0-rc3+ x86_64)
    Using IGT_SRANDOM=1743593972 for randomisation
    Opened device: /dev/dri/card0
    Starting subtest: render-stress-0-copies
    461 render() loops in 3 seconds
    Render duration: avg = 3283131 ns, min = 2164366 ns, max = 6409991 ns
    Subtest render-stress-0-copies: SUCCESS (3.228s)
    Starting subtest: render-stress-1-copies
    616 render() loops in 3 seconds
    Render duration: avg = 2055815 ns, min = 1894560 ns, max = 4476194 ns
    Subtest render-stress-1-copies: SUCCESS (3.228s)
    Starting subtest: render-stress-2-copies
    456 render() loops in 3 seconds
    Render duration: avg = 3475385 ns, min = 2506288 ns, max = 5031407 ns
    Subtest render-stress-2-copies: SUCCESS (3.233s)
    Starting subtest: render-stress-4-copies
    186 render() loops in 3 seconds
    Render duration: avg = 10001653 ns, min = 8279572 ns, max = 12589235 ns
    Subtest render-stress-4-copies: SUCCESS (3.245s)

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

v4: Follow Zbigniew's recommendation and adopt a new approach: the spinner
    is extended to optionnally perform copies. In the test, rndering only
    starts when copies are running. It runs for a defined time thanks to
    igt_until_timeout().

v5: Add XE2_ prefix to MEM_COPY_MOCS_SHIFT to make purpose clearer, fix
    documentation, use mutex to protect spinner initialization and avoid
    race

Francois Dugast (5):
  lib/intel_blt: Promote MEM_COPY_MOCS_SHIFT
  lib/xe/xe_spin: Add mem copy capability to spinner
  tests/intel/xe_spin_batch: Add basic test for mem copy from spinner
  tests/intel/xe_render_copy: Expose render duration
  tests/intel/xe_render_copy: Add new test for render under copy stress

 lib/intel_blt.c              |   3 +-
 lib/intel_blt.h              |   1 +
 lib/xe/xe_spin.c             |  14 +++
 lib/xe/xe_spin.h             |  19 +++
 tests/intel/xe_render_copy.c | 231 ++++++++++++++++++++++++++++++++++-
 tests/intel/xe_spin_batch.c  | 109 ++++++++++++++++-
 6 files changed, 372 insertions(+), 5 deletions(-)

-- 
2.43.0



More information about the igt-dev mailing list