diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-05-19 15:20:38 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-05-19 16:15:07 +0100 |
commit | 99c015af48f55b63df26e3c45bbff4d3c1fcb54b (patch) | |
tree | 8f822df79100e224fa35854f138d762f12457306 /benchmarks/ezbench.d | |
parent | dc8cf567a830e9fc1557693115740cfc52fa8406 (diff) |
benchmarks: Add gem_exec_fault
If we specify an unobtainable alignment (e.g, 63bits) the kernel will
eviction the object from the GTT and fail to rebind it. We can use this,
to measure how long it takes to move objects around in the GTT by
running execbuf followed by the unbind. For small objects, this will be
dominated by the nop execution time, but for larger objects this will be
ratelimited by how fast we can rewrite the PTE.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'benchmarks/ezbench.d')
-rw-r--r-- | benchmarks/ezbench.d/gem_exec_fault.test | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/benchmarks/ezbench.d/gem_exec_fault.test b/benchmarks/ezbench.d/gem_exec_fault.test new file mode 100644 index 00000000..e9f2fcdd --- /dev/null +++ b/benchmarks/ezbench.d/gem_exec_fault.test @@ -0,0 +1,22 @@ +[ -e $IGT_BENCHMARKS/gem_exec_fault ] || return 1 +sudo -n true || return 1 + +ring=rcs # rcs bcs vcs vecs all +while read x size; do + name="gem:exec:fault:$size" + test_name="$test_name $name" + eval "${name}_run() { sudo $IGT_BENCHMARKS/gem_exec_fault -s $x -e $ring -r \$1 ; }" + + name="gem:exec:fault:$size:forked" + test_name="$test_name $name" + eval "${name}_run() { sudo $IGT_BENCHMARKS/gem_exec_fault -f -s $x -e $ring -r \$1 ; }" +done<<SIZES +4096 4KiB +65536 64KiB +1048576 1MiB +16777216 16MiB +268435456 256MiB +SIZES + +test_exec_time=3 +test_invert=1 |