From: "Vivi, Rodrigo" <rodrigo.vivi@intel.com>
To: "przanoni@gmail.com" <przanoni@gmail.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: PSR: Let's rely more on frontbuffer tracking.
Date: Mon, 16 Nov 2015 20:39:00 +0000 [thread overview]
Message-ID: <1447706373.4989.85.camel@intel.com> (raw)
In-Reply-To: <CA+gsUGReur9-raAgpxpebhBexP4wA1+TaecPKGHwLx1eU7kX0Q@mail.gmail.com>
On Mon, 2015-11-16 at 16:57 -0200, Paulo Zanoni wrote:
> 2015-11-13 22:56 GMT-02:00 Rodrigo Vivi <rodrigo.vivi@intel.com>:
> > The ultimate goal here is to remove the dependency we
> > currently have on audio driver power to get PSR working.
> >
> > With audio driver runtime PM disabled the Hardware tracking
> > believes graphics is fully active and prevent PSR Entry, or
> > in other words continuously exit PSR.
> >
> > When we introduced PSR we let LPSP masked allowing us
> > to get PSR independtly from the audio runtime PM. However
> > in one of the attempts to get PSR enabled by default one
> > user reported one specific case where he would miss
> > screen updates if scrolling the firefox in a Gnome
> > environment when i915 runtime pm was enabled. So for
> > this specific case that (I could never create an i-g-t
> > test case) we decided to remove the LPSP mask and
> > let HW tracking taking care of this case. So, we
> > started depending on audio driver again.
>
> Thanks for the better commit message, but I still think there's a
> huge
> gap between the paragraph above and the paragraph below. What is
> still
> not clear to me is: what is the relationship between the LPSP mask
> problem mentioned above and the automatic page flip tracking
> mentioned
> below? In other words: why not relying on the automatic HW tracking
> solves the bug?
So, or we solve by fully relying on SW tracking or we solve by fully
relying on HW tracking. The main disadvantage on the HW tracking is
that we end up depending on audio driver. Since the SW tracking is more
mature and covering all our use cases on Linux is better to rely more
on the SW and implement the function as expected (i.e. flush =
inactivate + flush.)
>
> Also, did you do any measurements on how this patch affects PC state
> residency on the affected platforms? I expect to see some delta here.
No, I didn't. Yes, it can affect the PC residency, but it depends a lot
on the use case, the environment, etc.
Although on the idle scenario that is the one that targets maximum PC
residency we should see no difference.
>
> The patch itself looks fine. And we can always look into re-adding
> the
> HW piece after we get the current bugs sorted.
>
> With those two explained in the commit message:
> Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
I will prepare another v.
Thanks!
>
> >
> > An alternative solution that makes us indepent and also
> > solve this case is to fully rely on our frontbuffer
> > tracking that is really mature right now.
> >
> > From the frontbuffer tracking perspective the flush means
> > invalidate and flush. But without this patch for HSW, BDW
> > and SKL we just do the invalidate part when the flush wasn't
> > originated by a page flip because we were trusting the HW
> > tracking for the flip case, that is exactly the case with
> > firefox scrolling on gnome.
> >
> > So let's rely more on frontbuffer tracking and do the
> > invalidation regardless the origin as expected and for
> > all platforms.
> >
> > v2: Improve commit message as suggested by Paulo.
> >
> > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > ---
> > drivers/gpu/drm/i915/intel_psr.c | 22 +++-------------------
> > 1 file changed, 3 insertions(+), 19 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > b/drivers/gpu/drm/i915/intel_psr.c
> > index e5b3fce..b0e343c 100644
> > --- a/drivers/gpu/drm/i915/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > @@ -711,25 +711,9 @@ void intel_psr_flush(struct drm_device *dev,
> > frontbuffer_bits &= INTEL_FRONTBUFFER_ALL_MASK(pipe);
> > dev_priv->psr.busy_frontbuffer_bits &= ~frontbuffer_bits;
> >
> > - if (HAS_DDI(dev)) {
> > - /*
> > - * By definition every flush should mean invalidate
> > + flush,
> > - * however on core platforms let's minimize the
> > - * disable/re-enable so we can avoid the invalidate
> > when flip
> > - * originated the flush.
> > - */
> > - if (frontbuffer_bits && origin != ORIGIN_FLIP)
> > - intel_psr_exit(dev);
> > - } else {
> > - /*
> > - * On Valleyview and Cherryview we don't use
> > hardware tracking
> > - * so any plane updates or cursor moves don't
> > result in a PSR
> > - * invalidating. Which means we need to manually
> > fake this in
> > - * software for all flushes.
> > - */
> > - if (frontbuffer_bits)
> > - intel_psr_exit(dev);
> > - }
> > + /* By definition flush = invalidate + flush */
> > + if (frontbuffer_bits)
> > + intel_psr_exit(dev);
> >
> > if (!dev_priv->psr.active && !dev_priv
> > ->psr.busy_frontbuffer_bits)
> > schedule_delayed_work(&dev_priv->psr.work,
> > --
> > 2.4.3
> >
> > _______________________________________________
> > Intel-gfx mailing list
> > Intel-gfx@lists.freedesktop.org
> > http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
>
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-11-16 20:39 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-11 21:19 [PATCH 0/4] PSR general improvements and stabilization Rodrigo Vivi
2015-11-11 21:19 ` [PATCH 1/4] drm/i915: Force PSR exit when IRQ_HPD is detected on eDP Rodrigo Vivi
2015-11-16 16:55 ` Ville Syrjälä
2015-11-18 19:19 ` [PATCH] " Rodrigo Vivi
2015-11-23 21:29 ` Rodrigo Vivi
2015-12-01 18:56 ` Ville Syrjälä
2015-12-01 19:44 ` Vivi, Rodrigo
2015-12-02 9:42 ` Ville Syrjälä
2015-12-02 17:29 ` Vivi, Rodrigo
2015-11-11 21:19 ` [PATCH 2/4] drm/i915: Remove duplicated dpcd write on hsw_psr_enable_sink Rodrigo Vivi
2015-11-12 22:46 ` [PATCH] " Rodrigo Vivi
2015-11-16 16:44 ` Paulo Zanoni
2015-11-11 21:20 ` [PATCH 3/4] drm/i915: PSR: Let's rely more on frontbuffer tracking Rodrigo Vivi
2015-11-14 0:56 ` [PATCH] " Rodrigo Vivi
2015-11-16 18:57 ` Paulo Zanoni
2015-11-16 20:39 ` Vivi, Rodrigo [this message]
2015-11-18 19:21 ` [PATCH 1/2] " Rodrigo Vivi
2015-11-18 19:27 ` Zanoni, Paulo R
2015-11-19 11:16 ` Jani Nikula
2015-11-19 11:24 ` Zanoni, Paulo R
2015-11-19 12:03 ` Damien Lespiau
2015-11-11 21:20 ` [PATCH 4/4] drm/i915: PSR: Mask LPSP hw tracking back again Rodrigo Vivi
2015-11-16 19:27 ` Paulo Zanoni
2015-11-18 0:01 ` Vivi, Rodrigo
2015-11-18 19:21 ` [PATCH 2/2] " Rodrigo Vivi
2015-11-18 19:29 ` Zanoni, Paulo R
2015-11-18 21:49 ` Rodrigo Vivi
2015-11-23 21:52 ` Rodrigo Vivi
2015-11-24 12:29 ` Daniel Vetter
2015-11-24 17:12 ` [PATCH 0/4] PSR general improvements and stabilization Daniel Stone
2015-11-24 20:53 ` Vivi, Rodrigo
2015-11-25 8:42 ` Daniel Vetter
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=1447706373.4989.85.camel@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=przanoni@gmail.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