From: Robert Bragg <robert@sixbynine.org>
To: intel-gfx@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie>,
ML dri-devel <dri-devel@lists.freedesktop.org>,
Sourab Gupta <sourab.gupta@intel.com>,
Deepak S <deepak.s@intel.com>,
Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH 0/9] Enable Gen 7 Observation Architecture
Date: Wed, 20 Apr 2016 15:56:40 +0100 [thread overview]
Message-ID: <CAMou1-1tsOizEvVJFcd3o=iAtYjKqFjHCMYWMnQmjMWWHOLXdg@mail.gmail.com> (raw)
In-Reply-To: <1461162194-1424-1-git-send-email-robert@sixbynine.org>
[-- Attachment #1.1: Type: text/plain, Size: 4852 bytes --]
Ah, something I forgot to highlight in the cover letter is an issue with
the "drm/i915: don't whitelist oacontrol in cmd parser" patch in this
series...
I was hoping that I could get away with this without breaking any existing
userspace, since the only userspace I know that attempts to configure
OACONTROL via LRIs is Mesa which attempts to verify that it can
successfully write to OACONTROL before exposing its current
INTEL_performance_query implementation, and it seems like it should
gracefully handle a failure here as if the command parser where disabled.
Something curious here is that this patch seemed to work as expected when
my series was recently based on a v4.5 kernel, but since rebasing last week
on a couple of different recent nightlies I'm now seeing gnome-shell
failing to run.
Incidentally, entirely disabling the command parser seems to work; but
removing just OACONTROL seems to cause trouble.
Hopefully I can get a better understanding of what's going on here, though
I can at least confirm the problem is triggered via the
intel_extensions.c:can_write_oacontrol() check in Mesa. Bypassing this
check (with a true or false status) is enough to get gnome-shell running
again.
This could be a fiddly compatibility issue if it turns out to not be
possible to remove OACONTROL from the cmd parser white list. One basic
problem that stems from here is that whenever a GL application starts and
this OACONTROL check is done it ends up resetting OACONTROL to zero which
disables the OA unit which may be in use via the i915 perf interface.
Regards,
- Robert
On Wed, Apr 20, 2016 at 3:23 PM, Robert Bragg <robert@sixbynine.org> wrote:
> I've been working on some i-g-t tests for this new interface and while I
> still
> have some more tests to write, it still seemed worth sending out another
> updated
> series in the mean time.
>
>
> Firstly this includes updates based on Emil's previous comments.
>
> Then there have been a few issue hit while writing tests:
>
> * It seems it can take a fairly long time for the MUX config to apply after
> the register writes have finished, and now the driver inserts a delay
> after
> configuration, before enabling periodic sampling.
> * I've found that sometimes the HW tail pointer can get ahead of OA buffer
> writes, especially with higher sampling frequencies, and so now the
> driver
> maintains a margin behind the HW tail pointer to ensure the most recent
> reports have some time to land before attempting to copy them to
> userspace.
> * As a sanity check that a report is valid before it's copied to userspace
> the
> driver checks the report-id field != 0
> * The _BUFFER_OVERFLOW record has been replaced with a _BUFFER_LOST record
> with
> more specific semantics.
> * Since we can't clear the overflow status on Haswell while periodic
> sampling
> is enabled, if an overflow occurs we now restart the unit.
> * The maximum OA periodic sampling exponent is now 31
> * We verify the head/tail pointers read back from HW look sane before
> using as
> offsets to read reports from the OA buffer. We reset the HW if they look
> bad.
>
>
> For reference the work-in-progress i-g-t tests can be found here:
>
> https://github.com/rib/intel-gpu-tools
> branch = wip/rib/i915-perf-tests
>
> or browsed here:
> https://github.com/rib/intel-gpu-tools/commits/wip/rib/i915-perf-tests
>
> Also for reference these patches can be fetched from here:
>
> https://github.com/rib/linux
> branch = wip/rib/oa-2016-04-19-nightly
>
> Regards,
> - Robert
>
>
> Robert Bragg (9):
> drm/i915: Add i915 perf infrastructure
> drm/i915: rename OACONTROL GEN7_OACONTROL
> 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
>
> drivers/gpu/drm/i915/Makefile | 4 +
> drivers/gpu/drm/i915/i915_cmd_parser.c | 33 +-
> drivers/gpu/drm/i915/i915_dma.c | 8 +
> drivers/gpu/drm/i915/i915_drv.h | 155 ++++
> drivers/gpu/drm/i915/i915_gem_context.c | 24 +-
> drivers/gpu/drm/i915/i915_oa_hsw.c | 658 ++++++++++++++
> drivers/gpu/drm/i915/i915_oa_hsw.h | 38 +
> drivers/gpu/drm/i915/i915_perf.c | 1439
> +++++++++++++++++++++++++++++++
> drivers/gpu/drm/i915/i915_reg.h | 340 +++++++-
> include/uapi/drm/i915_drm.h | 133 +++
> 10 files changed, 2795 insertions(+), 37 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.7.1
>
>
[-- Attachment #1.2: Type: text/html, Size: 6012 bytes --]
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
prev parent reply other threads:[~2016-04-20 14:56 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-20 14:23 [PATCH 0/9] Enable Gen 7 Observation Architecture Robert Bragg
2016-04-20 14:23 ` [PATCH 1/9] drm/i915: Add i915 perf infrastructure Robert Bragg
2016-04-20 22:41 ` Chris Wilson
2016-04-20 14:23 ` [PATCH 2/9] drm/i915: rename OACONTROL GEN7_OACONTROL Robert Bragg
2016-04-20 14:23 ` [PATCH 3/9] drm/i915: don't whitelist oacontrol in cmd parser Robert Bragg
2016-04-20 14:23 ` [PATCH 4/9] drm/i915: Add 'render basic' Haswell OA unit config Robert Bragg
2016-04-20 14:23 ` [PATCH 5/9] drm/i915: Enable i915 perf stream for Haswell OA unit Robert Bragg
2016-04-20 16:16 ` kbuild test robot
2016-04-20 20:30 ` [Intel-gfx] " kbuild test robot
2016-04-20 21:11 ` Chris Wilson
2016-04-21 16:15 ` Robert Bragg
2016-04-23 8:48 ` Chris Wilson
2016-04-20 22:15 ` Chris Wilson
2016-04-20 22:46 ` Chris Wilson
2016-04-22 11:04 ` Robert Bragg
2016-04-22 11:18 ` Chris Wilson
2016-04-20 22:52 ` Chris Wilson
2016-04-21 15:43 ` Robert Bragg
2016-04-21 16:21 ` Chris Wilson
2016-04-20 23:09 ` Chris Wilson
2016-04-21 15:18 ` Robert Bragg
2016-04-22 1:10 ` Robert Bragg
2016-04-20 23:16 ` Chris Wilson
2016-04-21 15:01 ` Robert Bragg
2016-04-23 10:34 ` Martin Peres
2016-05-03 19:34 ` Robert Bragg
2016-05-03 20:03 ` Robert Bragg
2016-05-04 9:09 ` Martin Peres
2016-05-04 9:49 ` Robert Bragg
2016-05-04 12:24 ` Daniel Vetter
2016-05-04 13:24 ` Robert Bragg
2016-05-04 13:33 ` Robert Bragg
2016-05-04 13:51 ` Daniel Vetter
2016-05-04 9:04 ` [Intel-gfx] " Martin Peres
2016-05-04 11:15 ` Robert Bragg
2016-04-20 14:23 ` [PATCH 6/9] drm/i915: advertise available metrics via sysfs Robert Bragg
2016-04-20 14:23 ` [PATCH 7/9] drm/i915: Add dev.i915.perf_event_paranoid sysctl option Robert Bragg
2016-04-20 14:23 ` [PATCH 8/9] drm/i915: add oa_event_min_timer_exponent sysctl Robert Bragg
2016-04-20 14:23 ` [PATCH 9/9] drm/i915: Add more Haswell OA metric sets Robert Bragg
2016-04-20 14:56 ` Robert Bragg [this message]
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='CAMou1-1tsOizEvVJFcd3o=iAtYjKqFjHCMYWMnQmjMWWHOLXdg@mail.gmail.com' \
--to=robert@sixbynine.org \
--cc=airlied@linux.ie \
--cc=daniel.vetter@intel.com \
--cc=deepak.s@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).