All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>, intel-gfx@lists.freedeskto.org
Cc: igt-dev@lists.freedesktop.org, Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Subject: Re: [igt-dev] [PATCH igt] igt/gem_ctx_isolation: Reset a scratch context
Date: Tue, 27 Mar 2018 16:25:19 +0100	[thread overview]
Message-ID: <605a724f-877d-b800-d88f-da10a6bb45f3@linux.intel.com> (raw)
In-Reply-To: <20180327134843.17956-1-chris@chris-wilson.co.uk>


On 27/03/2018 14:48, Chris Wilson wrote:
> If we inject a reset into the target context, there is a risk that the
> register state is never saved back to memory. The exact interaction
> between reset, the context image and the precise timing of our execution
> are not well defined. Since we cannot ensure that the context image
> remains valid, force a context switch prior to the reset.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105270
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105457
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105545
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
> ---
>   tests/gem_ctx_isolation.c | 28 +++++++++++++++++++++++++++-
>   1 file changed, 27 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/gem_ctx_isolation.c b/tests/gem_ctx_isolation.c
> index d8109aa0..4968e367 100644
> --- a/tests/gem_ctx_isolation.c
> +++ b/tests/gem_ctx_isolation.c
> @@ -522,6 +522,32 @@ static void isolation(int fd,
>   #define S4 (4 << 8)
>   #define SLEEP_MASK (0xf << 8)
>   
> +static void inject_reset_context(int fd, unsigned int engine)
> +{
> +	igt_spin_t *spin;
> +	uint32_t ctx;
> +
> +	/*
> +	 * Force a context switch before triggering the reset, or else
> +	 * we risk corrupting the target context and we can't blame the
> +	 * HW for screwing up if the context was already broken.
> +	 */
> +
> +	ctx = gem_context_create(fd);
> +	if (gem_can_store_dword(fd, engine)) {
> +		spin = __igt_spin_batch_new_poll(fd, ctx, engine);
> +		igt_spin_busywait_until_running(spin);
> +	} else {
> +		spin = __igt_spin_batch_new(fd, ctx, engine, 0);
> +		usleep(1000); /* better than nothing */
> +	}
> +
> +	igt_force_gpu_reset(fd);
> +
> +	igt_spin_batch_free(fd, spin);
> +	gem_context_destroy(fd, ctx);
> +}
> +
>   static void preservation(int fd,
>   			 const struct intel_execution_engine2 *e,
>   			 unsigned int flags)
> @@ -558,7 +584,7 @@ static void preservation(int fd,
>   	igt_spin_batch_free(fd, spin);
>   
>   	if (flags & RESET)
> -		igt_force_gpu_reset(fd);
> +		inject_reset_context(fd, engine);
>   
>   	switch (flags & SLEEP_MASK) {
>   	case NOSLEEP:
> 

Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Regards,

Tvrtko
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2018-03-27 15:25 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-27 13:48 [igt-dev] [PATCH igt] igt/gem_ctx_isolation: Reset a scratch context Chris Wilson
2018-03-27 13:52 ` Chris Wilson
2018-03-27 13:59   ` Chris Wilson
2018-03-27 15:39     ` Tvrtko Ursulin
2018-03-27 15:41     ` Tvrtko Ursulin
2018-03-27 15:41       ` [Intel-gfx] " Tvrtko Ursulin
2018-03-27 15:25 ` Tvrtko Ursulin [this message]
2018-03-27 15:41 ` Tvrtko Ursulin
2018-03-27 15:41   ` Tvrtko Ursulin
2018-03-27 15:58   ` Chris Wilson
2018-03-27 15:58     ` Chris Wilson
2018-03-27 16:32 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-03-27 21:47 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

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=605a724f-877d-b800-d88f-da10a6bb45f3@linux.intel.com \
    --to=tvrtko.ursulin@linux.intel.com \
    --cc=chris@chris-wilson.co.uk \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedeskto.org \
    --cc=tvrtko.ursulin@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.