All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mika Kuoppala <mika.kuoppala@linux.intel.com>
To: Arun Siluvery <arun.siluvery@linux.intel.com>,
	intel-gfx@lists.freedesktop.org
Cc: Tomas Elf <tomas.elf@intel.com>
Subject: Re: [PATCH 02/20] drm/i915: Generalise common GPU engine reset request/unrequest code
Date: Fri, 22 Jan 2016 13:24:56 +0200	[thread overview]
Message-ID: <87lh7h6elz.fsf@gaia.fi.intel.com> (raw)
In-Reply-To: <1452706112-8617-3-git-send-email-arun.siluvery@linux.intel.com>

Arun Siluvery <arun.siluvery@linux.intel.com> writes:

> From: Tomas Elf <tomas.elf@intel.com>
>
> GPU engine reset handshaking is something that is applicable to both full GPU
> reset and engine reset, which is something that is part of the upcoming TDR
> per-engine hang recovery patches. Break out the common engine reset
> request/unrequest code (originally written by Mika Kuoppala) for reuse later in
> the TDR enablement patch series.
>
> Signed-off-by: Tomas Elf <tomas.elf@intel.com>
> Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_uncore.c | 46 ++++++++++++++++++++++++++-----------
>  1 file changed, 32 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
> index c3c13dc..2df4246 100644
> --- a/drivers/gpu/drm/i915/intel_uncore.c
> +++ b/drivers/gpu/drm/i915/intel_uncore.c
> @@ -1529,32 +1529,50 @@ static int wait_for_register(struct drm_i915_private *dev_priv,
>  	return wait_for((I915_READ(reg) & mask) == value, timeout_ms);
>  }
>  
> +static inline int gen8_request_engine_reset(struct intel_engine_cs *engine)
> +{

Inline is superfluous here. Please remove.

> +	struct drm_i915_private *dev_priv = engine->dev->dev_private;
> +	int ret = 0;

No need to set ret to zero.

> +
> +	I915_WRITE(RING_RESET_CTL(engine->mmio_base),
> +		   _MASKED_BIT_ENABLE(RESET_CTL_REQUEST_RESET));
> +

Indentation seems to be bit off here..

> +	ret = wait_for_register(dev_priv,
> +			      RING_RESET_CTL(engine->mmio_base),
> +			      RESET_CTL_READY_TO_RESET,
> +			      RESET_CTL_READY_TO_RESET,
> +			      700);

and here 

> +	if (ret)
> +		DRM_ERROR("%s: reset request timeout\n", engine->name);
> +
> +	return ret;
> +}
> +
> +static inline int gen8_unrequest_engine_reset(struct intel_engine_cs
> *engine)

Remove inline and do not return value if there
is no use for it.

> +{
> +	struct drm_i915_private *dev_priv = engine->dev->dev_private;
> +
> +	I915_WRITE(RING_RESET_CTL(engine->mmio_base),
> +		_MASKED_BIT_DISABLE(RESET_CTL_REQUEST_RESET));
> +
indent.

With these done, you can add my r-b.

-Mika

> +	return 0;
> +}
> +
>  static int gen8_do_reset(struct drm_device *dev)
>  {
>  	struct drm_i915_private *dev_priv = dev->dev_private;
>  	struct intel_engine_cs *engine;
>  	int i;
>  
> -	for_each_ring(engine, dev_priv, i) {
> -		I915_WRITE(RING_RESET_CTL(engine->mmio_base),
> -			   _MASKED_BIT_ENABLE(RESET_CTL_REQUEST_RESET));
> -
> -		if (wait_for_register(dev_priv,
> -				      RING_RESET_CTL(engine->mmio_base),
> -				      RESET_CTL_READY_TO_RESET,
> -				      RESET_CTL_READY_TO_RESET,
> -				      700)) {
> -			DRM_ERROR("%s: reset request timeout\n", engine->name);
> +	for_each_ring(engine, dev_priv, i)
> +		if (gen8_request_engine_reset(engine))
>  			goto not_ready;
> -		}
> -	}
>  
>  	return gen6_do_reset(dev);
>  
>  not_ready:
>  	for_each_ring(engine, dev_priv, i)
> -		I915_WRITE(RING_RESET_CTL(engine->mmio_base),
> -			   _MASKED_BIT_DISABLE(RESET_CTL_REQUEST_RESET));
> +		gen8_unrequest_engine_reset(engine);
>  
>  	return -EIO;
>  }
> -- 
> 1.9.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-01-22 11:27 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-13 17:28 [PATCH 00/20] TDR/watchdog support for gen8 Arun Siluvery
2016-01-13 17:28 ` [PATCH 01/20] drm/i915: Make i915_gem_reset_ring_status() public Arun Siluvery
2016-01-13 17:28 ` [PATCH 02/20] drm/i915: Generalise common GPU engine reset request/unrequest code Arun Siluvery
2016-01-22 11:24   ` Mika Kuoppala [this message]
2016-01-13 17:28 ` [PATCH 03/20] drm/i915: TDR / per-engine hang recovery support for gen8 Arun Siluvery
2016-01-13 21:16   ` Chris Wilson
2016-01-13 21:21   ` Chris Wilson
2016-01-29 14:16   ` Mika Kuoppala
2016-01-13 17:28 ` [PATCH 04/20] drm/i915: TDR / per-engine hang detection Arun Siluvery
2016-01-13 20:37   ` Chris Wilson
2016-01-13 17:28 ` [PATCH 05/20] drm/i915: Extending i915_gem_check_wedge to check engine reset in progress Arun Siluvery
2016-01-13 20:49   ` Chris Wilson
2016-01-13 17:28 ` [PATCH 06/20] drm/i915: Reinstate hang recovery work queue Arun Siluvery
2016-01-13 21:01   ` Chris Wilson
2016-01-13 17:28 ` [PATCH 07/20] drm/i915: Watchdog timeout: Hang detection integration into error handler Arun Siluvery
2016-01-13 21:13   ` Chris Wilson
2016-01-13 17:28 ` [PATCH 08/20] drm/i915: Watchdog timeout: IRQ handler for gen8 Arun Siluvery
2016-01-13 17:28 ` [PATCH 09/20] drm/i915: Watchdog timeout: Ringbuffer command emission " Arun Siluvery
2016-01-13 17:28 ` [PATCH 10/20] drm/i915: Watchdog timeout: DRM kernel interface enablement Arun Siluvery
2016-01-13 17:28 ` [PATCH 11/20] drm/i915: Fake lost context event interrupts through forced CSB checking Arun Siluvery
2016-01-13 17:28 ` [PATCH 12/20] drm/i915: Debugfs interface for per-engine hang recovery Arun Siluvery
2016-01-13 17:28 ` [PATCH 13/20] drm/i915: Test infrastructure for context state inconsistency simulation Arun Siluvery
2016-01-13 17:28 ` [PATCH 14/20] drm/i915: TDR/watchdog trace points Arun Siluvery
2016-01-13 17:28 ` [PATCH 15/20] drm/i915: Port of Added scheduler support to __wait_request() calls Arun Siluvery
2016-01-13 17:28 ` [PATCH 16/20] drm/i915: Fix __i915_wait_request() behaviour during hang detection Arun Siluvery
2016-01-13 17:28 ` [PATCH 17/20] drm/i915: Extended error state with TDR count, watchdog count and engine reset count Arun Siluvery
2016-01-13 17:28 ` [PATCH 18/20] drm/i915: TDR / per-engine hang recovery kernel docs Arun Siluvery
2016-01-13 17:28 ` [PATCH 19/20] drm/i915: drm/i915 changes to simulated hangs Arun Siluvery
2016-01-13 17:28 ` [PATCH 20/20] drm/i915: Enable TDR / per-engine hang recovery Arun Siluvery
2016-01-14  8:30 ` ✗ failure: Fi.CI.BAT Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2015-10-23  1:32 [PATCH 00/20] TDR/watchdog support for gen8 Tomas Elf
2015-10-23  1:32 ` [PATCH 02/20] drm/i915: Generalise common GPU engine reset request/unrequest code Tomas Elf

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=87lh7h6elz.fsf@gaia.fi.intel.com \
    --to=mika.kuoppala@linux.intel.com \
    --cc=arun.siluvery@linux.intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=tomas.elf@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.