All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Bragg <robert@sixbynine.org>
To: intel-gfx@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>,
	dri-devel@lists.freedesktop.org,
	Sourab Gupta <sourab.gupta@intel.com>,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: [PATCH v3 00/11] Enable Gen 7 Observation Architecture
Date: Mon, 15 Aug 2016 15:41:17 +0100	[thread overview]
Message-ID: <20160815144128.7847-1-robert@sixbynine.org> (raw)

Mostly just a rebase on a more recent nightly, except for an update to how
POLLIN events are reported to reduce the CPU overhead that was otherwise seen
while running gputop.

The problem seen with poll was largely a fault with gputop having multiple
redundant 200ms, but out-of-phase, timers tracked in its mainloop resulting in
excessive poll wake ups due to timeouts. This was fixed, but still it
highlighted that the per-fd code that runs after a poll wait wakes (regardless
of the cause of the wake up) can easily become hot and i915 mmio reads here can
quickly jump to the top of a cpu profile.

The main value of the i915-perf poll implementation is for throttling more than
for having a quick notification of new data, so it works nicely to only rely on
the hrtimer callback that's polling for new data to be the thing that flags
POLLIN events and check for that after the wait without any mmio.


Just to plug gputop as a tool for visualising these metrics with, I'm now
automatically publishing a demo of the interface via Travis to
http://gputop.github.io which is also usable with local targets if you point a
browser at E.g.: http://gputop.github.io?target=localhost while you have the
gputop server running. Apologies that currently the demo site on its own (not
connected to real hardware) doesn't show much since it doesn't have any fake
metric values to graph, though it is possible to at least browse the different
platform metric sets and selecting individual counters will show the
description + normalization equation.  Having the web UI hosted on github
hopefully lowers the bar to trying it out since it avoids needing to set up
Emscripten first as a build dependency.

Regards,
- Robert

Robert Bragg (11):
  drm/i915: Add i915 perf infrastructure
  drm/i915: rename OACONTROL GEN7_OACONTROL
  drm/i915: return EACCES for check_cmd() failures
  drm/i915: don't whitelist oacontrol in cmd parser
  drm/i915: Add 'render basic' Haswell OA unit config
  drm/i915: Enable i915 perf stream for Haswell OA unit
  drm/i915: advertise available metrics via sysfs
  drm/i915: Add dev.i915.perf_event_paranoid sysctl option
  drm/i915: add oa_event_min_timer_exponent sysctl
  drm/i915: Add more Haswell OA metric sets
  drm/i915: Add a kerneldoc summary for i915_perf.c

 drivers/gpu/drm/i915/Makefile           |    4 +
 drivers/gpu/drm/i915/i915_cmd_parser.c  |   40 +-
 drivers/gpu/drm/i915/i915_drv.c         |    6 +
 drivers/gpu/drm/i915/i915_drv.h         |  157 +++
 drivers/gpu/drm/i915/i915_gem_context.c |   22 +-
 drivers/gpu/drm/i915/i915_oa_hsw.c      |  659 +++++++++++++
 drivers/gpu/drm/i915/i915_oa_hsw.h      |   38 +
 drivers/gpu/drm/i915/i915_perf.c        | 1615 +++++++++++++++++++++++++++++++
 drivers/gpu/drm/i915/i915_reg.h         |  340 ++++++-
 drivers/gpu/drm/i915/intel_ringbuffer.c |    7 +-
 include/uapi/drm/i915_drm.h             |  133 +++
 11 files changed, 2979 insertions(+), 42 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_oa_hsw.c
 create mode 100644 drivers/gpu/drm/i915/i915_oa_hsw.h
 create mode 100644 drivers/gpu/drm/i915/i915_perf.c

-- 
2.9.2

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

             reply	other threads:[~2016-08-15 14:41 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-15 14:41 Robert Bragg [this message]
2016-08-15 14:41 ` [PATCH v3 01/11] drm/i915: Add i915 perf infrastructure Robert Bragg
2016-08-15 14:57   ` Chris Wilson
2016-08-16 14:59     ` Robert Bragg
2016-08-16 15:08       ` Chris Wilson
2016-08-15 14:41 ` [PATCH v3 02/11] drm/i915: rename OACONTROL GEN7_OACONTROL Robert Bragg
2016-08-15 14:41 ` [PATCH v3 03/11] drm/i915: return EACCES for check_cmd() failures Robert Bragg
2016-08-15 15:04   ` Chris Wilson
2016-08-18 21:18     ` Robert Bragg
2016-08-15 14:41 ` [PATCH v3 04/11] drm/i915: don't whitelist oacontrol in cmd parser Robert Bragg
2016-08-15 14:41 ` [PATCH v3 05/11] drm/i915: Add 'render basic' Haswell OA unit config Robert Bragg
2016-08-15 14:41 ` [PATCH v3 06/11] drm/i915: Enable i915 perf stream for Haswell OA unit Robert Bragg
2016-08-15 15:47   ` Chris Wilson
2016-08-15 14:41 ` [PATCH v3 07/11] drm/i915: advertise available metrics via sysfs Robert Bragg
2016-08-15 14:41 ` [PATCH v3 08/11] drm/i915: Add dev.i915.perf_event_paranoid sysctl option Robert Bragg
2016-08-15 14:41 ` [PATCH v3 09/11] drm/i915: add oa_event_min_timer_exponent sysctl Robert Bragg
2016-08-15 14:41 ` [PATCH v3 10/11] drm/i915: Add more Haswell OA metric sets Robert Bragg
2016-08-15 14:41 ` [PATCH v3 11/11] drm/i915: Add a kerneldoc summary for i915_perf.c Robert Bragg
2016-08-15 15:13 ` ✗ Ro.CI.BAT: failure for Enable Gen 7 Observation Architecture (rev5) Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160815144128.7847-1-robert@sixbynine.org \
    --to=robert@sixbynine.org \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=sourab.gupta@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.