public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Daniel Vetter <daniel@ffwll.ch>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH v2 3/4] drm/i915: make assert_device_not_suspended more precise
Date: Wed, 18 Nov 2015 17:11:03 +0200	[thread overview]
Message-ID: <1447859463.14073.18.camel@intel.com> (raw)
In-Reply-To: <20151118150117.GZ20799@phenom.ffwll.local>

On ke, 2015-11-18 at 16:01 +0100, Daniel Vetter wrote:
> On Wed, Nov 18, 2015 at 04:58:46PM +0200, Imre Deak wrote:
> > On ke, 2015-11-18 at 16:44 +0200, Imre Deak wrote:
> > > On ke, 2015-11-18 at 15:37 +0100, Daniel Vetter wrote:
> > > > On Mon, Nov 09, 2015 at 09:13:45PM +0200, Imre Deak wrote:
> > > > > Atm, we assert that the device is not suspended after the point
> > > > > when the
> > > > > HW is truly put to a suspended state. This is fine, but we can
> > > > > catch
> > > > > more problems if we check the RPM refcount. After that one drops
> > > > > to
> > > > > zero
> > > > > we shouldn't access the HW any more, although the actual suspend
> > > > > may be
> > > > > delayed. The only complication is that we want to avoid asserts
> > > > > while
> > > > > the suspend handler itself is running, so add a flag to handle
> > > > > this
> > > > > case.
> > > > 
> > > > Why do we want to avoid asserts firing while we go through the
> > > > suspend
> > > > handler? Calling assert_device_not_suspended from within rpm
> > > > suspend/resume code sounds like a bug. Where/why does this happen?
> > > 
> > > Yea, disable_rpm_asserts() is misnamed. Should be
> > > disable_rpm_wakelock_asserts(). Will change that in the next
> > > iteration.
> > 
> > Ok, misunderstood your question. assert_device_not_suspended() is
> > called during runtime suspend since we're accessing the HW until the
> > point we set dev_priv->pm.suspended = true. Atm this wouldn't trigger a
> > WARN, since assert_device_not_suspended() only checks pm.suspended and
> > that will check out fine, but once we start to check HW accesses
> > against the actual RPM refcount we want to disable the asserts on those
> > in the handlers, since there the refcount is zero. Hence disabling it
> > explicitly around the handlers, but we would still keep checking
> > pm.suspended.
> 
> That seems like we're mixing up 2 asserts:
> - assert_device_not_suspended: To be used in runtime_suspend code.
> - assert_holding_rpm_wakelock (or whatever, I'm bad at names): check the
>   count.

We call this assert (atm assert_device_not_suspended()) from low level
register access helpers, so we can't distinguish between calling one or
the other assert depending on whether we are on the rpm suspend path or
not. What this patch does is to switch all the places where call
assert_device_not_suspended() to assert_rpm_wakelock_held(), since that
one provides a bigger coverage. Since this change will also affect the
low level reg access functions which are called during rpm suspend, we
need to disable part of the assert that checks for the refcount which
is known to be zero there.

Otherwise assert_rpm_wakelock_held() also includes
assert_device_not_suspended(), since that should be true in all other
cases.

> 
> What am I missing?
> -Daniel
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2015-11-18 15:11 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-09 18:20 [PATCH 0/4] drm/i915: improve the RPM device suspended assert Imre Deak
2015-11-09 18:20 ` [PATCH 1/4] drm/i915: export assert_device_not_suspended Imre Deak
2015-11-09 18:30   ` Ville Syrjälä
2015-11-09 18:43     ` Imre Deak
2015-11-09 20:52   ` Chris Wilson
2015-11-09 18:20 ` [PATCH 2/4] drm/i915: use assert_device_not_suspended instead of opencoding it Imre Deak
2015-11-09 21:04   ` Chris Wilson
2015-11-09 18:20 ` [PATCH 3/4] drm/i915: make assert_device_not_suspended more precise Imre Deak
2015-11-09 19:13   ` [PATCH v2 " Imre Deak
2015-11-09 21:44     ` Chris Wilson
2015-11-10  9:47       ` Imre Deak
2015-11-18 14:37     ` Daniel Vetter
2015-11-18 14:44       ` Imre Deak
2015-11-18 14:58         ` Imre Deak
2015-11-18 15:01           ` Daniel Vetter
2015-11-18 15:11             ` Imre Deak [this message]
2015-11-18 15:47               ` Daniel Vetter
2015-11-18 16:09                 ` Imre Deak
2015-11-09 18:20 ` [PATCH 4/4] drm/i915: add assert_device_not_suspended to GGTT PTE updaters Imre Deak
2015-11-09 18:37   ` Ville Syrjälä
2015-11-09 18:48     ` Imre Deak
2015-11-09 19:14   ` [PATCH v2 " Imre Deak
2015-11-09 21:11     ` Chris Wilson
2015-11-09 21:24       ` Imre Deak
2015-11-09 21:29         ` Imre Deak

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=1447859463.14073.18.camel@intel.com \
    --to=imre.deak@intel.com \
    --cc=daniel@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    /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