Reviewed-by: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> On Mon, Aug 19, 2013 at 1:18 PM, Paulo Zanoni <przanoni@xxxxxxxxx> wrote: > From: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > > We currently only enter PC8+ after all its required conditions are > met, there's no rendering, and we stay like that for at least 5 > seconds. > > I chose "5 seconds" because this value is conservative and won't make > us enter/leave PC8+ thousands of times after the screen is off: some > desktop environments have applications that wake up and do rendering > every 1-3 seconds, even when the screen is off and the machine is > completely idle. > > But when I was testing my PC8+ patches I set the default value to > 100ms so I could use the bad-behaving desktop environments to > stress-test my patches. I also thought it would be a good idea to ask > our power management team to test different values, but I'm pretty > sure they would ask me for an easy way to change the timeout. So to > help these 2 cases I decided to create an option that would make it > easier to change the default value. I also expect people making > specific products that use our driver could try to find the perfect > timeout for them. > > Anyway, fixing the bad-behaving applications will always lead to > better power savings than just changing the timeout value: you need to > stop waking the Kernel, not quickly put it back to sleep again after > you wake it for nothing. Bad sleep leads to bad mood! > > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@xxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_drv.c | 4 ++++ > drivers/gpu/drm/i915/i915_drv.h | 1 + > drivers/gpu/drm/i915/intel_display.c | 2 +- > 3 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c > index f197362..ad28a72 100644 > --- a/drivers/gpu/drm/i915/i915_drv.c > +++ b/drivers/gpu/drm/i915/i915_drv.c > @@ -145,6 +145,10 @@ int i915_enable_pc8 __read_mostly = 0; > module_param_named(enable_pc8, i915_enable_pc8, int, 0600); > MODULE_PARM_DESC(enable_pc8, "Enable support for low power package C states (PC8+) (default: false)"); > > +int i915_pc8_timeout __read_mostly = 5000; > +module_param_named(pc8_timeout, i915_pc8_timeout, int, 0600); > +MODULE_PARM_DESC(pc8_timeout, "Number of msecs of idleness required to enter PC8+ (default: 5000)"); > + > bool i915_prefault_disable __read_mostly; > module_param_named(prefault_disable, i915_prefault_disable, bool, 0600); > MODULE_PARM_DESC(prefault_disable, > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 34c5af5..3138083 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -1710,6 +1710,7 @@ extern int i915_disable_power_well __read_mostly; > extern int i915_enable_ips __read_mostly; > extern bool i915_fastboot __read_mostly; > extern int i915_enable_pc8 __read_mostly; > +extern int i915_pc8_timeout __read_mostly; > extern bool i915_prefault_disable __read_mostly; > > extern int i915_suspend(struct drm_device *dev, pm_message_t state); > diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c > index 7d5b01a..ba3bdd5 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -6099,7 +6099,7 @@ static void __hsw_enable_package_c8(struct drm_i915_private *dev_priv) > return; > > schedule_delayed_work(&dev_priv->pc8.enable_work, > - msecs_to_jiffies(5 * 1000)); > + msecs_to_jiffies(i915_pc8_timeout)); > } > > static void __hsw_disable_package_c8(struct drm_i915_private *dev_priv) > -- > 1.8.1.2 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Rodrigo Vivi Blog: http://blog.vivi.eng.br _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx