All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
@ 2019-01-30 13:12 ` Chris Wilson
  0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-30 13:12 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Mika Kuoppala

Actually measure how many batches we can fit into a ring before
blocking, or else we may end up hanging the device earlier than
expected!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
 tests/i915/gem_eio.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 09059c311..534bd1899 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -44,6 +44,7 @@
 #include "igt_device.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+#include "i915/gem_ring.h"
 
 IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
 
@@ -358,10 +359,15 @@ static void test_inflight(int fd, unsigned int wait)
 {
 	int parent_fd = fd;
 	unsigned int engine;
+	int max;
 
 	igt_require_gem(fd);
 	igt_require(gem_has_exec_fence(fd));
 
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, 64);
+
 	for_each_engine(parent_fd, engine) {
 		const uint32_t bbe = MI_BATCH_BUFFER_END;
 		struct drm_i915_gem_exec_object2 obj[2];
@@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
 		execbuf.buffer_count = 2;
 		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			gem_execbuf_wr(fd, &execbuf);
 			fence[n] = execbuf.rsvd2 >> 32;
 			igt_assert(fence[n] != -1);
@@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
 
 		check_wait(fd, obj[1].handle, wait);
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 			close(fence[n]);
 		}
@@ -418,6 +424,11 @@ static void test_inflight_suspend(int fd)
 	uint32_t bbe = MI_BATCH_BUFFER_END;
 	int fence[64]; /* conservative estimate of ring size */
 	igt_spin_t *hang;
+	int max;
+
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, 64);
 
 	fd = gem_reopen_driver(fd);
 	igt_require_gem(fd);
@@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
 	execbuf.buffer_count = 2;
 	execbuf.flags = I915_EXEC_FENCE_OUT;
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		gem_execbuf_wr(fd, &execbuf);
 		fence[n] = execbuf.rsvd2 >> 32;
 		igt_assert(fence[n] != -1);
@@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
 
 	check_wait(fd, obj[1].handle, 10);
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 		close(fence[n]);
 	}
-- 
2.20.1

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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
@ 2019-01-30 13:12 ` Chris Wilson
  0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-30 13:12 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Mika Kuoppala

Actually measure how many batches we can fit into a ring before
blocking, or else we may end up hanging the device earlier than
expected!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
 tests/i915/gem_eio.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 09059c311..534bd1899 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -44,6 +44,7 @@
 #include "igt_device.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+#include "i915/gem_ring.h"
 
 IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
 
@@ -358,10 +359,15 @@ static void test_inflight(int fd, unsigned int wait)
 {
 	int parent_fd = fd;
 	unsigned int engine;
+	int max;
 
 	igt_require_gem(fd);
 	igt_require(gem_has_exec_fence(fd));
 
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, 64);
+
 	for_each_engine(parent_fd, engine) {
 		const uint32_t bbe = MI_BATCH_BUFFER_END;
 		struct drm_i915_gem_exec_object2 obj[2];
@@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
 		execbuf.buffer_count = 2;
 		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			gem_execbuf_wr(fd, &execbuf);
 			fence[n] = execbuf.rsvd2 >> 32;
 			igt_assert(fence[n] != -1);
@@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
 
 		check_wait(fd, obj[1].handle, wait);
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 			close(fence[n]);
 		}
@@ -418,6 +424,11 @@ static void test_inflight_suspend(int fd)
 	uint32_t bbe = MI_BATCH_BUFFER_END;
 	int fence[64]; /* conservative estimate of ring size */
 	igt_spin_t *hang;
+	int max;
+
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, 64);
 
 	fd = gem_reopen_driver(fd);
 	igt_require_gem(fd);
@@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
 	execbuf.buffer_count = 2;
 	execbuf.flags = I915_EXEC_FENCE_OUT;
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		gem_execbuf_wr(fd, &execbuf);
 		fence[n] = execbuf.rsvd2 >> 32;
 		igt_assert(fence[n] != -1);
@@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
 
 	check_wait(fd, obj[1].handle, 10);
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 		close(fence[n]);
 	}
-- 
2.20.1

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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_eio: 64 batches may be too many for some devices!
  2019-01-30 13:12 ` [igt-dev] " Chris Wilson
  (?)
@ 2019-01-30 14:10 ` Patchwork
  -1 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2019-01-30 14:10 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: i915/gem_eio: 64 batches may be too many for some devices!
URL   : https://patchwork.freedesktop.org/series/55986/
State : success

== Summary ==

CI Bug Log - changes from IGT_4800 -> IGTPW_2319
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/55986/revisions/1/mbox/

Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@amdgpu/amd_basic@userptr:
    - fi-kbl-8809g:       PASS -> DMESG-WARN [fdo#108965]

  * igt@i915_module_load@reload:
    - fi-blb-e6850:       PASS -> INCOMPLETE [fdo#107718]

  * igt@kms_busy@basic-flip-b:
    - fi-gdg-551:         PASS -> FAIL [fdo#103182]

  * igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
    - fi-byt-clapper:     NOTRUN -> FAIL [fdo#103191] / [fdo#107362]

  * igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
    - fi-apl-guc:         NOTRUN -> DMESG-WARN [fdo#108566]

  
#### Possible fixes ####

  * igt@gem_cpu_reloc@basic:
    - fi-kbl-7560u:       INCOMPLETE [fdo#103665] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108965]: https://bugs.freedesktop.org/show_bug.cgi?id=108965
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (41 -> 40)
------------------------------

  Additional (3): fi-byt-j1900 fi-byt-clapper fi-apl-guc 
  Missing    (4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-------------

    * IGT: IGT_4800 -> IGTPW_2319

  CI_DRM_5508: 2621b0168c75d062f272dd50f5073ad35dfdd946 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2319: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2319/
  IGT_4800: 79cf575d5ac2b2275a4813a7bfb0cf35641ab296 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2319/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
  2019-01-30 13:12 ` [igt-dev] " Chris Wilson
@ 2019-01-30 14:13   ` Mika Kuoppala
  -1 siblings, 0 replies; 14+ messages in thread
From: Mika Kuoppala @ 2019-01-30 14:13 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: igt-dev

Chris Wilson <chris@chris-wilson.co.uk> writes:

> Actually measure how many batches we can fit into a ring before
> blocking, or else we may end up hanging the device earlier than
> expected!
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  tests/i915/gem_eio.c | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> index 09059c311..534bd1899 100644
> --- a/tests/i915/gem_eio.c
> +++ b/tests/i915/gem_eio.c
> @@ -44,6 +44,7 @@
>  #include "igt_device.h"
>  #include "igt_sysfs.h"
>  #include "sw_sync.h"
> +#include "i915/gem_ring.h"
>  
>  IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
>  
> @@ -358,10 +359,15 @@ static void test_inflight(int fd, unsigned int wait)
>  {
>  	int parent_fd = fd;
>  	unsigned int engine;
> +	int max;
>  
>  	igt_require_gem(fd);
>  	igt_require(gem_has_exec_fence(fd));
>  
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, 64);
> +
>  	for_each_engine(parent_fd, engine) {
>  		const uint32_t bbe = MI_BATCH_BUFFER_END;
>  		struct drm_i915_gem_exec_object2 obj[2];
> @@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
>  		execbuf.buffer_count = 2;
>  		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {

Move the fence array to upper scope and use that in finding the
max. As bonus you can remove the comment on 'conservative estimate of
ring size' as apparently we weren't so convervative after all.


Bugzilla ref or how did you noticed this? much hairpulling
potential this has.

-Mika


> +		for (unsigned int n = 0; n < max; n++) {
>  			gem_execbuf_wr(fd, &execbuf);
>  			fence[n] = execbuf.rsvd2 >> 32;
>  			igt_assert(fence[n] != -1);
> @@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
>  
>  		check_wait(fd, obj[1].handle, wait);
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +		for (unsigned int n = 0; n < max; n++) {
>  			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  			close(fence[n]);
>  		}
> @@ -418,6 +424,11 @@ static void test_inflight_suspend(int fd)
>  	uint32_t bbe = MI_BATCH_BUFFER_END;
>  	int fence[64]; /* conservative estimate of ring size */
>  	igt_spin_t *hang;
> +	int max;
> +
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, 64);
>  
>  	fd = gem_reopen_driver(fd);
>  	igt_require_gem(fd);
> @@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
>  	execbuf.buffer_count = 2;
>  	execbuf.flags = I915_EXEC_FENCE_OUT;
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		gem_execbuf_wr(fd, &execbuf);
>  		fence[n] = execbuf.rsvd2 >> 32;
>  		igt_assert(fence[n] != -1);
> @@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
>  
>  	check_wait(fd, obj[1].handle, 10);
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  		close(fence[n]);
>  	}
> -- 
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
@ 2019-01-30 14:13   ` Mika Kuoppala
  0 siblings, 0 replies; 14+ messages in thread
From: Mika Kuoppala @ 2019-01-30 14:13 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: igt-dev

Chris Wilson <chris@chris-wilson.co.uk> writes:

> Actually measure how many batches we can fit into a ring before
> blocking, or else we may end up hanging the device earlier than
> expected!
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> ---
>  tests/i915/gem_eio.c | 19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> index 09059c311..534bd1899 100644
> --- a/tests/i915/gem_eio.c
> +++ b/tests/i915/gem_eio.c
> @@ -44,6 +44,7 @@
>  #include "igt_device.h"
>  #include "igt_sysfs.h"
>  #include "sw_sync.h"
> +#include "i915/gem_ring.h"
>  
>  IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
>  
> @@ -358,10 +359,15 @@ static void test_inflight(int fd, unsigned int wait)
>  {
>  	int parent_fd = fd;
>  	unsigned int engine;
> +	int max;
>  
>  	igt_require_gem(fd);
>  	igt_require(gem_has_exec_fence(fd));
>  
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, 64);
> +
>  	for_each_engine(parent_fd, engine) {
>  		const uint32_t bbe = MI_BATCH_BUFFER_END;
>  		struct drm_i915_gem_exec_object2 obj[2];
> @@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
>  		execbuf.buffer_count = 2;
>  		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {

Move the fence array to upper scope and use that in finding the
max. As bonus you can remove the comment on 'conservative estimate of
ring size' as apparently we weren't so convervative after all.


Bugzilla ref or how did you noticed this? much hairpulling
potential this has.

-Mika


> +		for (unsigned int n = 0; n < max; n++) {
>  			gem_execbuf_wr(fd, &execbuf);
>  			fence[n] = execbuf.rsvd2 >> 32;
>  			igt_assert(fence[n] != -1);
> @@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
>  
>  		check_wait(fd, obj[1].handle, wait);
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +		for (unsigned int n = 0; n < max; n++) {
>  			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  			close(fence[n]);
>  		}
> @@ -418,6 +424,11 @@ static void test_inflight_suspend(int fd)
>  	uint32_t bbe = MI_BATCH_BUFFER_END;
>  	int fence[64]; /* conservative estimate of ring size */
>  	igt_spin_t *hang;
> +	int max;
> +
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, 64);
>  
>  	fd = gem_reopen_driver(fd);
>  	igt_require_gem(fd);
> @@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
>  	execbuf.buffer_count = 2;
>  	execbuf.flags = I915_EXEC_FENCE_OUT;
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		gem_execbuf_wr(fd, &execbuf);
>  		fence[n] = execbuf.rsvd2 >> 32;
>  		igt_assert(fence[n] != -1);
> @@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
>  
>  	check_wait(fd, obj[1].handle, 10);
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  		close(fence[n]);
>  	}
> -- 
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
  2019-01-30 14:13   ` [igt-dev] [Intel-gfx] " Mika Kuoppala
@ 2019-01-30 14:18     ` Chris Wilson
  -1 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-30 14:18 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx; +Cc: igt-dev

Quoting Mika Kuoppala (2019-01-30 14:13:57)
> Chris Wilson <chris@chris-wilson.co.uk> writes:
> 
> > Actually measure how many batches we can fit into a ring before
> > blocking, or else we may end up hanging the device earlier than
> > expected!
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> > ---
> >  tests/i915/gem_eio.c | 19 +++++++++++++++----
> >  1 file changed, 15 insertions(+), 4 deletions(-)
> >
> > diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> > index 09059c311..534bd1899 100644
> > --- a/tests/i915/gem_eio.c
> > +++ b/tests/i915/gem_eio.c
> > @@ -44,6 +44,7 @@
> >  #include "igt_device.h"
> >  #include "igt_sysfs.h"
> >  #include "sw_sync.h"
> > +#include "i915/gem_ring.h"
> >  
> >  IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
> >  
> > @@ -358,10 +359,15 @@ static void test_inflight(int fd, unsigned int wait)
> >  {
> >       int parent_fd = fd;
> >       unsigned int engine;
> > +     int max;
> >  
> >       igt_require_gem(fd);
> >       igt_require(gem_has_exec_fence(fd));
> >  
> > +     max = gem_measure_ring_inflight(fd, -1, 0);
> > +     igt_require(max > 1);
> > +     max = min(max - 1, 64);
> > +
> >       for_each_engine(parent_fd, engine) {
> >               const uint32_t bbe = MI_BATCH_BUFFER_END;
> >               struct drm_i915_gem_exec_object2 obj[2];
> > @@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
> >               execbuf.buffer_count = 2;
> >               execbuf.flags = engine | I915_EXEC_FENCE_OUT;
> >  
> > -             for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> 
> Move the fence array to upper scope and use that in finding the
> max. As bonus you can remove the comment on 'conservative estimate of
> ring size' as apparently we weren't so convervative after all.
> 
> 
> Bugzilla ref or how did you noticed this? much hairpulling
> potential this has.

Just recent changes to bsw. I think there's a bugzilla for it, but will
have to trawl. It's just solitary failure; the device is reset before
the next igt (just not subtest).
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
@ 2019-01-30 14:18     ` Chris Wilson
  0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-30 14:18 UTC (permalink / raw)
  To: Mika Kuoppala, intel-gfx; +Cc: igt-dev

Quoting Mika Kuoppala (2019-01-30 14:13:57)
> Chris Wilson <chris@chris-wilson.co.uk> writes:
> 
> > Actually measure how many batches we can fit into a ring before
> > blocking, or else we may end up hanging the device earlier than
> > expected!
> >
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> > Cc: Mika Kuoppala <mika.kuoppala@intel.com>
> > ---
> >  tests/i915/gem_eio.c | 19 +++++++++++++++----
> >  1 file changed, 15 insertions(+), 4 deletions(-)
> >
> > diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> > index 09059c311..534bd1899 100644
> > --- a/tests/i915/gem_eio.c
> > +++ b/tests/i915/gem_eio.c
> > @@ -44,6 +44,7 @@
> >  #include "igt_device.h"
> >  #include "igt_sysfs.h"
> >  #include "sw_sync.h"
> > +#include "i915/gem_ring.h"
> >  
> >  IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
> >  
> > @@ -358,10 +359,15 @@ static void test_inflight(int fd, unsigned int wait)
> >  {
> >       int parent_fd = fd;
> >       unsigned int engine;
> > +     int max;
> >  
> >       igt_require_gem(fd);
> >       igt_require(gem_has_exec_fence(fd));
> >  
> > +     max = gem_measure_ring_inflight(fd, -1, 0);
> > +     igt_require(max > 1);
> > +     max = min(max - 1, 64);
> > +
> >       for_each_engine(parent_fd, engine) {
> >               const uint32_t bbe = MI_BATCH_BUFFER_END;
> >               struct drm_i915_gem_exec_object2 obj[2];
> > @@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
> >               execbuf.buffer_count = 2;
> >               execbuf.flags = engine | I915_EXEC_FENCE_OUT;
> >  
> > -             for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> 
> Move the fence array to upper scope and use that in finding the
> max. As bonus you can remove the comment on 'conservative estimate of
> ring size' as apparently we weren't so convervative after all.
> 
> 
> Bugzilla ref or how did you noticed this? much hairpulling
> potential this has.

Just recent changes to bsw. I think there's a bugzilla for it, but will
have to trawl. It's just solitary failure; the device is reset before
the next igt (just not subtest).
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
  2019-01-30 13:12 ` [igt-dev] " Chris Wilson
@ 2019-01-30 14:21   ` Chris Wilson
  -1 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-30 14:21 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Mika Kuoppala

Actually measure how many batches we can fit into a ring before
blocking, or else we may end up hanging the device earlier than
expected!

v2: Mostly conservative.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109014
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
 tests/i915/gem_eio.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 09059c311..61054a07e 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -44,6 +44,7 @@
 #include "igt_device.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+#include "i915/gem_ring.h"
 
 IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
 
@@ -358,16 +359,21 @@ static void test_inflight(int fd, unsigned int wait)
 {
 	int parent_fd = fd;
 	unsigned int engine;
+	int fence[64]; /* mostly conservative estimate of ring size */
+	int max;
 
 	igt_require_gem(fd);
 	igt_require(gem_has_exec_fence(fd));
 
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, ARRAY_SIZE(fence));
+
 	for_each_engine(parent_fd, engine) {
 		const uint32_t bbe = MI_BATCH_BUFFER_END;
 		struct drm_i915_gem_exec_object2 obj[2];
 		struct drm_i915_gem_execbuffer2 execbuf;
 		igt_spin_t *hang;
-		int fence[64]; /* conservative estimate of ring size */
 
 		fd = gem_reopen_driver(parent_fd);
 		igt_require_gem(fd);
@@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
 		execbuf.buffer_count = 2;
 		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			gem_execbuf_wr(fd, &execbuf);
 			fence[n] = execbuf.rsvd2 >> 32;
 			igt_assert(fence[n] != -1);
@@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
 
 		check_wait(fd, obj[1].handle, wait);
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 			close(fence[n]);
 		}
@@ -416,8 +422,13 @@ static void test_inflight_suspend(int fd)
 	struct drm_i915_gem_execbuffer2 execbuf;
 	struct drm_i915_gem_exec_object2 obj[2];
 	uint32_t bbe = MI_BATCH_BUFFER_END;
-	int fence[64]; /* conservative estimate of ring size */
+	int fence[64]; /* mostly conservative estimate of ring size */
 	igt_spin_t *hang;
+	int max;
+
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, ARRAY_SIZE(fence));
 
 	fd = gem_reopen_driver(fd);
 	igt_require_gem(fd);
@@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
 	execbuf.buffer_count = 2;
 	execbuf.flags = I915_EXEC_FENCE_OUT;
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		gem_execbuf_wr(fd, &execbuf);
 		fence[n] = execbuf.rsvd2 >> 32;
 		igt_assert(fence[n] != -1);
@@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
 
 	check_wait(fd, obj[1].handle, 10);
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 		close(fence[n]);
 	}
-- 
2.20.1

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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [igt-dev] [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
@ 2019-01-30 14:21   ` Chris Wilson
  0 siblings, 0 replies; 14+ messages in thread
From: Chris Wilson @ 2019-01-30 14:21 UTC (permalink / raw)
  To: intel-gfx; +Cc: igt-dev, Mika Kuoppala

Actually measure how many batches we can fit into a ring before
blocking, or else we may end up hanging the device earlier than
expected!

v2: Mostly conservative.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109014
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Mika Kuoppala <mika.kuoppala@intel.com>
---
 tests/i915/gem_eio.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 09059c311..61054a07e 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -44,6 +44,7 @@
 #include "igt_device.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+#include "i915/gem_ring.h"
 
 IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
 
@@ -358,16 +359,21 @@ static void test_inflight(int fd, unsigned int wait)
 {
 	int parent_fd = fd;
 	unsigned int engine;
+	int fence[64]; /* mostly conservative estimate of ring size */
+	int max;
 
 	igt_require_gem(fd);
 	igt_require(gem_has_exec_fence(fd));
 
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, ARRAY_SIZE(fence));
+
 	for_each_engine(parent_fd, engine) {
 		const uint32_t bbe = MI_BATCH_BUFFER_END;
 		struct drm_i915_gem_exec_object2 obj[2];
 		struct drm_i915_gem_execbuffer2 execbuf;
 		igt_spin_t *hang;
-		int fence[64]; /* conservative estimate of ring size */
 
 		fd = gem_reopen_driver(parent_fd);
 		igt_require_gem(fd);
@@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
 		execbuf.buffer_count = 2;
 		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			gem_execbuf_wr(fd, &execbuf);
 			fence[n] = execbuf.rsvd2 >> 32;
 			igt_assert(fence[n] != -1);
@@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
 
 		check_wait(fd, obj[1].handle, wait);
 
-		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+		for (unsigned int n = 0; n < max; n++) {
 			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 			close(fence[n]);
 		}
@@ -416,8 +422,13 @@ static void test_inflight_suspend(int fd)
 	struct drm_i915_gem_execbuffer2 execbuf;
 	struct drm_i915_gem_exec_object2 obj[2];
 	uint32_t bbe = MI_BATCH_BUFFER_END;
-	int fence[64]; /* conservative estimate of ring size */
+	int fence[64]; /* mostly conservative estimate of ring size */
 	igt_spin_t *hang;
+	int max;
+
+	max = gem_measure_ring_inflight(fd, -1, 0);
+	igt_require(max > 1);
+	max = min(max - 1, ARRAY_SIZE(fence));
 
 	fd = gem_reopen_driver(fd);
 	igt_require_gem(fd);
@@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
 	execbuf.buffer_count = 2;
 	execbuf.flags = I915_EXEC_FENCE_OUT;
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		gem_execbuf_wr(fd, &execbuf);
 		fence[n] = execbuf.rsvd2 >> 32;
 		igt_assert(fence[n] != -1);
@@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
 
 	check_wait(fd, obj[1].handle, 10);
 
-	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
+	for (unsigned int n = 0; n < max; n++) {
 		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
 		close(fence[n]);
 	}
-- 
2.20.1

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

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
  2019-01-30 14:21   ` [igt-dev] " Chris Wilson
@ 2019-01-30 14:27     ` Mika Kuoppala
  -1 siblings, 0 replies; 14+ messages in thread
From: Mika Kuoppala @ 2019-01-30 14:27 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: igt-dev

Chris Wilson <chris@chris-wilson.co.uk> writes:

> Actually measure how many batches we can fit into a ring before
> blocking, or else we may end up hanging the device earlier than
> expected!
>
> v2: Mostly conservative.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109014
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>

Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>

> ---
>  tests/i915/gem_eio.c | 23 +++++++++++++++++------
>  1 file changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> index 09059c311..61054a07e 100644
> --- a/tests/i915/gem_eio.c
> +++ b/tests/i915/gem_eio.c
> @@ -44,6 +44,7 @@
>  #include "igt_device.h"
>  #include "igt_sysfs.h"
>  #include "sw_sync.h"
> +#include "i915/gem_ring.h"
>  
>  IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
>  
> @@ -358,16 +359,21 @@ static void test_inflight(int fd, unsigned int wait)
>  {
>  	int parent_fd = fd;
>  	unsigned int engine;
> +	int fence[64]; /* mostly conservative estimate of ring size */
> +	int max;
>  
>  	igt_require_gem(fd);
>  	igt_require(gem_has_exec_fence(fd));
>  
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, ARRAY_SIZE(fence));
> +
>  	for_each_engine(parent_fd, engine) {
>  		const uint32_t bbe = MI_BATCH_BUFFER_END;
>  		struct drm_i915_gem_exec_object2 obj[2];
>  		struct drm_i915_gem_execbuffer2 execbuf;
>  		igt_spin_t *hang;
> -		int fence[64]; /* conservative estimate of ring size */
>  
>  		fd = gem_reopen_driver(parent_fd);
>  		igt_require_gem(fd);
> @@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
>  		execbuf.buffer_count = 2;
>  		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +		for (unsigned int n = 0; n < max; n++) {
>  			gem_execbuf_wr(fd, &execbuf);
>  			fence[n] = execbuf.rsvd2 >> 32;
>  			igt_assert(fence[n] != -1);
> @@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
>  
>  		check_wait(fd, obj[1].handle, wait);
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +		for (unsigned int n = 0; n < max; n++) {
>  			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  			close(fence[n]);
>  		}
> @@ -416,8 +422,13 @@ static void test_inflight_suspend(int fd)
>  	struct drm_i915_gem_execbuffer2 execbuf;
>  	struct drm_i915_gem_exec_object2 obj[2];
>  	uint32_t bbe = MI_BATCH_BUFFER_END;
> -	int fence[64]; /* conservative estimate of ring size */
> +	int fence[64]; /* mostly conservative estimate of ring size */
>  	igt_spin_t *hang;
> +	int max;
> +
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, ARRAY_SIZE(fence));
>  
>  	fd = gem_reopen_driver(fd);
>  	igt_require_gem(fd);
> @@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
>  	execbuf.buffer_count = 2;
>  	execbuf.flags = I915_EXEC_FENCE_OUT;
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		gem_execbuf_wr(fd, &execbuf);
>  		fence[n] = execbuf.rsvd2 >> 32;
>  		igt_assert(fence[n] != -1);
> @@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
>  
>  	check_wait(fd, obj[1].handle, 10);
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  		close(fence[n]);
>  	}
> -- 
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [igt-dev] [Intel-gfx] [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices!
@ 2019-01-30 14:27     ` Mika Kuoppala
  0 siblings, 0 replies; 14+ messages in thread
From: Mika Kuoppala @ 2019-01-30 14:27 UTC (permalink / raw)
  To: Chris Wilson, intel-gfx; +Cc: igt-dev

Chris Wilson <chris@chris-wilson.co.uk> writes:

> Actually measure how many batches we can fit into a ring before
> blocking, or else we may end up hanging the device earlier than
> expected!
>
> v2: Mostly conservative.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109014
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Mika Kuoppala <mika.kuoppala@intel.com>

Reviewed-by: Mika Kuoppala <mika.kuoppala@linux.intel.com>

> ---
>  tests/i915/gem_eio.c | 23 +++++++++++++++++------
>  1 file changed, 17 insertions(+), 6 deletions(-)
>
> diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
> index 09059c311..61054a07e 100644
> --- a/tests/i915/gem_eio.c
> +++ b/tests/i915/gem_eio.c
> @@ -44,6 +44,7 @@
>  #include "igt_device.h"
>  #include "igt_sysfs.h"
>  #include "sw_sync.h"
> +#include "i915/gem_ring.h"
>  
>  IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
>  
> @@ -358,16 +359,21 @@ static void test_inflight(int fd, unsigned int wait)
>  {
>  	int parent_fd = fd;
>  	unsigned int engine;
> +	int fence[64]; /* mostly conservative estimate of ring size */
> +	int max;
>  
>  	igt_require_gem(fd);
>  	igt_require(gem_has_exec_fence(fd));
>  
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, ARRAY_SIZE(fence));
> +
>  	for_each_engine(parent_fd, engine) {
>  		const uint32_t bbe = MI_BATCH_BUFFER_END;
>  		struct drm_i915_gem_exec_object2 obj[2];
>  		struct drm_i915_gem_execbuffer2 execbuf;
>  		igt_spin_t *hang;
> -		int fence[64]; /* conservative estimate of ring size */
>  
>  		fd = gem_reopen_driver(parent_fd);
>  		igt_require_gem(fd);
> @@ -389,7 +395,7 @@ static void test_inflight(int fd, unsigned int wait)
>  		execbuf.buffer_count = 2;
>  		execbuf.flags = engine | I915_EXEC_FENCE_OUT;
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +		for (unsigned int n = 0; n < max; n++) {
>  			gem_execbuf_wr(fd, &execbuf);
>  			fence[n] = execbuf.rsvd2 >> 32;
>  			igt_assert(fence[n] != -1);
> @@ -397,7 +403,7 @@ static void test_inflight(int fd, unsigned int wait)
>  
>  		check_wait(fd, obj[1].handle, wait);
>  
> -		for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +		for (unsigned int n = 0; n < max; n++) {
>  			igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  			close(fence[n]);
>  		}
> @@ -416,8 +422,13 @@ static void test_inflight_suspend(int fd)
>  	struct drm_i915_gem_execbuffer2 execbuf;
>  	struct drm_i915_gem_exec_object2 obj[2];
>  	uint32_t bbe = MI_BATCH_BUFFER_END;
> -	int fence[64]; /* conservative estimate of ring size */
> +	int fence[64]; /* mostly conservative estimate of ring size */
>  	igt_spin_t *hang;
> +	int max;
> +
> +	max = gem_measure_ring_inflight(fd, -1, 0);
> +	igt_require(max > 1);
> +	max = min(max - 1, ARRAY_SIZE(fence));
>  
>  	fd = gem_reopen_driver(fd);
>  	igt_require_gem(fd);
> @@ -437,7 +448,7 @@ static void test_inflight_suspend(int fd)
>  	execbuf.buffer_count = 2;
>  	execbuf.flags = I915_EXEC_FENCE_OUT;
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		gem_execbuf_wr(fd, &execbuf);
>  		fence[n] = execbuf.rsvd2 >> 32;
>  		igt_assert(fence[n] != -1);
> @@ -448,7 +459,7 @@ static void test_inflight_suspend(int fd)
>  
>  	check_wait(fd, obj[1].handle, 10);
>  
> -	for (unsigned int n = 0; n < ARRAY_SIZE(fence); n++) {
> +	for (unsigned int n = 0; n < max; n++) {
>  		igt_assert_eq(sync_fence_status(fence[n]), -EIO);
>  		close(fence[n]);
>  	}
> -- 
> 2.20.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_eio: 64 batches may be too many for some devices! (rev2)
  2019-01-30 13:12 ` [igt-dev] " Chris Wilson
                   ` (3 preceding siblings ...)
  (?)
@ 2019-01-30 15:00 ` Patchwork
  -1 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2019-01-30 15:00 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: i915/gem_eio: 64 batches may be too many for some devices! (rev2)
URL   : https://patchwork.freedesktop.org/series/55986/
State : success

== Summary ==

CI Bug Log - changes from IGT_4800 -> IGTPW_2320
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/55986/revisions/2/mbox/

Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s4-devices:
    - fi-blb-e6850:       PASS -> INCOMPLETE [fdo#107718]

  * igt@i915_selftest@live_execlists:
    - fi-apl-guc:         NOTRUN -> INCOMPLETE [fdo#103927]

  * igt@kms_busy@basic-flip-b:
    - fi-gdg-551:         PASS -> FAIL [fdo#103182]

  * igt@kms_pipe_crc_basic@read-crc-pipe-a-frame-sequence:
    - fi-byt-clapper:     NOTRUN -> FAIL [fdo#103191] / [fdo#107362]

  
#### Possible fixes ####

  * igt@gem_cpu_reloc@basic:
    - fi-kbl-7560u:       INCOMPLETE [fdo#103665] -> PASS

  * igt@kms_busy@basic-flip-a:
    - fi-gdg-551:         FAIL [fdo#103182] -> PASS

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

  [fdo#103182]: https://bugs.freedesktop.org/show_bug.cgi?id=103182
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#107362]: https://bugs.freedesktop.org/show_bug.cgi?id=107362
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278


Participating hosts (41 -> 40)
------------------------------

  Additional (3): fi-byt-j1900 fi-byt-clapper fi-apl-guc 
  Missing    (4): fi-kbl-soraka fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 


Build changes
-------------

    * IGT: IGT_4800 -> IGTPW_2320

  CI_DRM_5508: 2621b0168c75d062f272dd50f5073ad35dfdd946 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2320: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2320/
  IGT_4800: 79cf575d5ac2b2275a4813a7bfb0cf35641ab296 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2320/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for i915/gem_eio: 64 batches may be too many for some devices!
  2019-01-30 13:12 ` [igt-dev] " Chris Wilson
                   ` (4 preceding siblings ...)
  (?)
@ 2019-01-30 16:24 ` Patchwork
  -1 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2019-01-30 16:24 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: i915/gem_eio: 64 batches may be too many for some devices!
URL   : https://patchwork.freedesktop.org/series/55986/
State : success

== Summary ==

CI Bug Log - changes from IGT_4800_full -> IGTPW_2319_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/55986/revisions/1/mbox/

Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
    - shard-apl:          NOTRUN -> DMESG-WARN [fdo#107956]
    - shard-glk:          NOTRUN -> DMESG-WARN [fdo#107956] +1
    - shard-hsw:          NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-apl:          PASS -> FAIL [fdo#106510] / [fdo#108145]

  * igt@kms_ccs@pipe-b-crc-sprite-planes-basic:
    - shard-glk:          PASS -> FAIL [fdo#108145]
    - shard-kbl:          PASS -> FAIL [fdo#107725] / [fdo#108145]

  * igt@kms_cursor_crc@cursor-128x128-random:
    - shard-apl:          PASS -> FAIL [fdo#103232] +3

  * igt@kms_cursor_crc@cursor-128x42-onscreen:
    - shard-glk:          PASS -> FAIL [fdo#103232] +2

  * igt@kms_cursor_crc@cursor-256x85-sliding:
    - shard-kbl:          PASS -> FAIL [fdo#103232]

  * igt@kms_draw_crc@draw-method-rgb565-pwrite-ytiled:
    - shard-glk:          PASS -> FAIL [fdo#103184]

  * igt@kms_plane@plane-position-covered-pipe-a-planes:
    - shard-kbl:          PASS -> FAIL [fdo#103166]

  * igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
    - shard-glk:          NOTRUN -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
    - shard-glk:          NOTRUN -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-y:
    - shard-apl:          PASS -> FAIL [fdo#103166] +4

  * igt@kms_properties@invalid-properties-legacy:
    - shard-snb:          PASS -> INCOMPLETE [fdo#105411]

  * igt@perf_pmu@rc6-runtime-pm:
    - shard-glk:          PASS -> FAIL [fdo#105010]

  
#### Possible fixes ####

  * igt@gem_softpin@noreloc-s3:
    - shard-hsw:          INCOMPLETE [fdo#103540] -> PASS
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS
    - shard-glk:          INCOMPLETE [fdo#103359] / [k.org#198133] -> PASS

  * igt@kms_available_modes_crc@available_mode_test_crc:
    - shard-glk:          FAIL [fdo#106641] -> PASS

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-glk:          FAIL [fdo#108145] -> PASS

  * igt@kms_color@pipe-c-ctm-max:
    - shard-apl:          FAIL [fdo#108147] -> PASS

  * igt@kms_color@pipe-c-legacy-gamma:
    - shard-apl:          FAIL [fdo#104782] -> PASS +1

  * igt@kms_cursor_crc@cursor-128x128-dpms:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +1

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-apl:          FAIL [fdo#103191] / [fdo#103232] -> PASS +1
    - shard-kbl:          FAIL [fdo#103191] / [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-256x85-onscreen:
    - shard-apl:          FAIL [fdo#103232] -> PASS +6

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-glk:          FAIL [fdo#103232] -> PASS +7

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-glk:          FAIL [fdo#105363] -> PASS

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-apl:          FAIL [fdo#108948] -> PASS
    - shard-kbl:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane@pixel-format-pipe-c-planes-source-clamping:
    - shard-glk:          FAIL [fdo#108948] -> PASS +1

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          FAIL [fdo#103166] -> PASS +7

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-apl:          FAIL [fdo#103166] -> PASS +4

  * igt@kms_setmode@basic:
    - shard-hsw:          FAIL [fdo#99912] -> PASS

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-hsw:          FAIL [fdo#104894] -> PASS

  * igt@syncobj_wait@wait-all-for-submit-snapshot:
    - shard-snb:          INCOMPLETE [fdo#105411] -> PASS

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103184]: https://bugs.freedesktop.org/show_bug.cgi?id=103184
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105010]: https://bugs.freedesktop.org/show_bug.cgi?id=105010
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#106510]: https://bugs.freedesktop.org/show_bug.cgi?id=106510
  [fdo#106641]: https://bugs.freedesktop.org/show_bug.cgi?id=106641
  [fdo#107725]: https://bugs.freedesktop.org/show_bug.cgi?id=107725
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


Build changes
-------------

    * IGT: IGT_4800 -> IGTPW_2319

  CI_DRM_5508: 2621b0168c75d062f272dd50f5073ad35dfdd946 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2319: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2319/
  IGT_4800: 79cf575d5ac2b2275a4813a7bfb0cf35641ab296 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2319/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [igt-dev] ✓ Fi.CI.IGT: success for i915/gem_eio: 64 batches may be too many for some devices! (rev2)
  2019-01-30 13:12 ` [igt-dev] " Chris Wilson
                   ` (5 preceding siblings ...)
  (?)
@ 2019-01-30 17:35 ` Patchwork
  -1 siblings, 0 replies; 14+ messages in thread
From: Patchwork @ 2019-01-30 17:35 UTC (permalink / raw)
  To: Chris Wilson; +Cc: igt-dev

== Series Details ==

Series: i915/gem_eio: 64 batches may be too many for some devices! (rev2)
URL   : https://patchwork.freedesktop.org/series/55986/
State : success

== Summary ==

CI Bug Log - changes from IGT_4800_full -> IGTPW_2320_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/55986/revisions/2/mbox/

Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-contexts-1us:
    - shard-glk:          PASS -> FAIL [fdo#107799]

  * igt@gem_eio@reset-stress:
    - shard-hsw:          PASS -> INCOMPLETE [fdo#103540] / [fdo#109482]

  * igt@kms_busy@extended-modeset-hang-newfb-with-reset-render-c:
    - shard-apl:          NOTRUN -> DMESG-WARN [fdo#107956]
    - shard-glk:          NOTRUN -> DMESG-WARN [fdo#107956]
    - shard-hsw:          NOTRUN -> DMESG-WARN [fdo#107956]

  * igt@kms_color@pipe-b-degamma:
    - shard-apl:          PASS -> FAIL [fdo#104782]

  * igt@kms_cursor_crc@cursor-128x128-random:
    - shard-apl:          PASS -> FAIL [fdo#103232] +3

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-glk:          NOTRUN -> FAIL [fdo#103232]

  * igt@kms_cursor_crc@cursor-256x256-sliding:
    - shard-glk:          PASS -> FAIL [fdo#103232] +2

  * igt@kms_cursor_crc@cursor-64x21-onscreen:
    - shard-kbl:          PASS -> FAIL [fdo#103232] +1

  * igt@kms_cursor_legacy@all-pipes-single-bo:
    - shard-snb:          PASS -> INCOMPLETE [fdo#105411] / [fdo#107469]

  * igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
    - shard-glk:          NOTRUN -> FAIL [fdo#108145]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
    - shard-glk:          PASS -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-a-tiling-y:
    - shard-glk:          NOTRUN -> FAIL [fdo#103166]

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-y:
    - shard-apl:          PASS -> FAIL [fdo#103166] +1

  * igt@kms_setmode@basic:
    - shard-apl:          PASS -> FAIL [fdo#99912]

  
#### Possible fixes ####

  * igt@gem_softpin@noreloc-s3:
    - shard-hsw:          INCOMPLETE [fdo#103540] -> PASS
    - shard-apl:          INCOMPLETE [fdo#103927] -> PASS
    - shard-glk:          INCOMPLETE [fdo#103359] / [k.org#198133] -> PASS

  * igt@kms_busy@extended-modeset-hang-newfb-render-a:
    - shard-hsw:          DMESG-WARN [fdo#107956] -> PASS

  * igt@kms_ccs@pipe-a-crc-sprite-planes-basic:
    - shard-glk:          FAIL [fdo#108145] -> PASS

  * igt@kms_color@pipe-c-ctm-max:
    - shard-apl:          FAIL [fdo#108147] -> PASS

  * igt@kms_color@pipe-c-legacy-gamma:
    - shard-apl:          FAIL [fdo#104782] -> PASS +1

  * igt@kms_cursor_crc@cursor-128x128-suspend:
    - shard-kbl:          FAIL [fdo#103191] / [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-256x256-random:
    - shard-kbl:          FAIL [fdo#103232] -> PASS +1

  * igt@kms_cursor_crc@cursor-64x21-random:
    - shard-apl:          FAIL [fdo#103232] -> PASS +7

  * igt@kms_cursor_crc@cursor-64x64-suspend:
    - shard-apl:          FAIL [fdo#103191] / [fdo#103232] -> PASS

  * igt@kms_cursor_crc@cursor-size-change:
    - shard-glk:          FAIL [fdo#103232] -> PASS +5

  * igt@kms_flip@flip-vs-expired-vblank-interruptible:
    - shard-glk:          FAIL [fdo#105363] -> PASS

  * igt@kms_plane@pixel-format-pipe-a-planes-source-clamping:
    - shard-apl:          FAIL [fdo#108948] -> PASS
    - shard-kbl:          FAIL [fdo#108948] -> PASS

  * igt@kms_plane_multiple@atomic-pipe-b-tiling-none:
    - shard-glk:          FAIL [fdo#103166] -> PASS +9

  * igt@kms_plane_multiple@atomic-pipe-c-tiling-yf:
    - shard-apl:          FAIL [fdo#103166] -> PASS +3

  * igt@kms_setmode@basic:
    - shard-hsw:          FAIL [fdo#99912] -> PASS

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-hsw:          FAIL [fdo#104894] -> PASS

  * igt@syncobj_wait@wait-all-for-submit-snapshot:
    - shard-snb:          INCOMPLETE [fdo#105411] -> PASS

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

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103191]: https://bugs.freedesktop.org/show_bug.cgi?id=103191
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#104894]: https://bugs.freedesktop.org/show_bug.cgi?id=104894
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#105411]: https://bugs.freedesktop.org/show_bug.cgi?id=105411
  [fdo#107469]: https://bugs.freedesktop.org/show_bug.cgi?id=107469
  [fdo#107799]: https://bugs.freedesktop.org/show_bug.cgi?id=107799
  [fdo#107956]: https://bugs.freedesktop.org/show_bug.cgi?id=107956
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108147]: https://bugs.freedesktop.org/show_bug.cgi?id=108147
  [fdo#108948]: https://bugs.freedesktop.org/show_bug.cgi?id=108948
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#109482]: https://bugs.freedesktop.org/show_bug.cgi?id=109482
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (7 -> 5)
------------------------------

  Missing    (2): shard-skl shard-iclb 


Build changes
-------------

    * IGT: IGT_4800 -> IGTPW_2320

  CI_DRM_5508: 2621b0168c75d062f272dd50f5073ad35dfdd946 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_2320: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2320/
  IGT_4800: 79cf575d5ac2b2275a4813a7bfb0cf35641ab296 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_2320/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2019-01-30 17:35 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-01-30 13:12 [PATCH i-g-t] i915/gem_eio: 64 batches may be too many for some devices! Chris Wilson
2019-01-30 13:12 ` [igt-dev] " Chris Wilson
2019-01-30 14:10 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2019-01-30 14:13 ` [PATCH i-g-t] " Mika Kuoppala
2019-01-30 14:13   ` [igt-dev] [Intel-gfx] " Mika Kuoppala
2019-01-30 14:18   ` Chris Wilson
2019-01-30 14:18     ` [igt-dev] [Intel-gfx] " Chris Wilson
2019-01-30 14:21 ` Chris Wilson
2019-01-30 14:21   ` [igt-dev] " Chris Wilson
2019-01-30 14:27   ` Mika Kuoppala
2019-01-30 14:27     ` [igt-dev] [Intel-gfx] " Mika Kuoppala
2019-01-30 15:00 ` [igt-dev] ✓ Fi.CI.BAT: success for i915/gem_eio: 64 batches may be too many for some devices! (rev2) Patchwork
2019-01-30 16:24 ` [igt-dev] ✓ Fi.CI.IGT: success for i915/gem_eio: 64 batches may be too many for some devices! Patchwork
2019-01-30 17:35 ` [igt-dev] ✓ Fi.CI.IGT: success for i915/gem_eio: 64 batches may be too many for some devices! (rev2) Patchwork

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.