[Intel-gfx] [PATCH i-g-t] i915/gem_softpin: Replace constant loop with timeout

2019-10-05 Thread Chris Wilson
Rather than do a fixed amount of work that takes *forever*, run for a
fixed amount of time.

Signed-off-by: Chris Wilson 
---
 tests/i915/gem_softpin.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
index c29097ad3..032056c08 100644
--- a/tests/i915/gem_softpin.c
+++ b/tests/i915/gem_softpin.c
@@ -102,14 +102,14 @@ static void test_softpin(int fd)
struct drm_i915_gem_exec_object2 object;
uint64_t offset, end;
uint32_t last_handle;
-   int loop;
+   unsigned long count = 0;
 
last_handle = gem_create(fd, size);
 
memset(&execbuf, 0, sizeof(execbuf));
execbuf.buffers_ptr = to_user_pointer(&object);
execbuf.buffer_count = 1;
-   for (loop = 0; loop < 1024; loop++) {
+   igt_until_timeout(30) {
memset(&object, 0, sizeof(object));
object.handle = gem_create(fd, 2*size);
gem_write(fd, object.handle, 0, &bbe, sizeof(bbe));
@@ -134,7 +134,9 @@ static void test_softpin(int fd)
}
 
last_handle = object.handle;
+   count++;
}
+   igt_info("Completd %lu cycles\n", count);
 }
 
 static void test_overlap(int fd)
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/selftests: Appease lockdep

2019-10-05 Thread Patchwork
== Series Details ==

Series: drm/i915/selftests: Appease lockdep
URL   : https://patchwork.freedesktop.org/series/67622/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7012_full -> Patchwork_14678_full


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_14678_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_14678_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_14678_full:

### IGT changes ###

 Possible regressions 

  * igt@gem_ctx_isolation@bcs0-nonpriv:
- shard-skl:  NOTRUN -> [FAIL][1] +1 similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-skl10/igt@gem_ctx_isolat...@bcs0-nonpriv.html

  * igt@gem_ctx_isolation@vcs0-s3:
- shard-kbl:  [PASS][2] -> [FAIL][3] +1 similar issue
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-kbl3/igt@gem_ctx_isolat...@vcs0-s3.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-kbl6/igt@gem_ctx_isolat...@vcs0-s3.html

  * igt@gem_ctx_isolation@vecs0-clean:
- shard-glk:  [PASS][4] -> [FAIL][5]
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-glk9/igt@gem_ctx_isolat...@vecs0-clean.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-glk5/igt@gem_ctx_isolat...@vecs0-clean.html

  * igt@gem_ctx_isolation@vecs0-none:
- shard-apl:  [PASS][6] -> [FAIL][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-apl8/igt@gem_ctx_isolat...@vecs0-none.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-apl6/igt@gem_ctx_isolat...@vecs0-none.html

  * igt@gem_ctx_isolation@vecs0-reset:
- shard-skl:  [PASS][8] -> [FAIL][9] +3 similar issues
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-skl8/igt@gem_ctx_isolat...@vecs0-reset.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-skl9/igt@gem_ctx_isolat...@vecs0-reset.html

  * igt@i915_selftest@live_hangcheck:
- shard-hsw:  [PASS][10] -> [DMESG-FAIL][11]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-hsw6/igt@i915_selftest@live_hangcheck.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-hsw1/igt@i915_selftest@live_hangcheck.html

  
 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@gem_ctx_isolation@vcs2-none:
- {shard-tglb}:   NOTRUN -> [SKIP][12] +3 similar issues
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-tglb6/igt@gem_ctx_isolat...@vcs2-none.html

  * {igt@gem_ctx_isolation@vecs0-nonpriv-switch}:
- shard-iclb: NOTRUN -> [FAIL][13]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-iclb5/igt@gem_ctx_isolat...@vecs0-nonpriv-switch.html

  * igt@kms_flip@flip-vs-panning:
- {shard-tglb}:   [PASS][14] -> [INCOMPLETE][15] +3 similar issues
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-tglb2/igt@kms_f...@flip-vs-panning.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-tglb6/igt@kms_f...@flip-vs-panning.html

  
Known issues


  Here are the changes found in Patchwork_14678_full that come from known 
issues:

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_shared@exec-shared-gtt-bsd2:
- shard-iclb: [PASS][16] -> [SKIP][17] ([fdo#109276]) +4 similar 
issues
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-iclb1/igt@gem_ctx_sha...@exec-shared-gtt-bsd2.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-iclb7/igt@gem_ctx_sha...@exec-shared-gtt-bsd2.html

  * igt@gem_exec_schedule@preempt-other-chain-bsd:
- shard-iclb: [PASS][18] -> [SKIP][19] ([fdo#111325]) +6 similar 
issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-iclb3/igt@gem_exec_sched...@preempt-other-chain-bsd.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-iclb1/igt@gem_exec_sched...@preempt-other-chain-bsd.html

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
- shard-snb:  [PASS][20] -> [DMESG-WARN][21] ([fdo#111870])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/shard-snb5/igt@gem_userptr_bl...@map-fixed-invalidate-overlap-busy.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14678/shard-snb7/igt@gem_userptr_bl...@map-fixed-invalidate-overlap-busy.html

  * igt@kms_cursor_crc@pipe-b-cursor-suspend:
- shard-apl:  [PASS][22] -> 

[Intel-gfx] [PATCH] drm/i915/gt: Restore dropped 'interruptible' flag

2019-10-05 Thread Chris Wilson
Lost in the rebasing was Tvrtko's reminder that we need to keep an
uninterruptible wait around for the Ironlake VT-d w/a

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_gt_requests.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_requests.c 
b/drivers/gpu/drm/i915/gt/intel_gt_requests.c
index 8aed89fd2cdc..d69e78478eea 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_requests.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt_requests.c
@@ -48,7 +48,7 @@ long intel_gt_retire_requests_timeout(struct intel_gt *gt, 
long timeout)
fence = i915_active_fence_get(&tl->last_request);
if (fence) {
timeout = dma_fence_wait_timeout(fence,
-true,
+interruptible,
 timeout);
dma_fence_put(fence);
}
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH] drm/i915/gt: Treat a busy timeline as 'active' while waiting

2019-10-05 Thread Chris Wilson
If we cannot claim the timeline->mutex while preparing for a wait on it,
we have to skip the timeline. In doing so, treat it as active so that
under a intel_gt_wait_for_idle() loop, we repeat the wait after
scheduling away.

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 drivers/gpu/drm/i915/gt/intel_gt_requests.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt_requests.c 
b/drivers/gpu/drm/i915/gt/intel_gt_requests.c
index d69e78478eea..ca606b79fd5e 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt_requests.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt_requests.c
@@ -34,8 +34,10 @@ long intel_gt_retire_requests_timeout(struct intel_gt *gt, 
long timeout)
 
spin_lock_irqsave(&timelines->lock, flags);
list_for_each_entry_safe(tl, tn, &timelines->active_list, link) {
-   if (!mutex_trylock(&tl->mutex))
+   if (!mutex_trylock(&tl->mutex)) {
+   active_count++; /* report busy to caller, try again? */
continue;
+   }
 
intel_timeline_get(tl);
GEM_BUG_ON(!tl->active_count);
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines

2019-10-05 Thread Andi Shyti
Hi Chris,

On Tue, Oct 01, 2019 at 02:54:02PM +0100, Chris Wilson wrote:
> Allow the user to restrict the available set of engines via a module
> parameter.

what is the driving reason for wanting this? Could you explain it
in the commit log?

It feels a bit confusing, though. You are actually making a
difference between engines we don't have and engines we don't
want, and I don't see why.

Wouldn't it make sense to either

 - define a new architecture (which could make things more
   confusing).

or

 - have it specified in kernel configuration

> Signed-off-by: Chris Wilson 
> Cc: Stuart Summers 
> Cc: Andi Shyti 
> Cc: Mika Kuoppala 
> Cc: Tvrtko Ursulin 
> Cc: Joonas Lahtinen 
> Cc: Martin Peres 
> ---
>  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 35 ---
>  drivers/gpu/drm/i915/i915_gem.c   |  5 
>  drivers/gpu/drm/i915/i915_params.c|  4 +++
>  drivers/gpu/drm/i915/i915_params.h|  1 +
>  4 files changed, 35 insertions(+), 10 deletions(-)

Because this is a module option that is set by the user, I don't
see any documentation about it.

> +static bool engine_available(struct drm_i915_private *i915, int id)
> +{
> + /* uAPI -- modparam bits must be consistent between kernels */
> + static const unsigned int param_bit[] = {
> + [RCS0]  = BIT(0),
> + [VCS0]  = BIT(1),
> + [BCS0]  = BIT(2),
> + [VECS0] = BIT(3),
> + [VCS1]  = BIT(4),
> + [VCS2]  = BIT(5),
> + [VCS3]  = BIT(6),
> + [VECS1] = BIT(7),
> + };

Yet another way to refer to engines... this time inside a static
function, without any visibility outside.

Andi

> +
> + if (!HAS_ENGINE(i915, id))
> + return false;

(engines we don't have...

> + if (!(i915_modparams.engines & param_bit[id]))
> + return false;

... engines we don't want)
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH 1/2] drm/i915: Use a modparam to restrict exposed engines

2019-10-05 Thread Chris Wilson
Quoting Andi Shyti (2019-10-05 11:10:45)
> Hi Chris,
> 
> On Tue, Oct 01, 2019 at 02:54:02PM +0100, Chris Wilson wrote:
> > Allow the user to restrict the available set of engines via a module
> > parameter.
> 
> what is the driving reason for wanting this? Could you explain it
> in the commit log?

It's to allow the user to restrict the available set of engines, for
whatever reason they may have, presumably because they want to work
around some HW stability (or if that is the case to enable some HW
despite instability, since we should err on the side of caution).

> It feels a bit confusing, though. You are actually making a
> difference between engines we don't have and engines we don't
> want, and I don't see why.
> 
> Wouldn't it make sense to either
> 
>  - define a new architecture (which could make things more
>confusing).

No, it's an optional overlay of an existing under the whim of the user.
 
> or
> 
>  - have it specified in kernel configuration

Is how we configure the defaults in reduced configurations.
 
> > Signed-off-by: Chris Wilson 
> > Cc: Stuart Summers 
> > Cc: Andi Shyti 
> > Cc: Mika Kuoppala 
> > Cc: Tvrtko Ursulin 
> > Cc: Joonas Lahtinen 
> > Cc: Martin Peres 
> > ---
> >  drivers/gpu/drm/i915/gt/intel_engine_cs.c | 35 ---
> >  drivers/gpu/drm/i915/i915_gem.c   |  5 
> >  drivers/gpu/drm/i915/i915_params.c|  4 +++
> >  drivers/gpu/drm/i915/i915_params.h|  1 +
> >  4 files changed, 35 insertions(+), 10 deletions(-)
> 
> Because this is a module option that is set by the user, I don't
> see any documentation about it.

It's in i915_params.c

> > +static bool engine_available(struct drm_i915_private *i915, int id)
> > +{
> > + /* uAPI -- modparam bits must be consistent between kernels */
> > + static const unsigned int param_bit[] = {
> > + [RCS0]  = BIT(0),
> > + [VCS0]  = BIT(1),
> > + [BCS0]  = BIT(2),
> > + [VECS0] = BIT(3),
> > + [VCS1]  = BIT(4),
> > + [VCS2]  = BIT(5),
> > + [VCS3]  = BIT(6),
> > + [VECS1] = BIT(7),
> > + };
> 
> Yet another way to refer to engines... this time inside a static
> function, without any visibility outside.

Sure. It's a static mapping table that has to stable for generations to
come because it is described in i915_params as part of the i915.engines
contract.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH i-g-t] i915/gem_eio: Retighten timeouts for forced reset

2019-10-05 Thread Chris Wilson
The forced-reset itself should be immediate; it's just the wait after
the health check where we appear to have issues!

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 tests/i915/gem_eio.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 007b9fb70..7c8ff10df 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -76,12 +76,15 @@ static void trigger_reset(int fd)
igt_kmsg(KMSG_DEBUG "Forcing GPU reset\n");
igt_force_gpu_reset(fd);
 
+   /* The forced reset should be immediate */
+   igt_assert_lte(igt_seconds_elapsed(&ts), 2);
+
/* And just check the gpu is indeed running again */
igt_kmsg(KMSG_DEBUG "Checking that the GPU recovered\n");
gem_test_engine(fd, ALL_ENGINES);
igt_drop_caches_set(fd, DROP_ACTIVE);
 
-   /* We expect forced reset and health check to be quick. */
+   /* We expect health check to be quick. */
igt_assert_lte(igt_seconds_elapsed(&ts), 10);
 }
 
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/gt: Restore dropped 'interruptible' flag

2019-10-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Restore dropped 'interruptible' flag
URL   : https://patchwork.freedesktop.org/series/67626/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7012 -> Patchwork_14679


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_14679 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_14679, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/index.html

Possible new issues
---

  Here are the unknown changes that may have been introduced in Patchwork_14679:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live_active:
- fi-icl-u2:  [PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/fi-icl-u2/igt@i915_selftest@live_active.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/fi-icl-u2/igt@i915_selftest@live_active.html

  * igt@i915_selftest@live_execlists:
- fi-skl-6260u:   [PASS][3] -> [DMESG-WARN][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/fi-skl-6260u/igt@i915_selftest@live_execlists.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/fi-skl-6260u/igt@i915_selftest@live_execlists.html

  
Known issues


  Here are the changes found in Patchwork_14679 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_basic@create-close:
- fi-icl-u3:  [PASS][5] -> [DMESG-WARN][6] ([fdo#107724])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/fi-icl-u3/igt@gem_ba...@create-close.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/fi-icl-u3/igt@gem_ba...@create-close.html

  * igt@gem_exec_suspend@basic-s4-devices:
- fi-blb-e6850:   [PASS][7] -> [INCOMPLETE][8] ([fdo#107718])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/fi-blb-e6850/igt@gem_exec_susp...@basic-s4-devices.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/fi-blb-e6850/igt@gem_exec_susp...@basic-s4-devices.html

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [PASS][9] -> [FAIL][10] ([fdo#111045] / [fdo#111096])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  
 Possible fixes 

  * igt@gem_mmap_gtt@basic-write-no-prefault:
- fi-icl-u3:  [DMESG-WARN][11] ([fdo#107724]) -> [PASS][12] +1 
similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/fi-icl-u3/igt@gem_mmap_...@basic-write-no-prefault.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/fi-icl-u3/igt@gem_mmap_...@basic-write-no-prefault.html

  * igt@i915_selftest@live_hangcheck:
- {fi-icl-guc}:   [DMESG-FAIL][13] ([fdo#111678]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7012/fi-icl-guc/igt@i915_selftest@live_hangcheck.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/fi-icl-guc/igt@i915_selftest@live_hangcheck.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111678]: https://bugs.freedesktop.org/show_bug.cgi?id=111678


Participating hosts (52 -> 45)
--

  Missing(7): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y 
fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7012 -> Patchwork_14679

  CI-20190529: 20190529
  CI_DRM_7012: 42dcf5adc9c45f6f2f28e23b815ab723f96edca0 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5212: d17a484b3c22706b2b004ef1577f367d79235e43 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14679: 1fee21e20ed7c8f8cb6dc61e8830c169825f1f45 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

1fee21e20ed7 drm/i915/gt: Restore dropped 'interruptible' flag

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14679/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH i-g-t] i915/gem_eio: Show engine status before resets

2019-10-05 Thread Chris Wilson
Dump the i915_engine_info into debug prior to triggering a reset/wedge.

Signed-off-by: Chris Wilson 
---
 tests/i915/gem_eio.c | 15 +++
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 7c8ff10df..71cb9 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -82,6 +82,8 @@ static void trigger_reset(int fd)
/* And just check the gpu is indeed running again */
igt_kmsg(KMSG_DEBUG "Checking that the GPU recovered\n");
gem_test_engine(fd, ALL_ENGINES);
+
+   igt_debugfs_dump(fd, "i915_engine_info");
igt_drop_caches_set(fd, DROP_ACTIVE);
 
/* We expect health check to be quick. */
@@ -392,6 +394,7 @@ static void test_wait(int fd, unsigned int flags, unsigned 
int wait)
 
hang = spin_sync(fd, 0, I915_EXEC_DEFAULT);
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, hang->handle, wait, NULL);
 
igt_spin_free(fd, hang);
@@ -467,14 +470,15 @@ static void test_inflight(int fd, unsigned int wait)
igt_assert(fence[n] != -1);
}
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, wait, NULL);
 
for (unsigned int n = 0; n < max; n++) {
igt_assert_eq(sync_fence_status(fence[n]), -EIO);
close(fence[n]);
}
-
igt_spin_free(fd, hang);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
 
@@ -523,14 +527,15 @@ static void test_inflight_suspend(int fd)
igt_set_autoresume_delay(30);
igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, 10, NULL);
 
for (unsigned int n = 0; n < max; n++) {
igt_assert_eq(sync_fence_status(fence[n]), -EIO);
close(fence[n]);
}
-
igt_spin_free(fd, hang);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
close(fd);
@@ -605,15 +610,16 @@ static void test_inflight_contexts(int fd, unsigned int 
wait)
count++;
}
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, wait, NULL);
 
for (unsigned int n = 0; n < count; n++) {
igt_assert_eq(sync_fence_status(fence[n]), -EIO);
close(fence[n]);
}
-
igt_spin_free(fd, hang);
gem_close(fd, obj[1].handle);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
 
@@ -714,14 +720,15 @@ static void test_inflight_internal(int fd, unsigned int 
wait)
nfence++;
}
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, wait, NULL);
 
while (nfence--) {
igt_assert_eq(sync_fence_status(fences[nfence]), -EIO);
close(fences[nfence]);
}
-
igt_spin_free(fd, hang);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
close(fd);
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH i-g-t 1/3] i915/gem_eio: Retighten timeouts for forced reset

2019-10-05 Thread Chris Wilson
The forced-reset itself should be immediate; it's just the wait after
the health check where we appear to have issues!

Signed-off-by: Chris Wilson 
Cc: Tvrtko Ursulin 
---
 tests/i915/gem_eio.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 007b9fb70..7c8ff10df 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -76,12 +76,15 @@ static void trigger_reset(int fd)
igt_kmsg(KMSG_DEBUG "Forcing GPU reset\n");
igt_force_gpu_reset(fd);
 
+   /* The forced reset should be immediate */
+   igt_assert_lte(igt_seconds_elapsed(&ts), 2);
+
/* And just check the gpu is indeed running again */
igt_kmsg(KMSG_DEBUG "Checking that the GPU recovered\n");
gem_test_engine(fd, ALL_ENGINES);
igt_drop_caches_set(fd, DROP_ACTIVE);
 
-   /* We expect forced reset and health check to be quick. */
+   /* We expect health check to be quick. */
igt_assert_lte(igt_seconds_elapsed(&ts), 10);
 }
 
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH i-g-t 3/3] i915/gem_softpin: Replace constant loop with timeout

2019-10-05 Thread Chris Wilson
Rather than do a fixed amount of work that takes *forever*, run for a
fixed amount of time.

Signed-off-by: Chris Wilson 
---
 tests/i915/gem_softpin.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
index c29097ad3..032056c08 100644
--- a/tests/i915/gem_softpin.c
+++ b/tests/i915/gem_softpin.c
@@ -102,14 +102,14 @@ static void test_softpin(int fd)
struct drm_i915_gem_exec_object2 object;
uint64_t offset, end;
uint32_t last_handle;
-   int loop;
+   unsigned long count = 0;
 
last_handle = gem_create(fd, size);
 
memset(&execbuf, 0, sizeof(execbuf));
execbuf.buffers_ptr = to_user_pointer(&object);
execbuf.buffer_count = 1;
-   for (loop = 0; loop < 1024; loop++) {
+   igt_until_timeout(30) {
memset(&object, 0, sizeof(object));
object.handle = gem_create(fd, 2*size);
gem_write(fd, object.handle, 0, &bbe, sizeof(bbe));
@@ -134,7 +134,9 @@ static void test_softpin(int fd)
}
 
last_handle = object.handle;
+   count++;
}
+   igt_info("Completd %lu cycles\n", count);
 }
 
 static void test_overlap(int fd)
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [PATCH i-g-t 2/3] i915/gem_eio: Show engine status before resets

2019-10-05 Thread Chris Wilson
Dump the i915_engine_info into debug prior to triggering a reset/wedge.

Signed-off-by: Chris Wilson 
---
 tests/i915/gem_eio.c | 15 +++
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 7c8ff10df..71cb9 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -82,6 +82,8 @@ static void trigger_reset(int fd)
/* And just check the gpu is indeed running again */
igt_kmsg(KMSG_DEBUG "Checking that the GPU recovered\n");
gem_test_engine(fd, ALL_ENGINES);
+
+   igt_debugfs_dump(fd, "i915_engine_info");
igt_drop_caches_set(fd, DROP_ACTIVE);
 
/* We expect health check to be quick. */
@@ -392,6 +394,7 @@ static void test_wait(int fd, unsigned int flags, unsigned 
int wait)
 
hang = spin_sync(fd, 0, I915_EXEC_DEFAULT);
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, hang->handle, wait, NULL);
 
igt_spin_free(fd, hang);
@@ -467,14 +470,15 @@ static void test_inflight(int fd, unsigned int wait)
igt_assert(fence[n] != -1);
}
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, wait, NULL);
 
for (unsigned int n = 0; n < max; n++) {
igt_assert_eq(sync_fence_status(fence[n]), -EIO);
close(fence[n]);
}
-
igt_spin_free(fd, hang);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
 
@@ -523,14 +527,15 @@ static void test_inflight_suspend(int fd)
igt_set_autoresume_delay(30);
igt_system_suspend_autoresume(SUSPEND_STATE_MEM, SUSPEND_TEST_NONE);
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, 10, NULL);
 
for (unsigned int n = 0; n < max; n++) {
igt_assert_eq(sync_fence_status(fence[n]), -EIO);
close(fence[n]);
}
-
igt_spin_free(fd, hang);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
close(fd);
@@ -605,15 +610,16 @@ static void test_inflight_contexts(int fd, unsigned int 
wait)
count++;
}
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, wait, NULL);
 
for (unsigned int n = 0; n < count; n++) {
igt_assert_eq(sync_fence_status(fence[n]), -EIO);
close(fence[n]);
}
-
igt_spin_free(fd, hang);
gem_close(fd, obj[1].handle);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
 
@@ -714,14 +720,15 @@ static void test_inflight_internal(int fd, unsigned int 
wait)
nfence++;
}
 
+   igt_debugfs_dump(fd, "i915_engine_info");
check_wait(fd, obj[1].handle, wait, NULL);
 
while (nfence--) {
igt_assert_eq(sync_fence_status(fences[nfence]), -EIO);
close(fences[nfence]);
}
-
igt_spin_free(fd, hang);
+
igt_assert(i915_reset_control(true));
trigger_reset(fd);
close(fd);
-- 
2.23.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/gt: Treat a busy timeline as 'active' while waiting

2019-10-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gt: Treat a busy timeline as 'active' while waiting
URL   : https://patchwork.freedesktop.org/series/67627/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_7013 -> Patchwork_14680


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_14680 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_14680, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14680/index.html

Possible new issues
---

  Here are the unknown changes that may have been introduced in Patchwork_14680:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live_execlists:
- fi-icl-u2:  [PASS][1] -> [DMESG-WARN][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7013/fi-icl-u2/igt@i915_selftest@live_execlists.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14680/fi-icl-u2/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_hangcheck:
- fi-hsw-4770r:   [PASS][3] -> [DMESG-FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7013/fi-hsw-4770r/igt@i915_selftest@live_hangcheck.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14680/fi-hsw-4770r/igt@i915_selftest@live_hangcheck.html

  
Known issues


  Here are the changes found in Patchwork_14680 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_ctx_create@basic-files:
- fi-icl-u3:  [PASS][5] -> [INCOMPLETE][6] ([fdo#107713] / 
[fdo#109100])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7013/fi-icl-u3/igt@gem_ctx_cre...@basic-files.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14680/fi-icl-u3/igt@gem_ctx_cre...@basic-files.html

  
 Possible fixes 

  * igt@gem_ctx_switch@rcs0:
- {fi-icl-guc}:   [INCOMPLETE][7] ([fdo#107713]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7013/fi-icl-guc/igt@gem_ctx_swi...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14680/fi-icl-guc/igt@gem_ctx_swi...@rcs0.html

  
 Warnings 

  * igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-7500u:   [FAIL][9] ([fdo#111045] / [fdo#111096]) -> [FAIL][10] 
([fdo#111407])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_7013/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14680/fi-kbl-7500u/igt@kms_chamel...@hdmi-hpd-fast.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100
  [fdo#111045]: https://bugs.freedesktop.org/show_bug.cgi?id=111045
  [fdo#111096]: https://bugs.freedesktop.org/show_bug.cgi?id=111096
  [fdo#111381]: https://bugs.freedesktop.org/show_bug.cgi?id=111381
  [fdo#111407]: https://bugs.freedesktop.org/show_bug.cgi?id=111407


Participating hosts (51 -> 43)
--

  Additional (1): fi-icl-u4 
  Missing(9): fi-ilk-m540 fi-bxt-dsi fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ivb-3770 fi-icl-y fi-byt-clapper fi-bdw-samus 


Build changes
-

  * CI: CI-20190529 -> None
  * Linux: CI_DRM_7013 -> Patchwork_14680

  CI-20190529: 20190529
  CI_DRM_7013: d15ba88aba4d101631bad25b6e75de1a3a0c9440 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_5213: 2090a01dd78a15e0e68ffd18c42461a23da17156 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_14680: 8e41d77e40a662c94b5339aa083335203b95288d @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8e41d77e40a6 drm/i915/gt: Treat a busy timeline as 'active' while waiting

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_14680/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH i-g-t 2/3] i915/gem_eio: Show engine status before resets

2019-10-05 Thread Andi Shyti
Hi Chris,

On Sat, Oct 05, 2019 at 11:55:55AM +0100, Chris Wilson wrote:
> Dump the i915_engine_info into debug prior to triggering a reset/wedge.
> 
> Signed-off-by: Chris Wilson 

looks OK, Reviewed-by: Andi Shyti 

Andi

P.S.

>   }
> -
>   igt_spin_free(fd, hang);
> +

grr
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Re: [Intel-gfx] [PATCH i-g-t 3/3] i915/gem_softpin: Replace constant loop with timeout

2019-10-05 Thread Andi Shyti
Hi Chris,

On Sat, Oct 05, 2019 at 11:55:56AM +0100, Chris Wilson wrote:
> Rather than do a fixed amount of work that takes *forever*, run for a
> fixed amount of time.
> 
> Signed-off-by: Chris Wilson 

looks nice! :)

Reviewed-by: Andi Shyti 

Andi
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

[Intel-gfx] [drm-tip:drm-tip 548/565] drivers/gpu/drm/i915/gem/i915_gem_context.c:813:29: sparse: sparse: incorrect type in argument 1 (different address spaces)

2019-10-05 Thread kbuild test robot
tree:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
head:   f99065c68952afc90504325a19125d95e6b84abc
commit: a4e7ccdac38ec8335d9e4e2656c1a041c77feae1 [548/565] drm/i915: Move 
context management under GEM
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-rc1-42-g38eda53-dirty
git checkout a4e7ccdac38ec8335d9e4e2656c1a041c77feae1
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot 


sparse warnings: (new ones prefixed by >>)

>> drivers/gpu/drm/i915/gem/i915_gem_context.c:813:29: sparse: sparse: 
>> incorrect type in argument 1 (different address spaces) @@expected 
>> struct i915_address_space *vm @@got struct i915_addresstruct 
>> i915_address_space *vm @@
>> drivers/gpu/drm/i915/gem/i915_gem_context.c:813:29: sparse:expected 
>> struct i915_address_space *vm
>> drivers/gpu/drm/i915/gem/i915_gem_context.c:813:29: sparse:got struct 
>> i915_address_space [noderef]  *vm
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1748:25: sparse: sparse: 
incorrect type in argument 1 (different address spaces) @@expected struct 
i915_gem_engines *e @@got struct i915_gem_enstruct i915_gem_engines *e @@
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1748:25: sparse:expected 
struct i915_gem_engines *e
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1748:25: sparse:got struct 
i915_gem_engines [noderef]  *engines
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1783:15: sparse: sparse: 
incorrect type in assignment (different address spaces) @@expected struct 
i915_gem_engines *clone @@got struct i915_gem_enstruct i915_gem_engines 
*clone @@
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1783:15: sparse:expected 
struct i915_gem_engines *clone
   drivers/gpu/drm/i915/gem/i915_gem_context.c:1783:15: sparse:got struct 
i915_gem_engines [noderef]  *engines
>> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:773:51: sparse: 
>> sparse: incorrect type in argument 2 (different address spaces) @@
>> expected struct i915_address_space *[assigned] vm @@got struct struct 
>> i915_address_space *[assigned] vm @@
>> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:773:51: sparse:
>> expected struct i915_address_space *[assigned] vm
>> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:773:51: sparse:got 
>> struct i915_address_space [noderef]  *vm
>> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:780:64: sparse: 
>> sparse: incorrect type in argument 1 (different address spaces) @@
>> expected struct i915_address_space *vm @@got struct i915_addresstruct 
>> i915_address_space *vm @@
>> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:780:64: sparse:
>> expected struct i915_address_space *vm
   drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:780:64: sparse:got 
struct i915_address_space [noderef]  *vm
>> drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c:1694:25: sparse: 
>> sparse: dereference of noderef expression

vim +813 drivers/gpu/drm/i915/gem/i915_gem_context.c

85fddf0b002719 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-09  801  
cde5f7edd511b1 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-30  802  static int get_ppgtt(struct drm_i915_file_private *file_priv,
cde5f7edd511b1 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-30  803  struct i915_gem_context *ctx,
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  804  struct drm_i915_gem_context_param *args)
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  805  {
e568ac3874be7d drivers/gpu/drm/i915/gem/i915_gem_context.c Chris Wilson 
2019-06-11  806 struct i915_address_space *vm;
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  807 int ret;
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  808  
a4e7ccdac38ec8 drivers/gpu/drm/i915/gem/i915_gem_context.c Chris Wilson 
2019-10-04  809 if (!rcu_access_pointer(ctx->vm))
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  810 return -ENODEV;
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  811  
a4e7ccdac38ec8 drivers/gpu/drm/i915/gem/i915_gem_context.c Chris Wilson 
2019-10-04  812 rcu_read_lock();
e568ac3874be7d drivers/gpu/drm/i915/gem/i915_gem_context.c Chris Wilson 
2019-06-11 @813 vm = i915_vm_get(ctx->vm);
a4e7ccdac38ec8 drivers/gpu/drm/i915/gem/i915_gem_context.c Chris Wilson 
2019-10-04  814 rcu_read_unlock();
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  815  
e0695db7298ec2 drivers/gpu/drm/i915/i915_gem_context.c Chris Wilson 
2019-03-22  816