All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC v4 0/7] Per-context and per-client engine busyness
@ 2018-04-17 12:27 ` Tvrtko Ursulin
  0 siblings, 0 replies; 27+ messages in thread
From: Tvrtko Ursulin @ 2018-04-17 12:27 UTC (permalink / raw)
  To: igt-dev; +Cc: Intel-gfx

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 40.80, 27.11,  1.50;  882/ 950 MHz;    0% RC6;  13.26 Watts;   261903 irqs/s

      IMC reads:     5543 MiB/s
     IMC writes:      236 MiB/s

          ENGINE      BUSY                            QD     MI_SEMA MI_WAIT
     Render/3D/0    60.47% |███████████▍       |  28   0   1      0%      0%
       Blitter/0    92.70% |█████████████████▌ |   0   0   1      0%      0%
         Video/0   100.00% |███████████████████|  15  37   2      0%      0%
         Video/1    51.68% |█████████▊         |   0   0   1      0%      0%
  VideoEnhance/0     0.00% |                   |   0   0   0      0%      0%

  PID            NAME   rcs0       bcs0       vcs0       vcs1       vecs0
21664        gem_wsim |█████▍   ||         ||█████████||████▋    ||         |
21662     gem_latency |         ||████████▎||         ||         ||         |
21662     gem_latency |         ||         ||         ||         ||         |

Hopefully the screen shot is self-explanatory. It shows overall GPU per-engine
stats, plus per-client and per-engine busyness.

In this version all review feedback has been incorporated and the context param
query for DCG is back as the last patch. (DCG should only need patches 1-2 & 7).

For the rest I kept the interface as sysfs in hope it would have the advantage
of solving the access control one day. (Setting ownership on sysfs nodes to
follow the DRM client? Still have to investigate this angle.)

This time around I won't be sending the IGT patches since I am building it all
on top of engine queue depths, and on top of the intel-gpu-top rewrite. Both are
unmerged so sending it all just to show this would be a bit much.

Tvrtko Ursulin (7):
  drm/i915: Use seqlock in engine stats
  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
  drm/i915: Allow clients to query own per-engine busyness

 drivers/gpu/drm/i915/i915_drv.h         |  39 +++++++
 drivers/gpu/drm/i915/i915_gem.c         | 192 ++++++++++++++++++++++++++++++--
 drivers/gpu/drm/i915/i915_gem_context.c | 121 +++++++++++++++++++-
 drivers/gpu/drm/i915/i915_gem_context.h |   8 ++
 drivers/gpu/drm/i915/i915_sysfs.c       |  80 +++++++++++++
 drivers/gpu/drm/i915/intel_engine_cs.c  |  50 +++++++--
 drivers/gpu/drm/i915/intel_lrc.c        |  14 ++-
 drivers/gpu/drm/i915/intel_ringbuffer.h |  66 +++++++++--
 include/uapi/drm/i915_drm.h             |  21 ++++
 9 files changed, 553 insertions(+), 38 deletions(-)

-- 
2.14.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 27+ messages in thread

end of thread, other threads:[~2018-04-17 13:51 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-17 12:27 [RFC v4 0/7] Per-context and per-client engine busyness Tvrtko Ursulin
2018-04-17 12:27 ` [igt-dev] " Tvrtko Ursulin
2018-04-17 12:27 ` [PATCH 1/7] drm/i915: Use seqlock in engine stats Tvrtko Ursulin
2018-04-17 12:27   ` [igt-dev] " Tvrtko Ursulin
2018-04-17 12:47   ` Chris Wilson
2018-04-17 12:47     ` [igt-dev] " Chris Wilson
2018-04-17 12:27 ` [RFC 2/7] drm/i915: Track per-context engine busyness Tvrtko Ursulin
2018-04-17 12:27   ` [Intel-gfx] " Tvrtko Ursulin
2018-04-17 12:58   ` [igt-dev] " Chris Wilson
2018-04-17 12:58     ` Chris Wilson
2018-04-17 12:27 ` [RFC 3/7] drm/i915: Expose list of clients in sysfs Tvrtko Ursulin
2018-04-17 12:27   ` [igt-dev] " Tvrtko Ursulin
2018-04-17 12:27 ` [RFC 4/7] drm/i915: Update client name on context create Tvrtko Ursulin
2018-04-17 12:27   ` [igt-dev] " Tvrtko Ursulin
2018-04-17 12:27 ` [RFC 5/7] drm/i915: Expose per-engine client busyness Tvrtko Ursulin
2018-04-17 12:27   ` [igt-dev] " Tvrtko Ursulin
2018-04-17 12:27 ` [RFC 6/7] drm/i915: Add sysfs toggle to enable per-client engine stats Tvrtko Ursulin
2018-04-17 12:27   ` [Intel-gfx] " Tvrtko Ursulin
2018-04-17 13:51   ` Chris Wilson
2018-04-17 13:51     ` [Intel-gfx] " Chris Wilson
2018-04-17 12:27 ` [RFC 7/7] drm/i915: Allow clients to query own per-engine busyness Tvrtko Ursulin
2018-04-17 12:27   ` [Intel-gfx] " Tvrtko Ursulin
2018-04-17 12:39 ` [RFC v4 0/7] Per-context and per-client engine busyness Chris Wilson
2018-04-17 12:39   ` [Intel-gfx] " Chris Wilson
2018-04-17 12:59 ` ✗ Fi.CI.CHECKPATCH: warning for Per-context and per-client engine busyness (rev5) Patchwork
2018-04-17 13:02 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-04-17 13:16 ` ✗ Fi.CI.BAT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.