[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