[Intel-gfx] [PATCH 3/3] drm/i915: re-enable rc6 by default when GMAR is disabled

2011-11-16 Thread Eugeni Dodonov
Most of the rc6-related hangs and major issues were addressed for the past
months.

Let's re-enable it by default to provide a more wider testing, and catch
the remaining problems.

According to tests, enablement of rc6 results in up to +50% improvements
in power usage and battery life, so it certainly would be a nice feature
to have enabled by default.

Also, most of the rc6-related issues seem to came from GMAR, so we only
enable it as long as GMAR is disabled.

CC: Keith Packard kei...@keithp.com
CC: Daniel Vetter daniel.vet...@ffwll.ch
CC: Jesse Barnes jbar...@virtuousgeek.org
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38567
Signed-off-by: Eugeni Dodonov eugeni.dodo...@intel.com
---
 drivers/gpu/drm/i915/i915_drv.c  |2 +-
 drivers/gpu/drm/i915/intel_display.c |3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 565725c..337a568 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -63,7 +63,7 @@ module_param_named(semaphores, i915_semaphores, int, 0600);
 MODULE_PARM_DESC(semaphores,
Use semaphores for inter-ring sync (default: -1 (use per-chip 
defaults)));
 
-unsigned int i915_enable_rc6 __read_mostly = 0;
+unsigned int i915_enable_rc6 __read_mostly = 1;
 module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600);
 MODULE_PARM_DESC(i915_enable_rc6,
Enable power-saving render C-state 6 (default: true));
diff --git a/drivers/gpu/drm/i915/intel_display.c 
b/drivers/gpu/drm/i915/intel_display.c
index 981b1f1..5dd0878 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -31,6 +31,7 @@
 #include linux/kernel.h
 #include linux/slab.h
 #include linux/vgaarb.h
+#include linux/intel-iommu.h
 #include drm/drm_edid.h
 #include drmP.h
 #include intel_drv.h
@@ -8746,7 +8747,7 @@ void intel_modeset_init(struct drm_device *dev)
 
 void intel_modeset_gem_init(struct drm_device *dev)
 {
-   if (IS_IRONLAKE_M(dev))
+   if (IS_IRONLAKE_M(dev)  dmar_disabled)
ironlake_enable_rc6(dev);
 
intel_setup_overlay(dev);
-- 
1.7.7.3

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/3] drm/i915: re-enable rc6 by default when GMAR is disabled

2011-11-16 Thread Ben Widawsky
On Wed, Nov 16, 2011 at 10:17:55PM -0200, Eugeni Dodonov wrote:
 Most of the rc6-related hangs and major issues were addressed for the past
 months.
 
 Let's re-enable it by default to provide a more wider testing, and catch
 the remaining problems.
 
 According to tests, enablement of rc6 results in up to +50% improvements
 in power usage and battery life, so it certainly would be a nice feature
 to have enabled by default.
 
 Also, most of the rc6-related issues seem to came from GMAR, so we only
 enable it as long as GMAR is disabled.
 
 CC: Keith Packard kei...@keithp.com
 CC: Daniel Vetter daniel.vet...@ffwll.ch
 CC: Jesse Barnes jbar...@virtuousgeek.org
 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38567
 Signed-off-by: Eugeni Dodonov eugeni.dodo...@intel.com
 ---
  drivers/gpu/drm/i915/i915_drv.c  |2 +-
  drivers/gpu/drm/i915/intel_display.c |3 ++-
  2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
 index 565725c..337a568 100644
 --- a/drivers/gpu/drm/i915/i915_drv.c
 +++ b/drivers/gpu/drm/i915/i915_drv.c
 @@ -63,7 +63,7 @@ module_param_named(semaphores, i915_semaphores, int, 0600);
  MODULE_PARM_DESC(semaphores,
   Use semaphores for inter-ring sync (default: -1 (use per-chip 
 defaults)));
  
 -unsigned int i915_enable_rc6 __read_mostly = 0;
 +unsigned int i915_enable_rc6 __read_mostly = 1;
  module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600);
  MODULE_PARM_DESC(i915_enable_rc6,
   Enable power-saving render C-state 6 (default: true));
 diff --git a/drivers/gpu/drm/i915/intel_display.c 
 b/drivers/gpu/drm/i915/intel_display.c
 index 981b1f1..5dd0878 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
 @@ -31,6 +31,7 @@
  #include linux/kernel.h
  #include linux/slab.h
  #include linux/vgaarb.h
 +#include linux/intel-iommu.h
  #include drm/drm_edid.h
  #include drmP.h
  #include intel_drv.h
 @@ -8746,7 +8747,7 @@ void intel_modeset_init(struct drm_device *dev)
  
  void intel_modeset_gem_init(struct drm_device *dev)
  {
 - if (IS_IRONLAKE_M(dev))
 + if (IS_IRONLAKE_M(dev)  dmar_disabled)
   ironlake_enable_rc6(dev);
  
   intel_setup_overlay(dev);
 -- 

This is not sufficient. You need to know that DMAR is compiled in, and
is actually being used.

The variable you want is: !intel_iommu_gfx_mapped

I think I saw Keith say he was sending this patch out on IRC.

Ben
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/3] drm/i915: re-enable rc6 by default when GMAR is disabled

2011-11-16 Thread Ben Widawsky
On Wed, 16 Nov 2011 22:11:06 -0800
keith.pack...@intel.com wrote:

 On Wed, 16 Nov 2011 16:56:16 -0800, Ben Widawsky b...@bwidawsk.net wrote:
 
  The variable you want is: !intel_iommu_gfx_mapped
 
 From what Daniel Vetter said:
 
  Last time I've played around with all the combinations, only
  intel_iommu=off was good enough to prevent the hang.
  intel_iommu=igd_off still hangs (which is what the current value
  exported by the dmar code dopends on, iirc). If I remember things
  correctly, intel_iommu=off also reliably works around issues for all
  reporters (both semaphores and rc6).
 
 we need to use dmar_disabled instead of intel_iommu_gfx_mapped. Other
 places in the code use:
 
 if (no_iommu || dmar_disabled)
 

As long as he meant igfx_off, then okay... igd_off didn't immediately register
to me earlier. Sorry for the confusion.
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx