summaryrefslogtreecommitdiff
path: root/benchmarks/ezbench.d
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2016-05-19 15:20:38 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2016-05-19 16:15:07 +0100
commit99c015af48f55b63df26e3c45bbff4d3c1fcb54b (patch)
tree8f822df79100e224fa35854f138d762f12457306 /benchmarks/ezbench.d
parentdc8cf567a830e9fc1557693115740cfc52fa8406 (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.test22
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