From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: Re: [PATCH] drm/i915: leave rc6 enabled at suspend time v4 Date: Wed, 11 Jun 2014 15:21:16 -0700 Message-ID: <20140611152116.20a3dd30@jbarnes-desktop> References: <1401910389-14722-1-git-send-email-jbarnes@virtuousgeek.org> <1401914722-17532-1-git-send-email-jbarnes@virtuousgeek.org> <1402407770.7876.72.camel@intelbox> <20140610135757.GN5821@phenom.ffwll.local> <1402411309.7876.102.camel@intelbox> <20140610152645.GZ5821@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail-pd0-f169.google.com (mail-pd0-f169.google.com [209.85.192.169]) by gabe.freedesktop.org (Postfix) with ESMTP id 3919C6E3F1 for ; Wed, 11 Jun 2014 15:21:05 -0700 (PDT) Received: by mail-pd0-f169.google.com with SMTP id w10so258837pde.28 for ; Wed, 11 Jun 2014 15:21:05 -0700 (PDT) In-Reply-To: <20140610152645.GZ5821@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org On Tue, 10 Jun 2014 17:26:45 +0200 Daniel Vetter wrote: > On Tue, Jun 10, 2014 at 05:41:49PM +0300, Imre Deak wrote: > > On Tue, 2014-06-10 at 15:57 +0200, Daniel Vetter wrote: > > > On Tue, Jun 10, 2014 at 04:42:50PM +0300, Imre Deak wrote: > > > > On Wed, 2014-06-04 at 13:45 -0700, Jesse Barnes wrote: > > > > > This allows the system to enter the lowest power mode during system freeze. > > > > > > > > > > v2: delete force wake timer at suspend (Imre) > > > > > v3: add GT work suspend function (Imre) > > > > > v4: use uncore forcewake reset (Daniel) > > > > > > > > > > Signed-off-by: Kristen Carlson Accardi > > > > > Signed-off-by: Jesse Barnes > > > > > --- > > > > > drivers/gpu/drm/i915/i915_drv.c | 4 ++-- > > > > > drivers/gpu/drm/i915/i915_drv.h | 1 + > > > > > drivers/gpu/drm/i915/intel_drv.h | 1 + > > > > > drivers/gpu/drm/i915/intel_pm.c | 20 ++++++++++++++++++++ > > > > > drivers/gpu/drm/i915/intel_uncore.c | 2 +- > > > > > 5 files changed, 25 insertions(+), 3 deletions(-) > > > > > > > > > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > > > > > index 66c6ffb..7148eac 100644 > > > > > --- a/drivers/gpu/drm/i915/i915_drv.c > > > > > +++ b/drivers/gpu/drm/i915/i915_drv.c > > > > > @@ -521,7 +521,7 @@ static int i915_drm_freeze(struct drm_device *dev) > > > > > drm_irq_uninstall(dev); > > > > > dev_priv->enable_hotplug_processing = false; > > > > > > > > > > - intel_disable_gt_powersave(dev); > > > > > + intel_suspend_gt_powersave(dev); > > > > > > > > I realized now that we actually do need to enable RC6 explicitly. If we > > > > get here right after runtime resume, the deferred RC6 enabling might be > > > > still pending and so RC6 might not be enabled. Seems like we could just flush the enable if it was outstanding? > > > Hm, for runtime pm we might schedule the delayed rps work with a 0 delay, > > > just to get the gpu going faster. Just an aside. > > > > > > Also some runtime pm vs system suspend tests in igt would be good if we > > > don't have them yet. And if we have them some analysis why this didn't > > > blow up in testing (and something to address that gap if feasible). > > > > To clarify the above is about the new functionality to enable deeper > > system wide power states. Atm, we don't have a bug related to the above > > runtime resume->system suspend sequence, since we explicitly disable gt > > power saving/RC6. For deeper power states we have to do the opposite and > > leave RC6 enabled and that's what I commented on. > > Well I just want to make sure that we have test coverage. If Jesse has run > all the rpm tests with piglit run -t rpm and it didn't blow up we need to > fix this gap. I have not... I'm not sure how to test this though, as I think we'd need to measure c states or power when we do a suspend. If we checked for RC6 enable at resume, we'd probably race with the enable work queue. Either way, we should add some asserts to the suspend path to make sure all the conditions we need for minimum power are met. -- Jesse Barnes, Intel Open Source Technology Center