All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Widawsky <ben@bwidawsk.net>
To: Rodrigo Vivi <rodrigo.vivi@intel.com>
Cc: intel-gfx@lists.freedesktop.org,
	Ben Widawsky <benjamin.widawsky@intel.com>
Subject: Re: [PATCH] drm/i915: print full error ring semaphore mboxes and sync.
Date: Thu, 17 Jul 2014 19:42:34 -0700	[thread overview]
Message-ID: <20140718024233.GA6673@bwidawsk.net> (raw)
In-Reply-To: <1405619897-26666-1-git-send-email-rodrigo.vivi@intel.com>

On Thu, Jul 17, 2014 at 10:58:17AM -0700, Rodrigo Vivi wrote:
> With the increasing number of rings,
> we probably have more information to print than we were printing.
> 
> v2: Loop only over active rings and print info with ring names.
> 
> Cc: Ben Widawsky <benjamin.widawsky@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_gpu_error.c | 24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
> index 36a7960..b1848e0 100644
> --- a/drivers/gpu/drm/i915/i915_gpu_error.c
> +++ b/drivers/gpu/drm/i915/i915_gpu_error.c
> @@ -242,6 +242,10 @@ static void i915_ring_error_state(struct drm_i915_error_state_buf *m,
>  				  struct drm_device *dev,
>  				  struct drm_i915_error_ring *ring)
>  {
> +	struct drm_i915_private *dev_priv = dev->dev_private;
> +	struct intel_engine_cs *from, *to;
> +	int i, j;
> +
>  	if (!ring->valid)
>  		return;
>  
> @@ -264,23 +268,19 @@ 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_each_ring(from, dev_priv, i) {
> +			for_each_ring(to, dev_priv, j) {
> +				int idx = intel_ring_sync_index(from, to);
If you plan to get the gen8 gaps in the object:

if (i == j && !IS_GEN8())
	continue;

If not, with the existing code:
if (i == j)
	continue;

Currently, I am also in favor of
for(i = 0; i < NUM_RINGS - 1; i++) {
	if (!(INTEL_INFO(dev)->ring_mask & (1<<i)))
		continue;
	for(j = 0; j < NUM_RINGS - 1; j++) {
		if (!(INTEL_INFO(dev)->ring_mask & (j<<i)))
			continue;

		err_printf(...)
	}
}

or use if (ring_is_initialied()) instead of checking ring mask. For
error state, I prefer to use the mask because who knows what has
happened to the rings on reset or something.

Whatever you like. Fix the if (i == j) and lgtm

> +				err_printf(m, "  SYNC[%s -> %s]: 0x%08x [last synced 0x%08x]\n",
> +					   from->name, to->name,
> +					   ring->semaphore_mboxes[idx],
> +					   ring->semaphore_seqno[idx]);
> +			}



>  		}
>  	}
>  	if (USES_PPGTT(dev)) {
>  		err_printf(m, "  GFX_MODE: 0x%08x\n", ring->vm_info.gfx_mode);
> -

Should probably remove this if you do a respin.

>  		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]);
> -- 
> 1.9.3
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Ben Widawsky, Intel Open Source Technology Center

      reply	other threads:[~2014-07-18  2:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-17 16:39 [PATCH] drm/i915: print full error ring semaphore mboxes and sync Rodrigo Vivi
2014-07-18  0:23 ` Ben Widawsky
2014-07-18  0:36   ` Vivi, Rodrigo
2014-07-18  0:42     ` Ben Widawsky
2014-07-17 17:58       ` Rodrigo Vivi
2014-07-18  2:42         ` Ben Widawsky [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140718024233.GA6673@bwidawsk.net \
    --to=ben@bwidawsk.net \
    --cc=benjamin.widawsky@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=rodrigo.vivi@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.