[RFC 0/8] Tracepoints cleanup and improvements for requests

Tvrtko Ursulin
2017-01-27T12:01:40Z

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

During some performance analysis I have noticed that currently our trace points
are in a bit of a mess, especially the ones relating to requests.

This series attempts to tidy some of that and also adds some new trace points.

These new trace points are usable to analyze the engine utilization and also
look at how the scheduler resolves dependencies and fences, how much time
requests spend being blocked, and so on.

With some post-processing the new trace points can be used to generate request
and engine timeline graphs like for example the on on this URL:

https://people.freedesktop.org/~tursulin/trace-demo.html

If people find this interesting we could also merge the post-processing tool
to IGT. Although ideally, someone more versed in GUI development could pick up
on the general idea an implement something better than the not very scalable
or precise JS library I have used to prototype this.

Current way of getting to the graphs is essentially:

perf record -e <list-of-events> -a -c 1 binary-to-be-traced
perf script | trace.pl >output.html

Tvrtko

Tvrtko Ursulin (8):
drm/i915/tracepoints: Tidy request event class
drm/i915/tracepoints: Adjust i915_gem_ring_dispatch
drm/i915/tracepoints: Tidy i915_gem_request_wait_begin
drm/i915/tracepoints: Remove unused i915_gem_request_complete
drm/i915/tracepoints: Add request submit and execute tracepoints
drm/i915/tracepoints: Rename i915_gem_request_notify
drm/i915/tracepoints: Add backend level request in and out tracepoints
drm/i915/tracepoints: Add hw_id to context tracepoints

drivers/gpu/drm/i915/Kconfig.debug | 11 +++
drivers/gpu/drm/i915/i915_gem_execbuffer.c | 4 +-
drivers/gpu/drm/i915/i915_gem_request.c | 2 +
drivers/gpu/drm/i915/i915_guc_submission.c | 2 +
drivers/gpu/drm/i915/i915_irq.c | 2 +-
drivers/gpu/drm/i915/i915_trace.h | 122 ++++++++++++++++++++++++-----
drivers/gpu/drm/i915/intel_lrc.c | 4 +
7 files changed, 124 insertions(+), 23 deletions(-)

--
2.7.4