public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
@ 2015-02-05 10:16 Mika Kuoppala
  2015-02-05 10:25 ` Chris Wilson
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Mika Kuoppala @ 2015-02-05 10:16 UTC (permalink / raw)
  To: intel-gfx

We read the coherent current seqno and actual head from ring.
For hardware access we need to take runtime_pm reference, which brings in
locking. As this debugfs entry is for debugging hangcheck behaviour,
including locking problems, we need to be flexible on taking them.

Try to see if we get a lock and if so, get seqno and actual head
from hardware. If we don't have exclusive access, get lazy coherent
seqno and print token acthd for which the user can see that the
seqno is of different nature.

Testcase: igt/pm_rpm/debugfs-read
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88910
Tested-by: Ding Heng <hengx.ding@intel.com>
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 26 +++++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 9af17fb..5a6b0e2 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1223,8 +1223,11 @@ out:
 static int i915_hangcheck_info(struct seq_file *m, void *unused)
 {
 	struct drm_info_node *node = m->private;
-	struct drm_i915_private *dev_priv = to_i915(node->minor->dev);
+	struct drm_device *dev = node->minor->dev;
+	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_engine_cs *ring;
+	u64 acthd[I915_NUM_RINGS];
+	u32 seqno[I915_NUM_RINGS];
 	int i;
 
 	if (!i915.enable_hangcheck) {
@@ -1232,6 +1235,23 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
 		return 0;
 	}
 
+	if (mutex_trylock(&dev->struct_mutex)) {
+		intel_runtime_pm_get(dev_priv);
+
+		for_each_ring(ring, dev_priv, i) {
+			seqno[i] = ring->get_seqno(ring, false);
+			acthd[i] = intel_ring_get_active_head(ring);
+		}
+
+		intel_runtime_pm_put(dev_priv);
+		mutex_unlock(&dev->struct_mutex);
+	} else {
+		for_each_ring(ring, dev_priv, i) {
+			seqno[i] = ring->get_seqno(ring, true);
+			acthd[i] = -1;
+		}
+	}
+
 	if (delayed_work_pending(&dev_priv->gpu_error.hangcheck_work)) {
 		seq_printf(m, "Hangcheck active, fires in %dms\n",
 			   jiffies_to_msecs(dev_priv->gpu_error.hangcheck_work.timer.expires -
@@ -1242,12 +1262,12 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
 	for_each_ring(ring, dev_priv, i) {
 		seq_printf(m, "%s:\n", ring->name);
 		seq_printf(m, "\tseqno = %x [current %x]\n",
-			   ring->hangcheck.seqno, ring->get_seqno(ring, false));
+			   ring->hangcheck.seqno, seqno[i]);
 		seq_printf(m, "\taction = %d\n", ring->hangcheck.action);
 		seq_printf(m, "\tscore = %d\n", ring->hangcheck.score);
 		seq_printf(m, "\tACTHD = 0x%08llx [current 0x%08llx]\n",
 			   (long long)ring->hangcheck.acthd,
-			   (long long)intel_ring_get_active_head(ring));
+			   (long long)acthd[i]);
 		seq_printf(m, "\tmax ACTHD = 0x%08llx\n",
 			   (long long)ring->hangcheck.max_acthd);
 	}
-- 
1.9.1

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

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

* Re: [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 10:16 [PATCH] drm/i915: Take runtime pm reference on hangcheck_info Mika Kuoppala
@ 2015-02-05 10:25 ` Chris Wilson
  2015-02-05 14:29 ` Daniel Vetter
  2015-02-05 15:33 ` shuang.he
  2 siblings, 0 replies; 9+ messages in thread
From: Chris Wilson @ 2015-02-05 10:25 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

On Thu, Feb 05, 2015 at 12:16:32PM +0200, Mika Kuoppala wrote:
> We read the coherent current seqno and actual head from ring.
> For hardware access we need to take runtime_pm reference, which brings in
> locking. As this debugfs entry is for debugging hangcheck behaviour,
> including locking problems, we need to be flexible on taking them.
> 
> Try to see if we get a lock and if so, get seqno and actual head
> from hardware. If we don't have exclusive access, get lazy coherent
> seqno and print token acthd for which the user can see that the
> seqno is of different nature.
> 
> Testcase: igt/pm_rpm/debugfs-read
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88910
> Tested-by: Ding Heng <hengx.ding@intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>

It also has the nice effect of collating all the hw access into a single
block which makes it easier to spot the hw details vs bookkeeping. It
probably suggests we should reorder the output similarly?

Anyway,
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 10:16 [PATCH] drm/i915: Take runtime pm reference on hangcheck_info Mika Kuoppala
  2015-02-05 10:25 ` Chris Wilson
@ 2015-02-05 14:29 ` Daniel Vetter
  2015-02-05 15:54   ` Mika Kuoppala
  2015-02-05 16:41   ` Mika Kuoppala
  2015-02-05 15:33 ` shuang.he
  2 siblings, 2 replies; 9+ messages in thread
From: Daniel Vetter @ 2015-02-05 14:29 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

On Thu, Feb 05, 2015 at 12:16:32PM +0200, Mika Kuoppala wrote:
> We read the coherent current seqno and actual head from ring.
> For hardware access we need to take runtime_pm reference, which brings in
> locking. As this debugfs entry is for debugging hangcheck behaviour,
> including locking problems, we need to be flexible on taking them.
> 
> Try to see if we get a lock and if so, get seqno and actual head
> from hardware. If we don't have exclusive access, get lazy coherent
> seqno and print token acthd for which the user can see that the
> seqno is of different nature.
> 
> Testcase: igt/pm_rpm/debugfs-read
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88910
> Tested-by: Ding Heng <hengx.ding@intel.com>
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_debugfs.c | 26 +++++++++++++++++++++++---
>  1 file changed, 23 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
> index 9af17fb..5a6b0e2 100644
> --- a/drivers/gpu/drm/i915/i915_debugfs.c
> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
> @@ -1223,8 +1223,11 @@ out:
>  static int i915_hangcheck_info(struct seq_file *m, void *unused)
>  {
>  	struct drm_info_node *node = m->private;
> -	struct drm_i915_private *dev_priv = to_i915(node->minor->dev);
> +	struct drm_device *dev = node->minor->dev;
> +	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_engine_cs *ring;
> +	u64 acthd[I915_NUM_RINGS];
> +	u32 seqno[I915_NUM_RINGS];
>  	int i;
>  
>  	if (!i915.enable_hangcheck) {
> @@ -1232,6 +1235,23 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
>  		return 0;
>  	}
>  
> +	if (mutex_trylock(&dev->struct_mutex)) {

Why do we need dev->struct_mutex here?
-Daniel

> +		intel_runtime_pm_get(dev_priv);
> +
> +		for_each_ring(ring, dev_priv, i) {
> +			seqno[i] = ring->get_seqno(ring, false);
> +			acthd[i] = intel_ring_get_active_head(ring);
> +		}
> +
> +		intel_runtime_pm_put(dev_priv);
> +		mutex_unlock(&dev->struct_mutex);
> +	} else {
> +		for_each_ring(ring, dev_priv, i) {
> +			seqno[i] = ring->get_seqno(ring, true);
> +			acthd[i] = -1;
> +		}
> +	}
> +
>  	if (delayed_work_pending(&dev_priv->gpu_error.hangcheck_work)) {
>  		seq_printf(m, "Hangcheck active, fires in %dms\n",
>  			   jiffies_to_msecs(dev_priv->gpu_error.hangcheck_work.timer.expires -
> @@ -1242,12 +1262,12 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
>  	for_each_ring(ring, dev_priv, i) {
>  		seq_printf(m, "%s:\n", ring->name);
>  		seq_printf(m, "\tseqno = %x [current %x]\n",
> -			   ring->hangcheck.seqno, ring->get_seqno(ring, false));
> +			   ring->hangcheck.seqno, seqno[i]);
>  		seq_printf(m, "\taction = %d\n", ring->hangcheck.action);
>  		seq_printf(m, "\tscore = %d\n", ring->hangcheck.score);
>  		seq_printf(m, "\tACTHD = 0x%08llx [current 0x%08llx]\n",
>  			   (long long)ring->hangcheck.acthd,
> -			   (long long)intel_ring_get_active_head(ring));
> +			   (long long)acthd[i]);
>  		seq_printf(m, "\tmax ACTHD = 0x%08llx\n",
>  			   (long long)ring->hangcheck.max_acthd);
>  	}
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 10:16 [PATCH] drm/i915: Take runtime pm reference on hangcheck_info Mika Kuoppala
  2015-02-05 10:25 ` Chris Wilson
  2015-02-05 14:29 ` Daniel Vetter
@ 2015-02-05 15:33 ` shuang.he
  2 siblings, 0 replies; 9+ messages in thread
From: shuang.he @ 2015-02-05 15:33 UTC (permalink / raw)
  To: shuang.he, ethan.gao, intel-gfx, mika.kuoppala

Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 5715
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                 -6              282/283              276/283
ILK              +1                 316/319              317/319
SNB                                  322/346              322/346
IVB                 -2              382/384              380/384
BYT                                  296/296              296/296
HSW              +1-2              425/428              424/428
BDW                                  318/333              318/333
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
 PNV  igt_gem_userptr_blits_coherency-sync      CRASH(1, M7)PASS(1, M23)      CRASH(1, M7)
 PNV  igt_gem_userptr_blits_coherency-unsync      CRASH(1, M7)PASS(1, M23)      CRASH(1, M7)
 PNV  igt_gen3_render_linear_blits      FAIL(1, M7)CRASH(1, M23)PASS(3, M25M23)      FAIL(1, M7)
 PNV  igt_gen3_render_mixed_blits      FAIL(1, M7)PASS(1, M23)      FAIL(1, M7)
 PNV  igt_gen3_render_tiledx_blits      FAIL(1, M7)PASS(1, M23)      FAIL(1, M7)
 PNV  igt_gen3_render_tiledy_blits      FAIL(1, M7)PASS(1, M23)      FAIL(1, M7)
*PNV  igt_gem_fence_thrash_bo-write-verify-threaded-none      PASS(2, M23M7)      CRASH(1, M7)
*ILK  igt_drv_suspend_forcewake      DMESG_WARN(2, M26)      PASS(1, M26)
*IVB  igt_gem_pwrite_pread_display-copy-performance      PASS(2, M21M4)      DMESG_WARN(1, M4)
 IVB  igt_gem_storedw_batches_loop_secure-dispatch      DMESG_WARN(1, M34)PASS(4, M21M34M4)      DMESG_WARN(1, M4)
 HSW  igt_gem_storedw_loop_blt      DMESG_WARN(1, M20)PASS(1, M20)      DMESG_WARN(1, M20)
 HSW  igt_gem_storedw_loop_vebox      DMESG_WARN(1, M20)PASS(1, M20)      DMESG_WARN(1, M20)
*HSW  igt_pm_rpm_debugfs-read      DMESG_WARN(2, M20)      PASS(1, M20)
Note: You need to pay more attention to line start with '*'
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 14:29 ` Daniel Vetter
@ 2015-02-05 15:54   ` Mika Kuoppala
  2015-02-05 16:41   ` Mika Kuoppala
  1 sibling, 0 replies; 9+ messages in thread
From: Mika Kuoppala @ 2015-02-05 15:54 UTC (permalink / raw)
  To: Daniel Vetter; +Cc: intel-gfx

Daniel Vetter <daniel@ffwll.ch> writes:

> On Thu, Feb 05, 2015 at 12:16:32PM +0200, Mika Kuoppala wrote:
>> We read the coherent current seqno and actual head from ring.
>> For hardware access we need to take runtime_pm reference, which brings in
>> locking. As this debugfs entry is for debugging hangcheck behaviour,
>> including locking problems, we need to be flexible on taking them.
>> 
>> Try to see if we get a lock and if so, get seqno and actual head
>> from hardware. If we don't have exclusive access, get lazy coherent
>> seqno and print token acthd for which the user can see that the
>> seqno is of different nature.
>> 
>> Testcase: igt/pm_rpm/debugfs-read
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88910
>> Tested-by: Ding Heng <hengx.ding@intel.com>
>> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
>> ---
>>  drivers/gpu/drm/i915/i915_debugfs.c | 26 +++++++++++++++++++++++---
>>  1 file changed, 23 insertions(+), 3 deletions(-)
>> 
>> diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
>> index 9af17fb..5a6b0e2 100644
>> --- a/drivers/gpu/drm/i915/i915_debugfs.c
>> +++ b/drivers/gpu/drm/i915/i915_debugfs.c
>> @@ -1223,8 +1223,11 @@ out:
>>  static int i915_hangcheck_info(struct seq_file *m, void *unused)
>>  {
>>  	struct drm_info_node *node = m->private;
>> -	struct drm_i915_private *dev_priv = to_i915(node->minor->dev);
>> +	struct drm_device *dev = node->minor->dev;
>> +	struct drm_i915_private *dev_priv = dev->dev_private;
>>  	struct intel_engine_cs *ring;
>> +	u64 acthd[I915_NUM_RINGS];
>> +	u32 seqno[I915_NUM_RINGS];
>>  	int i;
>>  
>>  	if (!i915.enable_hangcheck) {
>> @@ -1232,6 +1235,23 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
>>  		return 0;
>>  	}
>>  
>> +	if (mutex_trylock(&dev->struct_mutex)) {
>
> Why do we need dev->struct_mutex here?

Apparently intel_runtime_pm_get is fine without it. Cargoculted
from the neighbouring debugfs entry.

Only thing I can think of is that it reveals if we had
exclusive access depending of achtd token value printed. But is
that information then of any use I dont know.

I'll respin

-Mika

> -Daniel
>
>> +		intel_runtime_pm_get(dev_priv);
>> +
>> +		for_each_ring(ring, dev_priv, i) {
>> +			seqno[i] = ring->get_seqno(ring, false);
>> +			acthd[i] = intel_ring_get_active_head(ring);
>> +		}
>> +
>> +		intel_runtime_pm_put(dev_priv);
>> +		mutex_unlock(&dev->struct_mutex);
>> +	} else {
>> +		for_each_ring(ring, dev_priv, i) {
>> +			seqno[i] = ring->get_seqno(ring, true);
>> +			acthd[i] = -1;
>> +		}
>> +	}
>> +
>>  	if (delayed_work_pending(&dev_priv->gpu_error.hangcheck_work)) {
>>  		seq_printf(m, "Hangcheck active, fires in %dms\n",
>>  			   jiffies_to_msecs(dev_priv->gpu_error.hangcheck_work.timer.expires -
>> @@ -1242,12 +1262,12 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
>>  	for_each_ring(ring, dev_priv, i) {
>>  		seq_printf(m, "%s:\n", ring->name);
>>  		seq_printf(m, "\tseqno = %x [current %x]\n",
>> -			   ring->hangcheck.seqno, ring->get_seqno(ring, false));
>> +			   ring->hangcheck.seqno, seqno[i]);
>>  		seq_printf(m, "\taction = %d\n", ring->hangcheck.action);
>>  		seq_printf(m, "\tscore = %d\n", ring->hangcheck.score);
>>  		seq_printf(m, "\tACTHD = 0x%08llx [current 0x%08llx]\n",
>>  			   (long long)ring->hangcheck.acthd,
>> -			   (long long)intel_ring_get_active_head(ring));
>> +			   (long long)acthd[i]);
>>  		seq_printf(m, "\tmax ACTHD = 0x%08llx\n",
>>  			   (long long)ring->hangcheck.max_acthd);
>>  	}
>> -- 
>> 1.9.1
>> 
>> _______________________________________________
>> Intel-gfx mailing list
>> Intel-gfx@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
>
> -- 
> Daniel Vetter
> Software Engineer, Intel Corporation
> +41 (0) 79 365 57 48 - http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 14:29 ` Daniel Vetter
  2015-02-05 15:54   ` Mika Kuoppala
@ 2015-02-05 16:41   ` Mika Kuoppala
  2015-02-05 16:56     ` Chris Wilson
  2015-02-06  4:25     ` shuang.he
  1 sibling, 2 replies; 9+ messages in thread
From: Mika Kuoppala @ 2015-02-05 16:41 UTC (permalink / raw)
  To: intel-gfx

We read the coherent current seqno and actual head from ring.
For hardware access we need to take runtime_pm reference.

Get hardware specific values with runtime reference held
and print them first to emphasize hw state vs bookkeepping.

v2: Reorder output according to hw access (Chris)
    remove superfluous locking (Daniel)

Testcase: igt/pm_rpm/debugfs-read
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88910
Tested-by: Ding Heng <hengx.ding@intel.com> (v1)
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
---
 drivers/gpu/drm/i915/i915_debugfs.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 9af17fb..2e1f723 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -1223,8 +1223,11 @@ out:
 static int i915_hangcheck_info(struct seq_file *m, void *unused)
 {
 	struct drm_info_node *node = m->private;
-	struct drm_i915_private *dev_priv = to_i915(node->minor->dev);
+	struct drm_device *dev = node->minor->dev;
+	struct drm_i915_private *dev_priv = dev->dev_private;
 	struct intel_engine_cs *ring;
+	u64 acthd[I915_NUM_RINGS];
+	u32 seqno[I915_NUM_RINGS];
 	int i;
 
 	if (!i915.enable_hangcheck) {
@@ -1232,6 +1235,15 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
 		return 0;
 	}
 
+	intel_runtime_pm_get(dev_priv);
+
+	for_each_ring(ring, dev_priv, i) {
+		seqno[i] = ring->get_seqno(ring, false);
+		acthd[i] = intel_ring_get_active_head(ring);
+	}
+
+	intel_runtime_pm_put(dev_priv);
+
 	if (delayed_work_pending(&dev_priv->gpu_error.hangcheck_work)) {
 		seq_printf(m, "Hangcheck active, fires in %dms\n",
 			   jiffies_to_msecs(dev_priv->gpu_error.hangcheck_work.timer.expires -
@@ -1242,14 +1254,14 @@ static int i915_hangcheck_info(struct seq_file *m, void *unused)
 	for_each_ring(ring, dev_priv, i) {
 		seq_printf(m, "%s:\n", ring->name);
 		seq_printf(m, "\tseqno = %x [current %x]\n",
-			   ring->hangcheck.seqno, ring->get_seqno(ring, false));
-		seq_printf(m, "\taction = %d\n", ring->hangcheck.action);
-		seq_printf(m, "\tscore = %d\n", ring->hangcheck.score);
+			   ring->hangcheck.seqno, seqno[i]);
 		seq_printf(m, "\tACTHD = 0x%08llx [current 0x%08llx]\n",
 			   (long long)ring->hangcheck.acthd,
-			   (long long)intel_ring_get_active_head(ring));
+			   (long long)acthd[i]);
 		seq_printf(m, "\tmax ACTHD = 0x%08llx\n",
 			   (long long)ring->hangcheck.max_acthd);
+		seq_printf(m, "\tscore = %d\n", ring->hangcheck.score);
+		seq_printf(m, "\taction = %d\n", ring->hangcheck.action);
 	}
 
 	return 0;
-- 
1.9.1

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

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

* Re: [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 16:41   ` Mika Kuoppala
@ 2015-02-05 16:56     ` Chris Wilson
  2015-02-09 12:31       ` Jani Nikula
  2015-02-06  4:25     ` shuang.he
  1 sibling, 1 reply; 9+ messages in thread
From: Chris Wilson @ 2015-02-05 16:56 UTC (permalink / raw)
  To: Mika Kuoppala; +Cc: intel-gfx

On Thu, Feb 05, 2015 at 06:41:48PM +0200, Mika Kuoppala wrote:
> We read the coherent current seqno and actual head from ring.
> For hardware access we need to take runtime_pm reference.
> 
> Get hardware specific values with runtime reference held
> and print them first to emphasize hw state vs bookkeepping.
> 
> v2: Reorder output according to hw access (Chris)
>     remove superfluous locking (Daniel)
> 
> Testcase: igt/pm_rpm/debugfs-read
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88910
> Tested-by: Ding Heng <hengx.ding@intel.com> (v1)
> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>

I'm happy with that:
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 16:41   ` Mika Kuoppala
  2015-02-05 16:56     ` Chris Wilson
@ 2015-02-06  4:25     ` shuang.he
  1 sibling, 0 replies; 9+ messages in thread
From: shuang.he @ 2015-02-06  4:25 UTC (permalink / raw)
  To: shuang.he, ethan.gao, intel-gfx, mika.kuoppala

Tested-By: PRC QA PRTS (Patch Regression Test System Contact: shuang.he@intel.com)
Task id: 5723
-------------------------------------Summary-------------------------------------
Platform          Delta          drm-intel-nightly          Series Applied
PNV                 -2              282/283              280/283
ILK                                  316/319              316/319
SNB                                  322/346              322/346
IVB                                  382/384              382/384
BYT                                  296/296              296/296
HSW              +1-1              425/428              425/428
BDW                                  318/333              318/333
-------------------------------------Detailed-------------------------------------
Platform  Test                                drm-intel-nightly          Series Applied
 PNV  igt_gen3_render_linear_blits      FAIL(3, M7)CRASH(1, M23)PASS(4, M25M23)      FAIL(1, M7)
 PNV  igt_gen3_render_mixed_blits      FAIL(3, M7)PASS(1, M23)      FAIL(1, M7)
 PNV  igt_gem_tiled_pread_pwrite      FAIL(2, M7)PASS(1, M23)      FAIL(1, M7)
*HSW  igt_gem_pwrite_pread_uncached-copy-performance      PASS(2, M20)      DMESG_WARN(1, M20)
*HSW  igt_pm_rpm_debugfs-read      DMESG_WARN(3, M20)      PASS(1, M20)
Note: You need to pay more attention to line start with '*'
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

* Re: [PATCH] drm/i915: Take runtime pm reference on hangcheck_info
  2015-02-05 16:56     ` Chris Wilson
@ 2015-02-09 12:31       ` Jani Nikula
  0 siblings, 0 replies; 9+ messages in thread
From: Jani Nikula @ 2015-02-09 12:31 UTC (permalink / raw)
  To: Chris Wilson, Mika Kuoppala; +Cc: intel-gfx

On Thu, 05 Feb 2015, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> On Thu, Feb 05, 2015 at 06:41:48PM +0200, Mika Kuoppala wrote:
>> We read the coherent current seqno and actual head from ring.
>> For hardware access we need to take runtime_pm reference.
>> 
>> Get hardware specific values with runtime reference held
>> and print them first to emphasize hw state vs bookkeepping.
>> 
>> v2: Reorder output according to hw access (Chris)
>>     remove superfluous locking (Daniel)
>> 
>> Testcase: igt/pm_rpm/debugfs-read
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=88910
>> Tested-by: Ding Heng <hengx.ding@intel.com> (v1)
>> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
>
> I'm happy with that:
> Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>

Pushed to drm-intel-next-fixes, thanks for the patch and review.

BR,
Jani.


> -Chris
>
> -- 
> Chris Wilson, Intel Open Source Technology Centre
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

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

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

end of thread, other threads:[~2015-02-09 12:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-02-05 10:16 [PATCH] drm/i915: Take runtime pm reference on hangcheck_info Mika Kuoppala
2015-02-05 10:25 ` Chris Wilson
2015-02-05 14:29 ` Daniel Vetter
2015-02-05 15:54   ` Mika Kuoppala
2015-02-05 16:41   ` Mika Kuoppala
2015-02-05 16:56     ` Chris Wilson
2015-02-09 12:31       ` Jani Nikula
2015-02-06  4:25     ` shuang.he
2015-02-05 15:33 ` shuang.he

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox