diff mbox

drm/i915: print full error ring semaphore mboxes and sync.

Message ID 1405615195-17356-1-git-send-email-rodrigo.vivi@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Rodrigo Vivi July 17, 2014, 4:39 p.m. UTC
With the increasing number of rings,
we probably have more information to print than we were printing.

Cc: Ben Widawsky <benjamin.widawsky@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/i915_gpu_error.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

Comments

Ben Widawsky July 18, 2014, 12:23 a.m. UTC | #1
On Thu, Jul 17, 2014 at 09:39:55AM -0700, Rodrigo Vivi wrote:
> With the increasing number of rings,
> we probably have more information to print than we were printing.

After our discussion were you going to send a new patch?

[snip]
Rodrigo Vivi July 18, 2014, 12:36 a.m. UTC | #2
You mean you prefer the the loop with  for (i = 0; i < hweight(ring_mask); i++) {
instead? I thought you were ok with either and I preferred this one just to be on the safest side and let userspace parse it properly.

Or do you prefer that other version with double loop but with names of rings?

Thanks,
Rodrigo.

-----Original Message-----
From: Widawsky, Benjamin 
Sent: Thursday, July 17, 2014 5:23 PM
To: Vivi, Rodrigo
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH] drm/i915: print full error ring semaphore mboxes and sync.

On Thu, Jul 17, 2014 at 09:39:55AM -0700, Rodrigo Vivi wrote:
> With the increasing number of rings,
> we probably have more information to print than we were printing.

After our discussion were you going to send a new patch?

[snip]
Ben Widawsky July 18, 2014, 12:42 a.m. UTC | #3
On Thu, Jul 17, 2014 at 05:36:52PM -0700, Vivi, Rodrigo wrote:
> You mean you prefer the the loop with  for (i = 0; i < hweight(ring_mask); i++) {
> instead? I thought you were ok with either and I preferred this one just to be on the safest side and let userspace parse it properly.

I can live with either. I guess it's a little more obvious if we only
capture the relevant data on platforms that have actual registers. gen8
is special IMO here because we're writing to memory. But either way this
is an improvement.

> 
> Or do you prefer that other version with double loop but with names of rings?

I think it would be cool if we could have it as such, but I am not sure
what others think:
SYNC[RCS->VCS]: 0x%08x

But whatever.


Anyway, I was just asking because I wasn't sure if I should wait for
another patch.

> 
> Thanks,
> Rodrigo.
> 
> -----Original Message-----
> From: Widawsky, Benjamin 
> Sent: Thursday, July 17, 2014 5:23 PM
> To: Vivi, Rodrigo
> Cc: intel-gfx@lists.freedesktop.org
> Subject: Re: [PATCH] drm/i915: print full error ring semaphore mboxes and sync.
> 
> On Thu, Jul 17, 2014 at 09:39:55AM -0700, Rodrigo Vivi wrote:
> > With the increasing number of rings,
> > we probably have more information to print than we were printing.
> 
> After our discussion were you going to send a new patch?
> 
> [snip]
> 
> 
> -- 
> Ben Widawsky, Intel Open Source Technology Center
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index 36a7960..0beeebf 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -242,6 +242,8 @@  static void i915_ring_error_state(struct drm_i915_error_state_buf *m,
 				  struct drm_device *dev,
 				  struct drm_i915_error_ring *ring)
 {
+	int i;
+
 	if (!ring->valid)
 		return;
 
@@ -264,23 +266,15 @@  static void i915_ring_error_state(struct drm_i915_error_state_buf *m,
 	if (INTEL_INFO(dev)->gen >= 6) {
 		err_printf(m, "  RC PSMI: 0x%08x\n", ring->rc_psmi);
 		err_printf(m, "  FAULT_REG: 0x%08x\n", ring->fault_reg);
-		err_printf(m, "  SYNC_0: 0x%08x [last synced 0x%08x]\n",
-			   ring->semaphore_mboxes[0],
-			   ring->semaphore_seqno[0]);
-		err_printf(m, "  SYNC_1: 0x%08x [last synced 0x%08x]\n",
-			   ring->semaphore_mboxes[1],
-			   ring->semaphore_seqno[1]);
-		if (HAS_VEBOX(dev)) {
-			err_printf(m, "  SYNC_2: 0x%08x [last synced 0x%08x]\n",
-				   ring->semaphore_mboxes[2],
-				   ring->semaphore_seqno[2]);
+		for (i = 0; i < I915_NUM_RINGS - 1; i++) {
+			err_printf(m, "  SYNC_%d: 0x%08x [last synced 0x%08x]\n",
+				   i, ring->semaphore_mboxes[i],
+				   ring->semaphore_seqno[i]);
 		}
 	}
 	if (USES_PPGTT(dev)) {
 		err_printf(m, "  GFX_MODE: 0x%08x\n", ring->vm_info.gfx_mode);
-
 		if (INTEL_INFO(dev)->gen >= 8) {
-			int i;
 			for (i = 0; i < 4; i++)
 				err_printf(m, "  PDP%d: 0x%016llx\n",
 					   i, ring->vm_info.pdp[i]);