* [PATCH] drm/i915: Only enable IPS polling for gen5
@ 2012-04-30 18:35 Chris Wilson
2012-05-01 14:58 ` Jesse Barnes
0 siblings, 1 reply; 4+ messages in thread
From: Chris Wilson @ 2012-04-30 18:35 UTC (permalink / raw)
To: intel-gfx
On SandyBridge IPS was entirely implemented in hardware and not reliant
on the driver monitoring power consumption and feeding back desired run
states, so the hardware is able to adapt quicker and more flexibly. Which
is a huge relief for us as we no longer have to carry empirically
derived magic algorithms.
Yet despite the advance in technology, the driver was still doing its
IPS polling on all machines. Restrict it to the only supported hardware,
Clarkdale/Arrandale.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
---
drivers/gpu/drm/i915/i915_debugfs.c | 3 +++
drivers/gpu/drm/i915/i915_dma.c | 15 ++++++++++-----
2 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 1ff6ec7..b9bd9e8 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1212,6 +1212,9 @@ static int i915_emon_status(struct seq_file *m, void *unused)
unsigned long temp, chipset, gfx;
int ret;
+ if (!IS_GEN5(dev))
+ return -ENODEV;
+
ret = mutex_lock_interruptible(&dev->struct_mutex);
if (ret)
return ret;
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 4c01a47..3d03f3a 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1527,6 +1527,9 @@ void i915_update_gfx_val(struct drm_i915_private *dev_priv)
unsigned long diffms;
u32 count;
+ if (dev_priv->info->gen != 5)
+ return;
+
getrawmonotonic(&now);
diff1 = timespec_sub(now, dev_priv->last_time2);
@@ -1966,12 +1969,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
setup_timer(&dev_priv->hangcheck_timer, i915_hangcheck_elapsed,
(unsigned long) dev);
- spin_lock(&mchdev_lock);
- i915_mch_dev = dev_priv;
- dev_priv->mchdev_lock = &mchdev_lock;
- spin_unlock(&mchdev_lock);
+ if (IS_GEN5(dev)) {
+ spin_lock(&mchdev_lock);
+ i915_mch_dev = dev_priv;
+ dev_priv->mchdev_lock = &mchdev_lock;
+ spin_unlock(&mchdev_lock);
- ips_ping_for_i915_load();
+ ips_ping_for_i915_load();
+ }
return 0;
--
1.7.10
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] drm/i915: Only enable IPS polling for gen5
2012-04-30 18:35 [PATCH] drm/i915: Only enable IPS polling for gen5 Chris Wilson
@ 2012-05-01 14:58 ` Jesse Barnes
2012-05-01 17:45 ` Daniel Vetter
0 siblings, 1 reply; 4+ messages in thread
From: Jesse Barnes @ 2012-05-01 14:58 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
On Mon, 30 Apr 2012 19:35:02 +0100
Chris Wilson <chris@chris-wilson.co.uk> wrote:
> On SandyBridge IPS was entirely implemented in hardware and not reliant
> on the driver monitoring power consumption and feeding back desired run
> states, so the hardware is able to adapt quicker and more flexibly. Which
> is a huge relief for us as we no longer have to carry empirically
> derived magic algorithms.
>
> Yet despite the advance in technology, the driver was still doing its
> IPS polling on all machines. Restrict it to the only supported hardware,
> Clarkdale/Arrandale.
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 3 +++
> drivers/gpu/drm/i915/i915_dma.c | 15 ++++++++++-----
> 2 files changed, 13 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 1ff6ec7..b9bd9e8 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1212,6 +1212,9 @@ static int i915_emon_status(struct seq_file *m, void *unused)
> unsigned long temp, chipset, gfx;
> int ret;
>
> + if (!IS_GEN5(dev))
> + return -ENODEV;
> +
> ret = mutex_lock_interruptible(&dev->struct_mutex);
> if (ret)
> return ret;
> diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> index 4c01a47..3d03f3a 100644
> --- a/drivers/gpu/drm/i915/i915_dma.c
> +++ b/drivers/gpu/drm/i915/i915_dma.c
> @@ -1527,6 +1527,9 @@ void i915_update_gfx_val(struct drm_i915_private *dev_priv)
> unsigned long diffms;
> u32 count;
>
> + if (dev_priv->info->gen != 5)
> + return;
> +
> getrawmonotonic(&now);
> diff1 = timespec_sub(now, dev_priv->last_time2);
Looks ok, but I think just update_gfx_val is called in the idle
routine? The other isn't I think...
>
> @@ -1966,12 +1969,14 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
> setup_timer(&dev_priv->hangcheck_timer, i915_hangcheck_elapsed,
> (unsigned long) dev);
>
> - spin_lock(&mchdev_lock);
> - i915_mch_dev = dev_priv;
> - dev_priv->mchdev_lock = &mchdev_lock;
> - spin_unlock(&mchdev_lock);
> + if (IS_GEN5(dev)) {
> + spin_lock(&mchdev_lock);
> + i915_mch_dev = dev_priv;
> + dev_priv->mchdev_lock = &mchdev_lock;
> + spin_unlock(&mchdev_lock);
>
> - ips_ping_for_i915_load();
> + ips_ping_for_i915_load();
> + }
>
> return 0;
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
--
Jesse Barnes, Intel Open Source Technology Center
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] drm/i915: Only enable IPS polling for gen5
2012-05-01 14:58 ` Jesse Barnes
@ 2012-05-01 17:45 ` Daniel Vetter
2012-05-02 12:40 ` Daniel Vetter
0 siblings, 1 reply; 4+ messages in thread
From: Daniel Vetter @ 2012-05-01 17:45 UTC (permalink / raw)
To: Jesse Barnes; +Cc: intel-gfx
On Tue, May 01, 2012 at 07:58:27AM -0700, Jesse Barnes wrote:
> On Mon, 30 Apr 2012 19:35:02 +0100
> Chris Wilson <chris@chris-wilson.co.uk> wrote:
>
> > On SandyBridge IPS was entirely implemented in hardware and not reliant
> > on the driver monitoring power consumption and feeding back desired run
> > states, so the hardware is able to adapt quicker and more flexibly. Which
> > is a huge relief for us as we no longer have to carry empirically
> > derived magic algorithms.
> >
> > Yet despite the advance in technology, the driver was still doing its
> > IPS polling on all machines. Restrict it to the only supported hardware,
> > Clarkdale/Arrandale.
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Queued for -next, thanks for the patch.
-Daniel
--
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] drm/i915: Only enable IPS polling for gen5
2012-05-01 17:45 ` Daniel Vetter
@ 2012-05-02 12:40 ` Daniel Vetter
0 siblings, 0 replies; 4+ messages in thread
From: Daniel Vetter @ 2012-05-02 12:40 UTC (permalink / raw)
To: Jesse Barnes; +Cc: intel-gfx
On Tue, May 01, 2012 at 07:45:02PM +0200, Daniel Vetter wrote:
> On Tue, May 01, 2012 at 07:58:27AM -0700, Jesse Barnes wrote:
> > On Mon, 30 Apr 2012 19:35:02 +0100
> > Chris Wilson <chris@chris-wilson.co.uk> wrote:
> >
> > > On SandyBridge IPS was entirely implemented in hardware and not reliant
> > > on the driver monitoring power consumption and feeding back desired run
> > > states, so the hardware is able to adapt quicker and more flexibly. Which
> > > is a huge relief for us as we no longer have to carry empirically
> > > derived magic algorithms.
> > >
> > > Yet despite the advance in technology, the driver was still doing its
> > > IPS polling on all machines. Restrict it to the only supported hardware,
> > > Clarkdale/Arrandale.
> > >
> > > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > > Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
> > Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
> Queued for -next, thanks for the patch.
Patch is now also in -fixes because it gets rid of a WARN backtrace.
Tested-by and bugzilla link added.
-Daniel
--
Daniel Vetter
Mail: daniel@ffwll.ch
Mobile: +41 (0)79 365 57 48
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-05-02 12:39 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-30 18:35 [PATCH] drm/i915: Only enable IPS polling for gen5 Chris Wilson
2012-05-01 14:58 ` Jesse Barnes
2012-05-01 17:45 ` Daniel Vetter
2012-05-02 12:40 ` Daniel Vetter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox