All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] Enable PSR by default in certain platforms
@ 2016-02-12 12:08 Rodrigo Vivi
  2016-02-12 12:08 ` [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default Rodrigo Vivi
                   ` (4 more replies)
  0 siblings, 5 replies; 9+ messages in thread
From: Rodrigo Vivi @ 2016-02-12 12:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: Rodrigo Vivi

For a long time we are trying to enable PSR by default everwhere
but we always end up in soem specific corner case in one
platform or another and end up not enabling in older stable platforms
that could benefit from the power saving it provides.

So, let's change the approach here and try to enable it separated.

The new blocking issue is for Skylake and Kabylake due to a vblank
wait situation with DMC firmware:
https://bugs.freedesktop.org/show_bug.cgi?id=94126
So that case will block PSR on SKL and KBL.

But  this doesn't affect at all other platforms that don't have DMC.

Also I decided to split the rest of platforms in two groups since
Valleyview/Cherryview has a complete different Hardware PSR
implementation than the rest of the platorms. Also it uses only
link standby what should be safier.

So, 1 patch to add the possibility of enable per platform, 1 patch for
VLV/CHV and 1 patch for HSW/BDW.

I hope to get SKL/KBL ready soon.

Thanks,
Rodrigo.

Rodrigo Vivi (3):
  drm/i915: Change i915.enable_psr parameter to use per platform
    default.
  drm/i915: Enable PSR by default on Valleyview and Cherryview.
  drm/i915: Enable PSR by default on Haswell and Broadwell.

 drivers/gpu/drm/i915/i915_params.c | 5 +++--
 drivers/gpu/drm/i915/intel_psr.c   | 9 +++++++++
 2 files changed, 12 insertions(+), 2 deletions(-)

-- 
2.4.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default.
  2016-02-12 12:08 [PATCH 0/3] Enable PSR by default in certain platforms Rodrigo Vivi
@ 2016-02-12 12:08 ` Rodrigo Vivi
  2016-02-16 10:27   ` Jani Nikula
  2016-02-12 12:08 ` [PATCH 2/3] drm/i915: Enable PSR by default on Valleyview and Cherryview Rodrigo Vivi
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 9+ messages in thread
From: Rodrigo Vivi @ 2016-02-12 12:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: Paulo Zanoni, Rodrigo Vivi

This will give us flexibility to enable PSR by default independently so
issues and corner cases in one platform won't affect others were we have
it working properly.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/i915_params.c | 5 +++--
 drivers/gpu/drm/i915/intel_psr.c   | 5 +++++
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
index 8b9f368..1b40ee6 100644
--- a/drivers/gpu/drm/i915/i915_params.c
+++ b/drivers/gpu/drm/i915/i915_params.c
@@ -38,7 +38,7 @@ struct i915_params i915 __read_mostly = {
 	.enable_execlists = -1,
 	.enable_hangcheck = true,
 	.enable_ppgtt = -1,
-	.enable_psr = 0,
+	.enable_psr = -1,
 	.preliminary_hw_support = IS_ENABLED(CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT),
 	.disable_power_well = -1,
 	.enable_ips = 1,
@@ -128,7 +128,8 @@ MODULE_PARM_DESC(enable_execlists,
 
 module_param_named_unsafe(enable_psr, i915.enable_psr, int, 0600);
 MODULE_PARM_DESC(enable_psr, "Enable PSR "
-		 "(0=disabled [default], 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode)");
+		 "(0=disabled, 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode) "
+		 "Default: -1 (use per-chip default)");
 
 module_param_named_unsafe(preliminary_hw_support, i915.preliminary_hw_support, int, 0600);
 MODULE_PARM_DESC(preliminary_hw_support,
diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 4ab7579..655bdf6 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -778,6 +778,11 @@ void intel_psr_init(struct drm_device *dev)
 	dev_priv->psr_mmio_base = IS_HASWELL(dev_priv) ?
 		HSW_EDP_PSR_BASE : BDW_EDP_PSR_BASE;
 
+	/* Per platform default */
+	if (i915.enable_psr == -1) {
+		i915.enable_psr = 0;
+	}
+
 	/* Set link_standby x link_off defaults */
 	if (IS_HASWELL(dev) || IS_BROADWELL(dev))
 		/* HSW and BDW require workarounds that we don't implement. */
-- 
2.4.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] drm/i915: Enable PSR by default on Valleyview and Cherryview.
  2016-02-12 12:08 [PATCH 0/3] Enable PSR by default in certain platforms Rodrigo Vivi
  2016-02-12 12:08 ` [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default Rodrigo Vivi
@ 2016-02-12 12:08 ` Rodrigo Vivi
  2016-02-12 12:08 ` [PATCH 3/3] drm/i915: Enable PSR by default on Haswell and Broadwell Rodrigo Vivi
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 9+ messages in thread
From: Rodrigo Vivi @ 2016-02-12 12:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: Paulo Zanoni, Rodrigo Vivi

With a reliable frontbuffer tracking and all instability corner cases
solved for this platform let's re-enabled PSR by default.

In case a new issue is found and PSR is the main suspect, please check
if i915.enable_psr=0 really makes your problem go away,
please report it at bugs.freedesktop.org.

In a bugzilla entry for PSR is desirable:
- dmesg (drm.debug=0xe)
- output of /sys/kernel/debug/dri/0/i915_edp_psr_status
- Platform information. Vendor, model, id, pci id.
- Graphical environment: Gnome, KDE, openbox, etc...
- Details how to reproduce.
- Also good if you could run PSR test cases of Intel-gpu-tools
- Please mention if forcing main link standby or main link off helps you.

There are Intel-gpu-tools test cases that can be helpful to
determine if PSR is working as expected:
 kms_psr_sink_crc and kms_psr_frontbuffer_tracking.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/intel_psr.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 655bdf6..12b5a7e 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -780,7 +780,10 @@ void intel_psr_init(struct drm_device *dev)
 
 	/* Per platform default */
 	if (i915.enable_psr == -1) {
-		i915.enable_psr = 0;
+		if (IS_VALLEYVIEW(dev) || IS_CHERRYVIEW(dev))
+			i915.enable_psr = 1;
+		else
+			i915.enable_psr = 0;
 	}
 
 	/* Set link_standby x link_off defaults */
-- 
2.4.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] drm/i915: Enable PSR by default on Haswell and Broadwell.
  2016-02-12 12:08 [PATCH 0/3] Enable PSR by default in certain platforms Rodrigo Vivi
  2016-02-12 12:08 ` [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default Rodrigo Vivi
  2016-02-12 12:08 ` [PATCH 2/3] drm/i915: Enable PSR by default on Valleyview and Cherryview Rodrigo Vivi
@ 2016-02-12 12:08 ` Rodrigo Vivi
  2016-02-16  9:27 ` ✓ Fi.CI.BAT: success for Enable PSR by default in certain platforms Patchwork
  2016-02-16 15:25 ` [PATCH 0/3] " Daniel Vetter
  4 siblings, 0 replies; 9+ messages in thread
From: Rodrigo Vivi @ 2016-02-12 12:08 UTC (permalink / raw)
  To: intel-gfx; +Cc: Paulo Zanoni, Rodrigo Vivi

With a reliable frontbuffer tracking and all instability corner cases
on Haswell and Broadwell solved let's re-enabled PSR by default on
these platforms.

In case a new issue is found and PSR is the main suspect, please check
if i915.enable_psr=0 really makes your problem go away. If this is the case
PSR is the culprit so after that please check if i915.enable_psr=2
or i915.enable_psr=3 solves your issue and please let us know.
There are many panels out there and not all implementations apparently
work as we would expect.

In case you needed to force it on standby or disabled or in case of any
PSR related bug please report it at bugs.freedesktop.org.
In a bugzilla entry for PSR is desirable:
- dmesg (drm.debug=0xe)
- output of /sys/kernel/debug/dri/0/i915_edp_psr_status
- Platform information. Vendor, model, id, pci id.
- Graphical environment: Gnome, KDE, openbox, etc...
- Details how to reproduce.
- Also good if you could run PSR test cases of Intel-gpu-tools
- Please mention if forcing main link standby or main link off helps you.

There are Intel-gpu-tools test cases that can be helpful to
determine if PSR is working as expected:
kms_psr_sink_crc and kms_psr_frontbuffer_tracking.

Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/intel_psr.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
index 12b5a7e..0b42ada 100644
--- a/drivers/gpu/drm/i915/intel_psr.c
+++ b/drivers/gpu/drm/i915/intel_psr.c
@@ -780,7 +780,8 @@ void intel_psr_init(struct drm_device *dev)
 
 	/* Per platform default */
 	if (i915.enable_psr == -1) {
-		if (IS_VALLEYVIEW(dev) || IS_CHERRYVIEW(dev))
+		if (IS_HASWELL(dev) || IS_BROADWELL(dev) ||
+		    IS_VALLEYVIEW(dev) || IS_CHERRYVIEW(dev))
 			i915.enable_psr = 1;
 		else
 			i915.enable_psr = 0;
-- 
2.4.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* ✓ Fi.CI.BAT: success for Enable PSR by default in certain platforms
  2016-02-12 12:08 [PATCH 0/3] Enable PSR by default in certain platforms Rodrigo Vivi
                   ` (2 preceding siblings ...)
  2016-02-12 12:08 ` [PATCH 3/3] drm/i915: Enable PSR by default on Haswell and Broadwell Rodrigo Vivi
@ 2016-02-16  9:27 ` Patchwork
  2016-02-16 15:25 ` [PATCH 0/3] " Daniel Vetter
  4 siblings, 0 replies; 9+ messages in thread
From: Patchwork @ 2016-02-16  9:27 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: intel-gfx

== Summary ==

Series 3382v1 Enable PSR by default in certain platforms
http://patchwork.freedesktop.org/api/1.0/series/3382/revisions/1/mbox/

Test gem_sync:
        Subgroup basic-bsd:
                dmesg-fail -> PASS       (ilk-hp8440p)
        Subgroup basic-vebox:
                dmesg-fail -> PASS       (hsw-brixbox)
Test kms_flip:
        Subgroup basic-flip-vs-dpms:
                dmesg-warn -> PASS       (ilk-hp8440p) UNSTABLE
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-c:
                dmesg-warn -> PASS       (ivb-t430s)
Test pm_rpm:
        Subgroup basic-rte:
                pass       -> DMESG-WARN (byt-nuc) UNSTABLE

bdw-nuci7        total:162  pass:152  dwarn:0   dfail:0   fail:0   skip:10 
bdw-ultra        total:165  pass:152  dwarn:0   dfail:0   fail:0   skip:13 
bsw-nuc-2        total:165  pass:135  dwarn:1   dfail:0   fail:0   skip:29 
byt-nuc          total:165  pass:140  dwarn:1   dfail:0   fail:0   skip:24 
hsw-brixbox      total:165  pass:151  dwarn:0   dfail:0   fail:0   skip:14 
hsw-gt2          total:165  pass:154  dwarn:0   dfail:0   fail:1   skip:10 
ilk-hp8440p      total:165  pass:116  dwarn:0   dfail:0   fail:1   skip:48 
ivb-t430s        total:165  pass:150  dwarn:0   dfail:0   fail:1   skip:14 
skl-i5k-2        total:165  pass:150  dwarn:0   dfail:0   fail:0   skip:15 
snb-dellxps      total:165  pass:142  dwarn:0   dfail:0   fail:1   skip:22 
snb-x220t        total:165  pass:142  dwarn:0   dfail:0   fail:2   skip:21 

Results at /archive/results/CI_IGT_test/Patchwork_1403/

a4474d338aa8156348cebe58a329a18c8560da1e drm-intel-nightly: 2016y-02m-15d-17h-27m-11s UTC integration manifest
94582cca769d3ba53753adf60ac312af7f09f8a0 drm/i915: Enable PSR by default on Haswell and Broadwell.
809b92bd00ec26a5e637579e7dc8b6b32958fd74 drm/i915: Enable PSR by default on Valleyview and Cherryview.
28196cda57aebc08a0582ae79d5d05bc086a98aa drm/i915: Change i915.enable_psr parameter to use per platform default.

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default.
  2016-02-12 12:08 ` [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default Rodrigo Vivi
@ 2016-02-16 10:27   ` Jani Nikula
  2016-02-16 11:49     ` Zanoni, Paulo R
  0 siblings, 1 reply; 9+ messages in thread
From: Jani Nikula @ 2016-02-16 10:27 UTC (permalink / raw)
  To: intel-gfx; +Cc: Paulo Zanoni, Rodrigo Vivi

On Fri, 12 Feb 2016, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> This will give us flexibility to enable PSR by default independently so
> issues and corner cases in one platform won't affect others were we have
> it working properly.
>
> Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_params.c | 5 +++--
>  drivers/gpu/drm/i915/intel_psr.c   | 5 +++++
>  2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c
> index 8b9f368..1b40ee6 100644
> --- a/drivers/gpu/drm/i915/i915_params.c
> +++ b/drivers/gpu/drm/i915/i915_params.c
> @@ -38,7 +38,7 @@ struct i915_params i915 __read_mostly = {
>  	.enable_execlists = -1,
>  	.enable_hangcheck = true,
>  	.enable_ppgtt = -1,
> -	.enable_psr = 0,
> +	.enable_psr = -1,
>  	.preliminary_hw_support = IS_ENABLED(CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT),
>  	.disable_power_well = -1,
>  	.enable_ips = 1,
> @@ -128,7 +128,8 @@ MODULE_PARM_DESC(enable_execlists,
>  
>  module_param_named_unsafe(enable_psr, i915.enable_psr, int, 0600);
>  MODULE_PARM_DESC(enable_psr, "Enable PSR "
> -		 "(0=disabled [default], 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode)");
> +		 "(0=disabled, 1=enabled - link mode chosen per-platform, 2=force link-standby mode, 3=force link-off mode) "
> +		 "Default: -1 (use per-chip default)");
>  
>  module_param_named_unsafe(preliminary_hw_support, i915.preliminary_hw_support, int, 0600);
>  MODULE_PARM_DESC(preliminary_hw_support,
> diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c
> index 4ab7579..655bdf6 100644
> --- a/drivers/gpu/drm/i915/intel_psr.c
> +++ b/drivers/gpu/drm/i915/intel_psr.c
> @@ -778,6 +778,11 @@ void intel_psr_init(struct drm_device *dev)
>  	dev_priv->psr_mmio_base = IS_HASWELL(dev_priv) ?
>  		HSW_EDP_PSR_BASE : BDW_EDP_PSR_BASE;
>  
> +	/* Per platform default */
> +	if (i915.enable_psr == -1) {
> +		i915.enable_psr = 0;
> +	}

I don't like changing module parameters in-kernel, because them changing
may be surprising to the user (and possibly developers debugging
issues). We do this anyway, but AFAICT only for read only
parameters. It's perhaps less surprising in that case.

Now, i915.enable_psr has permissions 0600, so you can change it
dynamically through sysfs. Maybe it's a good debugging thing, I don't
know. But I also notice some parts of the PSR functionality (link
standby) can only be forced with i915.enable_psr during module load, and
not dynamically.

So I think you need to either a) change enable_psr permission to 0400
and give up the ability to dynamically toggle the feature, or b) fix up
the current link standby force and not change the parameter value
in-kernel in this patch.

BR,
Jani.


> +
>  	/* Set link_standby x link_off defaults */
>  	if (IS_HASWELL(dev) || IS_BROADWELL(dev))
>  		/* HSW and BDW require workarounds that we don't implement. */

-- 
Jani Nikula, Intel Open Source Technology Center
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default.
  2016-02-16 10:27   ` Jani Nikula
@ 2016-02-16 11:49     ` Zanoni, Paulo R
  2016-02-16 17:43       ` Vivi, Rodrigo
  0 siblings, 1 reply; 9+ messages in thread
From: Zanoni, Paulo R @ 2016-02-16 11:49 UTC (permalink / raw)
  To: intel-gfx, Vivi, Rodrigo, jani.nikula

Em Ter, 2016-02-16 às 12:27 +0200, Jani Nikula escreveu:
> On Fri, 12 Feb 2016, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > This will give us flexibility to enable PSR by default
> > independently so
> > issues and corner cases in one platform won't affect others were we
> > have
> > it working properly.
> > 
> > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > ---
> >  drivers/gpu/drm/i915/i915_params.c | 5 +++--
> >  drivers/gpu/drm/i915/intel_psr.c   | 5 +++++
> >  2 files changed, 8 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_params.c
> > b/drivers/gpu/drm/i915/i915_params.c
> > index 8b9f368..1b40ee6 100644
> > --- a/drivers/gpu/drm/i915/i915_params.c
> > +++ b/drivers/gpu/drm/i915/i915_params.c
> > @@ -38,7 +38,7 @@ struct i915_params i915 __read_mostly = {
> >  	.enable_execlists = -1,
> >  	.enable_hangcheck = true,
> >  	.enable_ppgtt = -1,
> > -	.enable_psr = 0,
> > +	.enable_psr = -1,
> >  	.preliminary_hw_support =
> > IS_ENABLED(CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT),
> >  	.disable_power_well = -1,
> >  	.enable_ips = 1,
> > @@ -128,7 +128,8 @@ MODULE_PARM_DESC(enable_execlists,
> >  
> >  module_param_named_unsafe(enable_psr, i915.enable_psr, int, 0600);
> >  MODULE_PARM_DESC(enable_psr, "Enable PSR "
> > -		 "(0=disabled [default], 1=enabled - link mode
> > chosen per-platform, 2=force link-standby mode, 3=force link-off
> > mode)");
> > +		 "(0=disabled, 1=enabled - link mode chosen per-
> > platform, 2=force link-standby mode, 3=force link-off mode) "
> > +		 "Default: -1 (use per-chip default)");
> >  
> >  module_param_named_unsafe(preliminary_hw_support,
> > i915.preliminary_hw_support, int, 0600);
> >  MODULE_PARM_DESC(preliminary_hw_support,
> > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > b/drivers/gpu/drm/i915/intel_psr.c
> > index 4ab7579..655bdf6 100644
> > --- a/drivers/gpu/drm/i915/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > @@ -778,6 +778,11 @@ void intel_psr_init(struct drm_device *dev)
> >  	dev_priv->psr_mmio_base = IS_HASWELL(dev_priv) ?
> >  		HSW_EDP_PSR_BASE : BDW_EDP_PSR_BASE;
> >  
> > +	/* Per platform default */
> > +	if (i915.enable_psr == -1) {
> > +		i915.enable_psr = 0;
> > +	}
> 
> I don't like changing module parameters in-kernel, because them
> changing
> may be surprising to the user (and possibly developers debugging
> issues). We do this anyway, but AFAICT only for read only
> parameters. It's perhaps less surprising in that case.
> 
> Now, i915.enable_psr has permissions 0600, so you can change it
> dynamically through sysfs. Maybe it's a good debugging thing, I don't
> know. But I also notice some parts of the PSR functionality (link
> standby) can only be forced with i915.enable_psr during module load,
> and
> not dynamically.
> 
> So I think you need to either a) change enable_psr permission to 0400
> and give up the ability to dynamically toggle the feature, or b) fix
> up
> the current link standby force and not change the parameter value
> in-kernel in this patch.

Just as a reminder: igt relies on the 0600 permissions so it can run
PSR tests even while PSR is disabled by default. This was done because
we're trying to fix the features, so removing them from QA/CI testing
would only allow people to introduce unnoticed regressions. When I did
this, I was also expecting that at some point our pre-merge testing
would be running a huge chunk of IGT.

> 
> BR,
> Jani.
> 
> 
> > +
> >  	/* Set link_standby x link_off defaults */
> >  	if (IS_HASWELL(dev) || IS_BROADWELL(dev))
> >  		/* HSW and BDW require workarounds that we don't
> > implement. */
> 
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 0/3] Enable PSR by default in certain platforms
  2016-02-12 12:08 [PATCH 0/3] Enable PSR by default in certain platforms Rodrigo Vivi
                   ` (3 preceding siblings ...)
  2016-02-16  9:27 ` ✓ Fi.CI.BAT: success for Enable PSR by default in certain platforms Patchwork
@ 2016-02-16 15:25 ` Daniel Vetter
  4 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2016-02-16 15:25 UTC (permalink / raw)
  To: Rodrigo Vivi; +Cc: intel-gfx

On Fri, Feb 12, 2016 at 04:08:10AM -0800, Rodrigo Vivi wrote:
> For a long time we are trying to enable PSR by default everwhere
> but we always end up in soem specific corner case in one
> platform or another and end up not enabling in older stable platforms
> that could benefit from the power saving it provides.
> 
> So, let's change the approach here and try to enable it separated.
> 
> The new blocking issue is for Skylake and Kabylake due to a vblank
> wait situation with DMC firmware:
> https://bugs.freedesktop.org/show_bug.cgi?id=94126
> So that case will block PSR on SKL and KBL.
> 
> But  this doesn't affect at all other platforms that don't have DMC.
> 
> Also I decided to split the rest of platforms in two groups since
> Valleyview/Cherryview has a complete different Hardware PSR
> implementation than the rest of the platorms. Also it uses only
> link standby what should be safier.
> 
> So, 1 patch to add the possibility of enable per platform, 1 patch for
> VLV/CHV and 1 patch for HSW/BDW.
> 
> I hope to get SKL/KBL ready soon.
> 
> Thanks,
> Rodrigo.
> 
> Rodrigo Vivi (3):
>   drm/i915: Change i915.enable_psr parameter to use per platform
>     default.
>   drm/i915: Enable PSR by default on Valleyview and Cherryview.
>   drm/i915: Enable PSR by default on Haswell and Broadwell.

I don't really have a real opinion on the issue on patch 1 and don't mind
merging the patch as-is.

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> on the entire series.

> 
>  drivers/gpu/drm/i915/i915_params.c | 5 +++--
>  drivers/gpu/drm/i915/intel_psr.c   | 9 +++++++++
>  2 files changed, 12 insertions(+), 2 deletions(-)
> 
> -- 
> 2.4.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default.
  2016-02-16 11:49     ` Zanoni, Paulo R
@ 2016-02-16 17:43       ` Vivi, Rodrigo
  0 siblings, 0 replies; 9+ messages in thread
From: Vivi, Rodrigo @ 2016-02-16 17:43 UTC (permalink / raw)
  To: intel-gfx, jani.nikula, Zanoni, Paulo R

On Tue, 2016-02-16 at 11:49 +0000, Zanoni, Paulo R wrote:
> Em Ter, 2016-02-16 às 12:27 +0200, Jani Nikula escreveu:
> > On Fri, 12 Feb 2016, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> > > This will give us flexibility to enable PSR by default
> > > independently so
> > > issues and corner cases in one platform won't affect others were 
> > > we
> > > have
> > > it working properly.
> > > 
> > > Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
> > > Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> > > ---
> > >  drivers/gpu/drm/i915/i915_params.c | 5 +++--
> > >  drivers/gpu/drm/i915/intel_psr.c   | 5 +++++
> > >  2 files changed, 8 insertions(+), 2 deletions(-)
> > > 
> > > diff --git a/drivers/gpu/drm/i915/i915_params.c
> > > b/drivers/gpu/drm/i915/i915_params.c
> > > index 8b9f368..1b40ee6 100644
> > > --- a/drivers/gpu/drm/i915/i915_params.c
> > > +++ b/drivers/gpu/drm/i915/i915_params.c
> > > @@ -38,7 +38,7 @@ struct i915_params i915 __read_mostly = {
> > >  	.enable_execlists = -1,
> > >  	.enable_hangcheck = true,
> > >  	.enable_ppgtt = -1,
> > > -	.enable_psr = 0,
> > > +	.enable_psr = -1,
> > >  	.preliminary_hw_support =
> > > IS_ENABLED(CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT),
> > >  	.disable_power_well = -1,
> > >  	.enable_ips = 1,
> > > @@ -128,7 +128,8 @@ MODULE_PARM_DESC(enable_execlists,
> > >  
> > >  module_param_named_unsafe(enable_psr, i915.enable_psr, int, 
> > > 0600);
> > >  MODULE_PARM_DESC(enable_psr, "Enable PSR "
> > > -		 "(0=disabled [default], 1=enabled - link mode
> > > chosen per-platform, 2=force link-standby mode, 3=force link-off
> > > mode)");
> > > +		 "(0=disabled, 1=enabled - link mode chosen per-
> > > platform, 2=force link-standby mode, 3=force link-off mode) "
> > > +		 "Default: -1 (use per-chip default)");
> > >  
> > >  module_param_named_unsafe(preliminary_hw_support,
> > > i915.preliminary_hw_support, int, 0600);
> > >  MODULE_PARM_DESC(preliminary_hw_support,
> > > diff --git a/drivers/gpu/drm/i915/intel_psr.c
> > > b/drivers/gpu/drm/i915/intel_psr.c
> > > index 4ab7579..655bdf6 100644
> > > --- a/drivers/gpu/drm/i915/intel_psr.c
> > > +++ b/drivers/gpu/drm/i915/intel_psr.c
> > > @@ -778,6 +778,11 @@ void intel_psr_init(struct drm_device *dev)
> > >  	dev_priv->psr_mmio_base = IS_HASWELL(dev_priv) ?
> > >  		HSW_EDP_PSR_BASE : BDW_EDP_PSR_BASE;
> > >  
> > > +	/* Per platform default */
> > > +	if (i915.enable_psr == -1) {
> > > +		i915.enable_psr = 0;
> > > +	}
> > 
> > I don't like changing module parameters in-kernel, because them
> > changing
> > may be surprising to the user (and possibly developers debugging
> > issues). We do this anyway, but AFAICT only for read only
> > parameters. It's perhaps less surprising in that case.


To be honest I shared this feeling. So when I was looking to the code
to do this change I tried different ways but all of them for me were
ugly. So in the end this one here seemed for me the cleanest way.

In the end -1 means driver will choose and nowadays driver is choosing
0, if we were enabling by default for all platforms driver would choose
1. So we are just moving driver's choice from the params to the
psr_init function. 

Also I didn't want to impact igt functionality at this point that
relies on the ability of changing the paramenter at runtime. If I was
adding another variable to control that I would have to change igt as
well.

> > 
> > Now, i915.enable_psr has permissions 0600, so you can change it
> > dynamically through sysfs. Maybe it's a good debugging thing, I 
> > don't
> > know. But I also notice some parts of the PSR functionality (link
> > standby) can only be forced with i915.enable_psr during module 
> > load,
> > and
> > not dynamically.

Yeap, the dynamic part is needed for igt that relies on it for
enabling/disabling psr. 
Since sysfs interface wasn't accepted yet I decided not changing this b
ehavior.
I also noticed that force-standby and force-link-off were just
available at boot time but this is all we need for now so while we
don't have the sysfs interface in place I believe we can live with this
difference.

> > 
> > So I think you need to either a) change enable_psr permission to 
> > 0400
> > and give up the ability to dynamically toggle the feature, or b) 
> > fix
> > up
> > the current link standby force and not change the parameter value
> > in-kernel in this patch.
> 
> Just as a reminder: igt relies on the 0600 permissions so it can run
> PSR tests even while PSR is disabled by default. This was done 
> because
> we're trying to fix the features, so removing them from QA/CI testing
> would only allow people to introduce unnoticed regressions. When I 
> did
> this, I was also expecting that at some point our pre-merge testing
> would be running a huge chunk of IGT.

Exactly. At this point it would require IGT changes as well that would
block stuff or, worst, not noticing new regressions or bugs.

I'm confident that sysfs changes will land soon for power stuff as we
agreed on design reviews so powertop could take advantage of
controlling and showing all of our power related stuff. So when that
properly lands we can re-visit this parameter and change PSR paramenter
and IGT properly.

> 
> > 
> > BR,
> > Jani.
> > 
> > 
> > > +
> > >  	/* Set link_standby x link_off defaults */
> > >  	if (IS_HASWELL(dev) || IS_BROADWELL(dev))
> > >  		/* HSW and BDW require workarounds that we don't
> > > implement. */
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2016-02-16 17:43 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-12 12:08 [PATCH 0/3] Enable PSR by default in certain platforms Rodrigo Vivi
2016-02-12 12:08 ` [PATCH 1/3] drm/i915: Change i915.enable_psr parameter to use per platform default Rodrigo Vivi
2016-02-16 10:27   ` Jani Nikula
2016-02-16 11:49     ` Zanoni, Paulo R
2016-02-16 17:43       ` Vivi, Rodrigo
2016-02-12 12:08 ` [PATCH 2/3] drm/i915: Enable PSR by default on Valleyview and Cherryview Rodrigo Vivi
2016-02-12 12:08 ` [PATCH 3/3] drm/i915: Enable PSR by default on Haswell and Broadwell Rodrigo Vivi
2016-02-16  9:27 ` ✓ Fi.CI.BAT: success for Enable PSR by default in certain platforms Patchwork
2016-02-16 15:25 ` [PATCH 0/3] " Daniel Vetter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.