[RFC 0/5] Per-client engine stats

Tvrtko Ursulin
2018-02-14T18:50:47Z

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

Another re-post of my earlier, now slightly updated work, to expose a DRM client
hierarchy in sysfs in order to enable a top like tool:

intel-gpu-top - load avg 9.47, 3.34, 0.13; 1000/ 950 MHz; 0% RC6; 5202mW; 1206 irqs/s

rcs0 100.00% ( 0.56/ 4.78/ 3.86) |██████████████████████████████████████████████████████████████████| 0.00% wait, 0.00% sema
bcs0 17.72% ( 0.81/ 0.00/ 0.17) |███████████▋ | 0.00% wait, 0.00% sema
vcs0 61.08% ( 0.81/ 0.00/ 0.63) |████████████████████████████████████████▎ | 0.00% wait, 0.00% sema
vecs0 0.00% ( 0.00/ 0.00/ 0.00) | | 0.00% wait, 0.00% sema

PID NAME rcs0 bcs0 vcs0 vecs0
9654 neverball |████████████ || || || |
7792 Xorg |████████▊ || || || |
9659 gem_wsim |████ ||████▍ ||███████████████▎ || |
7846 xfwm4 | || || || |

I'll post the IGT support for this as well. It requires both this series and
engine queue depth PMU RFC-ed recently.

Tvrtko Ursulin (5):
drm/i915: Track per-context engine busyness
drm/i915: Expose list of clients in sysfs
drm/i915: Update client name on context create
drm/i915: Expose per-engine client busyness
drm/i915: Add sysfs toggle to enable per-client engine stats

drivers/gpu/drm/i915/i915_drv.h | 31 ++++++
drivers/gpu/drm/i915/i915_gem.c | 192 ++++++++++++++++++++++++++++++--
drivers/gpu/drm/i915/i915_gem_context.c | 23 +++-
drivers/gpu/drm/i915/i915_gem_context.h | 7 ++
drivers/gpu/drm/i915/i915_sysfs.c | 80 +++++++++++++
drivers/gpu/drm/i915/intel_engine_cs.c | 29 +++++
drivers/gpu/drm/i915/intel_lrc.c | 14 ++-
drivers/gpu/drm/i915/intel_ringbuffer.h | 56 +++++++++-
8 files changed, 412 insertions(+), 20 deletions(-)

--
2.14.1