* [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register
@ 2018-02-06 18:20 Imre Deak
2018-02-06 18:57 ` ✓ Fi.CI.BAT: success for " Patchwork
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Imre Deak @ 2018-02-06 18:20 UTC (permalink / raw)
To: intel-gfx
FORCEWAKE_ACK is depricated by BSpec at least starting from BDW,
referring to the multi-threaded version of it instead. Accessing
FORCEWAKE_ACK triggers an unclaimed register access error - at
least on GLK - see the Reference: below.
As opposed to this debugfs file we normally use the MT version on IVB
(if supported) and HSW/BDW, whereas we use FORCEWAKE_ACK_RENDER_GEN9
starting from SKL. Fix the problem by using these same registers on
each platform in the debugfs file too.
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103337
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
drivers/gpu/drm/i915/i915_debugfs.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 3849ded354e3..8a019cb0980d 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1458,18 +1458,21 @@ static int vlv_drpc_info(struct seq_file *m)
static int gen6_drpc_info(struct seq_file *m)
{
struct drm_i915_private *dev_priv = node_to_i915(m->private);
+ struct intel_uncore_forcewake_domain *render_domain =
+ &dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER];
u32 gt_core_status, rcctl1, rc6vids = 0;
u32 gen9_powergate_enable = 0, gen9_powergate_status = 0;
unsigned forcewake_count;
int count = 0;
- forcewake_count = READ_ONCE(dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER].wake_count);
+ forcewake_count = READ_ONCE(render_domain->wake_count);
if (forcewake_count) {
seq_puts(m, "RC information inaccurate because somebody "
"holds a forcewake reference \n");
} else {
/* NB: we cannot use forcewake, else we read the wrong values */
- while (count++ < 50 && (I915_READ_NOTRACE(FORCEWAKE_ACK) & 1))
+ while (count++ < 50 &&
+ (I915_READ_NOTRACE(render_domain->reg_ack) & 1))
udelay(10);
seq_printf(m, "RC information accurate: %s\n", yesno(count < 51));
}
--
2.13.2
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/ivb+: Use the correct render forcewake ACK register
2018-02-06 18:20 [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register Imre Deak
@ 2018-02-06 18:57 ` Patchwork
2018-02-06 19:48 ` ✓ Fi.CI.IGT: " Patchwork
2018-02-06 20:42 ` [PATCH] " Chris Wilson
2 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-02-06 18:57 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/ivb+: Use the correct render forcewake ACK register
URL : https://patchwork.freedesktop.org/series/37753/
State : success
== Summary ==
Series 37753v1 drm/i915/ivb+: Use the correct render forcewake ACK register
https://patchwork.freedesktop.org/api/1.0/series/37753/revisions/1/mbox/
Test kms_pipe_crc_basic:
Subgroup suspend-read-crc-pipe-b:
pass -> INCOMPLETE (fi-snb-2520m) fdo#103713
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fi-bdw-5557u total:288 pass:267 dwarn:0 dfail:0 fail:0 skip:21 time:421s
fi-bdw-gvtdvm total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:426s
fi-blb-e6850 total:288 pass:223 dwarn:1 dfail:0 fail:0 skip:64 time:373s
fi-bsw-n3050 total:288 pass:242 dwarn:0 dfail:0 fail:0 skip:46 time:485s
fi-bxt-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:483s
fi-bxt-j4205 total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:481s
fi-byt-j1900 total:288 pass:253 dwarn:0 dfail:0 fail:0 skip:35 time:467s
fi-byt-n2820 total:288 pass:249 dwarn:0 dfail:0 fail:0 skip:39 time:456s
fi-cfl-s2 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:574s
fi-cnl-y3 total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:585s
fi-elk-e7500 total:288 pass:229 dwarn:0 dfail:0 fail:0 skip:59 time:413s
fi-gdg-551 total:288 pass:179 dwarn:0 dfail:0 fail:1 skip:108 time:282s
fi-glk-1 total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:514s
fi-hsw-4770 total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:387s
fi-hsw-4770r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:397s
fi-ilk-650 total:288 pass:228 dwarn:0 dfail:0 fail:0 skip:60 time:412s
fi-ivb-3520m total:288 pass:259 dwarn:0 dfail:0 fail:0 skip:29 time:450s
fi-ivb-3770 total:288 pass:255 dwarn:0 dfail:0 fail:0 skip:33 time:419s
fi-kbl-7500u total:288 pass:263 dwarn:1 dfail:0 fail:0 skip:24 time:459s
fi-kbl-7560u total:288 pass:269 dwarn:0 dfail:0 fail:0 skip:19 time:497s
fi-kbl-7567u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:455s
fi-kbl-r total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:498s
fi-pnv-d510 total:288 pass:222 dwarn:1 dfail:0 fail:0 skip:65 time:595s
fi-skl-6260u total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:426s
fi-skl-6600u total:288 pass:261 dwarn:0 dfail:0 fail:0 skip:27 time:507s
fi-skl-6700hq total:288 pass:262 dwarn:0 dfail:0 fail:0 skip:26 time:528s
fi-skl-6700k2 total:288 pass:264 dwarn:0 dfail:0 fail:0 skip:24 time:491s
fi-skl-6770hq total:288 pass:268 dwarn:0 dfail:0 fail:0 skip:20 time:491s
fi-skl-guc total:288 pass:260 dwarn:0 dfail:0 fail:0 skip:28 time:415s
fi-skl-gvtdvm total:288 pass:265 dwarn:0 dfail:0 fail:0 skip:23 time:426s
fi-snb-2520m total:245 pass:211 dwarn:0 dfail:0 fail:0 skip:33
fi-snb-2600 total:288 pass:248 dwarn:0 dfail:0 fail:0 skip:40 time:393s
Blacklisted hosts:
fi-glk-dsi total:288 pass:258 dwarn:0 dfail:0 fail:0 skip:30 time:471s
078873da383505cf8d6940229007115b31f1d5e0 drm-tip: 2018y-02m-06d-11h-21m-36s UTC integration manifest
65ce7e1ae597 drm/i915/ivb+: Use the correct render forcewake ACK register
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7911/issues.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* ✓ Fi.CI.IGT: success for drm/i915/ivb+: Use the correct render forcewake ACK register
2018-02-06 18:20 [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register Imre Deak
2018-02-06 18:57 ` ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-02-06 19:48 ` Patchwork
2018-02-06 20:42 ` [PATCH] " Chris Wilson
2 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-02-06 19:48 UTC (permalink / raw)
To: Imre Deak; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/ivb+: Use the correct render forcewake ACK register
URL : https://patchwork.freedesktop.org/series/37753/
State : success
== Summary ==
Test gem_exec_schedule:
Subgroup reorder-wide-vebox:
incomplete -> PASS (shard-apl) fdo#102848
Test kms_setmode:
Subgroup basic:
fail -> PASS (shard-apl) fdo#99912
Test perf:
Subgroup enable-disable:
fail -> PASS (shard-apl) fdo#103715
Subgroup buffer-fill:
fail -> PASS (shard-apl) fdo#103755
fdo#102848 https://bugs.freedesktop.org/show_bug.cgi?id=102848
fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
fdo#103715 https://bugs.freedesktop.org/show_bug.cgi?id=103715
fdo#103755 https://bugs.freedesktop.org/show_bug.cgi?id=103755
shard-apl total:3383 pass:1753 dwarn:1 dfail:0 fail:19 skip:1609 time:12156s
shard-hsw total:3442 pass:1758 dwarn:1 dfail:0 fail:11 skip:1671 time:11756s
shard-snb total:3442 pass:1351 dwarn:1 dfail:0 fail:10 skip:2080 time:6621s
Blacklisted hosts:
shard-kbl total:3442 pass:1909 dwarn:1 dfail:0 fail:21 skip:1511 time:9635s
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_7911/shards.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register
2018-02-06 18:20 [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register Imre Deak
2018-02-06 18:57 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-02-06 19:48 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-02-06 20:42 ` Chris Wilson
2018-02-07 12:48 ` Imre Deak
2 siblings, 1 reply; 6+ messages in thread
From: Chris Wilson @ 2018-02-06 20:42 UTC (permalink / raw)
To: Imre Deak, intel-gfx
Quoting Imre Deak (2018-02-06 18:20:07)
> FORCEWAKE_ACK is depricated by BSpec at least starting from BDW,
> referring to the multi-threaded version of it instead. Accessing
> FORCEWAKE_ACK triggers an unclaimed register access error - at
> least on GLK - see the Reference: below.
>
> As opposed to this debugfs file we normally use the MT version on IVB
> (if supported) and HSW/BDW, whereas we use FORCEWAKE_ACK_RENDER_GEN9
> starting from SKL. Fix the problem by using these same registers on
> each platform in the debugfs file too.
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103337
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
> drivers/gpu/drm/i915/i915_debugfs.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 3849ded354e3..8a019cb0980d 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1458,18 +1458,21 @@ static int vlv_drpc_info(struct seq_file *m)
> static int gen6_drpc_info(struct seq_file *m)
> {
> struct drm_i915_private *dev_priv = node_to_i915(m->private);
> + struct intel_uncore_forcewake_domain *render_domain =
> + &dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER];
> u32 gt_core_status, rcctl1, rc6vids = 0;
> u32 gen9_powergate_enable = 0, gen9_powergate_status = 0;
> unsigned forcewake_count;
> int count = 0;
>
> - forcewake_count = READ_ONCE(dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER].wake_count);
> + forcewake_count = READ_ONCE(render_domain->wake_count);
> if (forcewake_count) {
> seq_puts(m, "RC information inaccurate because somebody "
> "holds a forcewake reference \n");
> } else {
> /* NB: we cannot use forcewake, else we read the wrong values */
> - while (count++ < 50 && (I915_READ_NOTRACE(FORCEWAKE_ACK) & 1))
> + while (count++ < 50 &&
> + (I915_READ_NOTRACE(render_domain->reg_ack) & 1))
> udelay(10);
> seq_printf(m, "RC information accurate: %s\n", yesno(count < 51));
I remember having a rant about this being absolutely meaningless. We can
just delete it imo.
-Chris
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register
2018-02-06 20:42 ` [PATCH] " Chris Wilson
@ 2018-02-07 12:48 ` Imre Deak
2018-02-07 12:50 ` Chris Wilson
0 siblings, 1 reply; 6+ messages in thread
From: Imre Deak @ 2018-02-07 12:48 UTC (permalink / raw)
To: Chris Wilson; +Cc: intel-gfx
On Tue, Feb 06, 2018 at 08:42:23PM +0000, Chris Wilson wrote:
> Quoting Imre Deak (2018-02-06 18:20:07)
> > FORCEWAKE_ACK is depricated by BSpec at least starting from BDW,
> > referring to the multi-threaded version of it instead. Accessing
> > FORCEWAKE_ACK triggers an unclaimed register access error - at
> > least on GLK - see the Reference: below.
> >
> > As opposed to this debugfs file we normally use the MT version on IVB
> > (if supported) and HSW/BDW, whereas we use FORCEWAKE_ACK_RENDER_GEN9
> > starting from SKL. Fix the problem by using these same registers on
> > each platform in the debugfs file too.
> >
> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> > Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103337
> > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > ---
> > drivers/gpu/drm/i915/i915_debugfs.c | 7 +++++--
> > 1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > index 3849ded354e3..8a019cb0980d 100644
> > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > @@ -1458,18 +1458,21 @@ static int vlv_drpc_info(struct seq_file *m)
> > static int gen6_drpc_info(struct seq_file *m)
> > {
> > struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > + struct intel_uncore_forcewake_domain *render_domain =
> > + &dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER];
> > u32 gt_core_status, rcctl1, rc6vids = 0;
> > u32 gen9_powergate_enable = 0, gen9_powergate_status = 0;
> > unsigned forcewake_count;
> > int count = 0;
> >
> > - forcewake_count = READ_ONCE(dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER].wake_count);
> > + forcewake_count = READ_ONCE(render_domain->wake_count);
> > if (forcewake_count) {
> > seq_puts(m, "RC information inaccurate because somebody "
> > "holds a forcewake reference \n");
> > } else {
> > /* NB: we cannot use forcewake, else we read the wrong values */
> > - while (count++ < 50 && (I915_READ_NOTRACE(FORCEWAKE_ACK) & 1))
> > + while (count++ < 50 &&
> > + (I915_READ_NOTRACE(render_domain->reg_ack) & 1))
> > udelay(10);
> > seq_printf(m, "RC information accurate: %s\n", yesno(count < 51));
>
> I remember having a rant about this being absolutely meaningless. We can
> just delete it imo.
Ok, can remove it. IIUC the rational is that the forcewake count is
provided anyway in the same file and we don't win much by noticing
a pending forcewake release (without a FW reference), since it's a
transient state.
--Imre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register
2018-02-07 12:48 ` Imre Deak
@ 2018-02-07 12:50 ` Chris Wilson
0 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2018-02-07 12:50 UTC (permalink / raw)
To: imre.deak; +Cc: intel-gfx
Quoting Imre Deak (2018-02-07 12:48:33)
> On Tue, Feb 06, 2018 at 08:42:23PM +0000, Chris Wilson wrote:
> > Quoting Imre Deak (2018-02-06 18:20:07)
> > > FORCEWAKE_ACK is depricated by BSpec at least starting from BDW,
> > > referring to the multi-threaded version of it instead. Accessing
> > > FORCEWAKE_ACK triggers an unclaimed register access error - at
> > > least on GLK - see the Reference: below.
> > >
> > > As opposed to this debugfs file we normally use the MT version on IVB
> > > (if supported) and HSW/BDW, whereas we use FORCEWAKE_ACK_RENDER_GEN9
> > > starting from SKL. Fix the problem by using these same registers on
> > > each platform in the debugfs file too.
> > >
> > > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> > > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> > > Reference: https://bugs.freedesktop.org/show_bug.cgi?id=103337
> > > Signed-off-by: Imre Deak <imre.deak@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/i915_debugfs.c | 7 +++++--
> > > 1 file changed, 5 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> > > index 3849ded354e3..8a019cb0980d 100644
> > > --- a/drivers/gpu/drm/i915/i915_debugfs.c
> > > +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> > > @@ -1458,18 +1458,21 @@ static int vlv_drpc_info(struct seq_file *m)
> > > static int gen6_drpc_info(struct seq_file *m)
> > > {
> > > struct drm_i915_private *dev_priv = node_to_i915(m->private);
> > > + struct intel_uncore_forcewake_domain *render_domain =
> > > + &dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER];
> > > u32 gt_core_status, rcctl1, rc6vids = 0;
> > > u32 gen9_powergate_enable = 0, gen9_powergate_status = 0;
> > > unsigned forcewake_count;
> > > int count = 0;
> > >
> > > - forcewake_count = READ_ONCE(dev_priv->uncore.fw_domain[FW_DOMAIN_ID_RENDER].wake_count);
> > > + forcewake_count = READ_ONCE(render_domain->wake_count);
> > > if (forcewake_count) {
> > > seq_puts(m, "RC information inaccurate because somebody "
> > > "holds a forcewake reference \n");
> > > } else {
> > > /* NB: we cannot use forcewake, else we read the wrong values */
> > > - while (count++ < 50 && (I915_READ_NOTRACE(FORCEWAKE_ACK) & 1))
> > > + while (count++ < 50 &&
> > > + (I915_READ_NOTRACE(render_domain->reg_ack) & 1))
> > > udelay(10);
> > > seq_printf(m, "RC information accurate: %s\n", yesno(count < 51));
> >
> > I remember having a rant about this being absolutely meaningless. We can
> > just delete it imo.
>
> Ok, can remove it. IIUC the rational is that the forcewake count is
> provided anyway in the same file and we don't win much by noticing
> a pending forcewake release (without a FW reference), since it's a
> transient state.
It's also "multi-threaded"; what the kernel thinks is only a small part
of the picture.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-02-07 12:51 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-02-06 18:20 [PATCH] drm/i915/ivb+: Use the correct render forcewake ACK register Imre Deak
2018-02-06 18:57 ` ✓ Fi.CI.BAT: success for " Patchwork
2018-02-06 19:48 ` ✓ Fi.CI.IGT: " Patchwork
2018-02-06 20:42 ` [PATCH] " Chris Wilson
2018-02-07 12:48 ` Imre Deak
2018-02-07 12:50 ` Chris Wilson
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.