benchmark/gem_wait: poc for benchmarking i915_wait_request overhead

One scenario under recent discussion is that of having a thundering herd
in i915_wait_request - where the overhead of waking up every waiter for
every batchbuffer was significantly impacting customer throughput. This
benchmark tries to replicate something to that effect by having a large
number of consumers generating a busy load (a large copy followed by
lots of small copies to generate lots of interrupts) and tries to wait
upon all the consumers concurrenctly (to reproduce the thundering herd
effect). To measure the overhead, we have a bunch of cpu hogs - less
kernel overhead in waiting should allow more CPU throughput.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson
2015-10-30 15:01:33 +00:00
parent fe548fab0a
commit 9024a72d29
4 changed files with 307 additions and 0 deletions
+3
View File
@@ -8,3 +8,6 @@ LDADD = $(top_builddir)/lib/libintel_tools.la $(DRM_LIBS) $(PCIACCESS_LIBS) $(CA
benchmarks_LTLIBRARIES = gem_exec_tracer.la
gem_exec_tracer_la_LDFLAGS = -module -avoid-version -no-undefined
gem_exec_tracer_la_LIBADD = -ldl
gem_wait_CFLAGS = $(AM_CFLAGS) $(THREAD_CFLAGS)
gem_wait_LDADD = $(LDADD) -lpthread