* [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch
@ 2018-07-10 23:45 Antonio Argenziano
2018-07-11 0:39 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3) Patchwork
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Antonio Argenziano @ 2018-07-10 23:45 UTC (permalink / raw)
To: igt-dev
An hanging batch is nothing more than a spinning batch that never gets
stopped, so re-use the routines implemented in dummyload.c.
v2:
- Let caller decide spin loop size
- Now builds with meson.
v3:
- Only use loose loops for hangs (Chris)
Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
lib/igt_gt.c | 57 ++++++++-------------------------------------------------
lib/meson.build | 1 +
2 files changed, 9 insertions(+), 49 deletions(-)
diff --git a/lib/igt_gt.c b/lib/igt_gt.c
index 89b318ae..a363b409 100644
--- a/lib/igt_gt.c
+++ b/lib/igt_gt.c
@@ -40,6 +40,7 @@
#include "ioctl_wrappers.h"
#include "intel_reg.h"
#include "intel_chipset.h"
+#include "igt_dummyload.h"
/**
* SECTION:igt_gt
@@ -271,14 +272,10 @@ igt_hang_t igt_hang_ctx(int fd,
unsigned flags,
uint64_t *offset)
{
- struct drm_i915_gem_relocation_entry reloc;
- struct drm_i915_gem_execbuffer2 execbuf;
- struct drm_i915_gem_exec_object2 exec;
+ igt_spin_t *spinning_batch;
+ struct igt_spin_factory opts = {};
struct drm_i915_gem_context_param param;
- uint32_t b[16];
unsigned ban;
- unsigned len;
- int gen;
igt_require_hang_ring(fd, ring);
@@ -302,52 +299,14 @@ igt_hang_t igt_hang_ctx(int fd,
if ((flags & HANG_ALLOW_BAN) == 0)
context_set_ban(fd, ctx, 0);
- memset(&reloc, 0, sizeof(reloc));
- memset(&exec, 0, sizeof(exec));
- memset(&execbuf, 0, sizeof(execbuf));
-
- exec.handle = gem_create(fd, 4096);
- exec.relocation_count = 1;
- exec.relocs_ptr = to_user_pointer(&reloc);
-
- memset(b, 0xc5, sizeof(b));
-
- len = 0;
- gen = intel_gen(intel_get_drm_devid(fd));
- if (gen >= 8) {
- b[len++] = MI_BATCH_BUFFER_START | 1 << 8 | 1;
- b[len++] = 0;
- b[len++] = 0;
- } else if (gen >= 6) {
- b[len++] = MI_BATCH_BUFFER_START | 1 << 8;
- b[len++] = 0;
- } else {
- b[len++] = MI_BATCH_BUFFER_START | 2 << 6;
- b[len] = 0;
- if (gen < 4) {
- b[len] |= 1;
- reloc.delta = 1;
- }
- len++;
- }
- b[len++] = MI_BATCH_BUFFER_END;
- b[len] = MI_NOOP;
- gem_write(fd, exec.handle, 0, b, sizeof(b));
-
- reloc.offset = sizeof(uint32_t);
- reloc.target_handle = exec.handle;
- reloc.read_domains = I915_GEM_DOMAIN_COMMAND;
-
- execbuf.buffers_ptr = to_user_pointer(&exec);
- execbuf.buffer_count = 1;
- execbuf.flags = ring;
- i915_execbuffer2_set_context_id(execbuf, ctx);
- gem_execbuf(fd, &execbuf);
+ opts.ctx = ctx;
+ opts.engine = ring;
+ spinning_batch = igt_spin_batch_factory(fd, &opts);
if (offset)
- *offset = exec.offset;
+ *offset = spinning_batch->obj[1].offset; /* The batch is the last object */
- return (igt_hang_t){ exec.handle, ctx, ban, flags };
+ return (igt_hang_t){ spinning_batch->obj[1].handle, ctx, ban, flags };
}
/**
diff --git a/lib/meson.build b/lib/meson.build
index 1a355414..868801c2 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -134,6 +134,7 @@ lib_igt_chipset = declare_dependency(link_with : lin_igt_chipset_build,
lib_igt_perf_build = static_library('igt_perf',
['igt_perf.c'],
+ dependencies: [libdrm],
include_directories : inc)
lib_igt_perf = declare_dependency(link_with : lib_igt_perf_build,
--
2.16.2
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3)
2018-07-10 23:45 [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch Antonio Argenziano
@ 2018-07-11 0:39 ` Patchwork
2018-07-11 4:16 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2018-07-11 10:43 ` [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch Chris Wilson
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-07-11 0:39 UTC (permalink / raw)
To: Antonio Argenziano; +Cc: igt-dev
== Series Details ==
Series: lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3)
URL : https://patchwork.freedesktop.org/series/46209/
State : success
== Summary ==
= CI Bug Log - changes from CI_DRM_4466 -> IGTPW_1553 =
== Summary - SUCCESS ==
No regressions found.
External URL: https://patchwork.freedesktop.org/api/1.0/series/46209/revisions/3/mbox/
== Known issues ==
Here are the changes found in IGTPW_1553 that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@gem_exec_suspend@basic-s4-devices:
fi-kbl-7500u: PASS -> DMESG-WARN (fdo#105128, fdo#107139)
igt@kms_busy@basic-flip-b:
fi-blb-e6850: PASS -> FAIL (fdo#103182)
igt@prime_vgem@basic-fence-flip:
fi-ilk-650: PASS -> FAIL (fdo#104008)
==== Possible fixes ====
igt@kms_pipe_crc_basic@hang-read-crc-pipe-b:
{fi-skl-iommu}: FAIL (fdo#106686) -> SKIP +2
{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#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
fdo#105128 https://bugs.freedesktop.org/show_bug.cgi?id=105128
fdo#106686 https://bugs.freedesktop.org/show_bug.cgi?id=106686
fdo#107139 https://bugs.freedesktop.org/show_bug.cgi?id=107139
== Participating hosts (45 -> 41) ==
Additional (1): fi-kbl-guc
Missing (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u
== Build changes ==
* IGT: IGT_4545 -> IGTPW_1553
CI_DRM_4466: 40ea4d696481930682c782e8dd7bd0cdbdfad574 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1553: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1553/
IGT_4545: c3035d8cb11459f186f712d9c7ebb6734fc99831 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1553/issues.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] ✗ Fi.CI.IGT: failure for lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3)
2018-07-10 23:45 [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch Antonio Argenziano
2018-07-11 0:39 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3) Patchwork
@ 2018-07-11 4:16 ` Patchwork
2018-07-11 7:27 ` Chris Wilson
2018-07-11 10:43 ` [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch Chris Wilson
2 siblings, 1 reply; 5+ messages in thread
From: Patchwork @ 2018-07-11 4:16 UTC (permalink / raw)
To: Antonio Argenziano; +Cc: igt-dev
== Series Details ==
Series: lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3)
URL : https://patchwork.freedesktop.org/series/46209/
State : failure
== Summary ==
= CI Bug Log - changes from IGT_4545_full -> IGTPW_1553_full =
== Summary - FAILURE ==
Serious unknown changes coming with IGTPW_1553_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_1553_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://patchwork.freedesktop.org/api/1.0/series/46209/revisions/3/mbox/
== Possible new issues ==
Here are the unknown changes that may have been introduced in IGTPW_1553_full:
=== IGT changes ===
==== Possible regressions ====
igt@gem_exec_schedule@preemptive-hang-bsd1:
shard-kbl: PASS -> FAIL +4
igt@gem_exec_schedule@preemptive-hang-render:
shard-apl: PASS -> FAIL +3
igt@gem_exec_schedule@preemptive-hang-vebox:
shard-glk: PASS -> FAIL +3
==== Warnings ====
igt@gem_mocs_settings@mocs-rc6-ctx-dirty-render:
shard-kbl: PASS -> SKIP
igt@kms_draw_crc@draw-method-xrgb8888-pwrite-xtiled:
shard-snb: SKIP -> PASS +1
igt@kms_frontbuffer_tracking@fbc-2p-primscrn-pri-indfb-draw-render:
shard-hsw: PASS -> SKIP
== Known issues ==
Here are the changes found in IGTPW_1553_full that come from known issues:
=== IGT changes ===
==== Issues hit ====
igt@gem_exec_schedule@preempt-other-bsd1:
shard-snb: SKIP -> INCOMPLETE (fdo#105411)
igt@gem_ppgtt@blt-vs-render-ctxn:
shard-kbl: PASS -> INCOMPLETE (fdo#106023, fdo#103665)
igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
shard-glk: PASS -> FAIL (fdo#105454, fdo#106509)
igt@kms_flip@2x-flip-vs-absolute-wf_vblank:
shard-glk: PASS -> FAIL (fdo#100368)
igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
shard-glk: PASS -> FAIL (fdo#105363)
igt@kms_flip_tiling@flip-to-y-tiled:
shard-glk: PASS -> FAIL (fdo#107161)
igt@kms_plane_multiple@atomic-pipe-a-tiling-x:
shard-snb: PASS -> FAIL (fdo#103166)
igt@kms_rotation_crc@sprite-rotation-180:
shard-snb: PASS -> FAIL (fdo#103925) +1
==== Possible fixes ====
igt@drv_module_reload@basic-reload-inject:
shard-glk: DMESG-WARN -> PASS
igt@gem_ppgtt@blt-vs-render-ctx0:
shard-kbl: INCOMPLETE (fdo#106023, fdo#103665) -> PASS
igt@kms_available_modes_crc@available_mode_test_crc:
shard-snb: FAIL (fdo#106641) -> PASS
igt@kms_flip@2x-plain-flip-ts-check-interruptible:
shard-glk: FAIL (fdo#100368) -> PASS +1
igt@kms_flip_tiling@flip-to-x-tiled:
shard-glk: FAIL (fdo#107161, fdo#103822) -> PASS
igt@kms_setmode@basic:
shard-kbl: FAIL (fdo#99912) -> PASS
igt@perf@polling:
shard-hsw: FAIL (fdo#102252) -> PASS
igt@testdisplay:
shard-glk: INCOMPLETE (fdo#103359, k.org#198133) -> PASS
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
fdo#103166 https://bugs.freedesktop.org/show_bug.cgi?id=103166
fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
fdo#103665 https://bugs.freedesktop.org/show_bug.cgi?id=103665
fdo#103822 https://bugs.freedesktop.org/show_bug.cgi?id=103822
fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
fdo#105363 https://bugs.freedesktop.org/show_bug.cgi?id=105363
fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
fdo#106023 https://bugs.freedesktop.org/show_bug.cgi?id=106023
fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
fdo#106641 https://bugs.freedesktop.org/show_bug.cgi?id=106641
fdo#107161 https://bugs.freedesktop.org/show_bug.cgi?id=107161
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 (5 -> 5) ==
No changes in participating hosts
== Build changes ==
* IGT: IGT_4545 -> IGTPW_1553
* Linux: CI_DRM_4463 -> CI_DRM_4466
CI_DRM_4463: 756ded1fe53d1449d239c6b34f97e03e478a8a38 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_4466: 40ea4d696481930682c782e8dd7bd0cdbdfad574 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_1553: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1553/
IGT_4545: c3035d8cb11459f186f712d9c7ebb6734fc99831 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1553/shards.html
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [igt-dev] ✗ Fi.CI.IGT: failure for lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3)
2018-07-11 4:16 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2018-07-11 7:27 ` Chris Wilson
0 siblings, 0 replies; 5+ messages in thread
From: Chris Wilson @ 2018-07-11 7:27 UTC (permalink / raw)
To: Antonio Argenziano, Patchwork, igt-dev
Quoting Patchwork (2018-07-11 05:16:36)
> == Series Details ==
>
> Series: lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3)
> URL : https://patchwork.freedesktop.org/series/46209/
> State : failure
>
> == Summary ==
>
> = CI Bug Log - changes from IGT_4545_full -> IGTPW_1553_full =
>
> == Summary - FAILURE ==
>
> Serious unknown changes coming with IGTPW_1553_full absolutely need to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in IGTPW_1553_full, please notify your bug team to allow them
> to document this new failure mode, which will reduce false positives in CI.
>
> External URL: https://patchwork.freedesktop.org/api/1.0/series/46209/revisions/3/mbox/
>
> == Possible new issues ==
>
> Here are the unknown changes that may have been introduced in IGTPW_1553_full:
>
> === IGT changes ===
>
> ==== Possible regressions ====
>
> igt@gem_exec_schedule@preemptive-hang-bsd1:
> shard-kbl: PASS -> FAIL +4
>
> igt@gem_exec_schedule@preemptive-hang-render:
> shard-apl: PASS -> FAIL +3
>
> igt@gem_exec_schedule@preemptive-hang-vebox:
> shard-glk: PASS -> FAIL +3
Do you remember what the difference was and why we didn't use the
spinner here? There's a patch for this buried inside preempt-timeout...
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch
2018-07-10 23:45 [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch Antonio Argenziano
2018-07-11 0:39 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3) Patchwork
2018-07-11 4:16 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2018-07-11 10:43 ` Chris Wilson
2 siblings, 0 replies; 5+ messages in thread
From: Chris Wilson @ 2018-07-11 10:43 UTC (permalink / raw)
To: Antonio Argenziano, igt-dev
Quoting Antonio Argenziano (2018-07-11 00:45:26)
> An hanging batch is nothing more than a spinning batch that never gets
> stopped, so re-use the routines implemented in dummyload.c.
>
> v2:
> - Let caller decide spin loop size
> - Now builds with meson.
>
> v3:
> - Only use loose loops for hangs (Chris)
>
> Signed-off-by: Antonio Argenziano <antonio.argenziano@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> ---
> lib/igt_gt.c | 57 ++++++++-------------------------------------------------
> lib/meson.build | 1 +
> 2 files changed, 9 insertions(+), 49 deletions(-)
>
> diff --git a/lib/igt_gt.c b/lib/igt_gt.c
> index 89b318ae..a363b409 100644
> --- a/lib/igt_gt.c
> +++ b/lib/igt_gt.c
> @@ -40,6 +40,7 @@
> #include "ioctl_wrappers.h"
> #include "intel_reg.h"
> #include "intel_chipset.h"
> +#include "igt_dummyload.h"
>
> /**
> * SECTION:igt_gt
> @@ -271,14 +272,10 @@ igt_hang_t igt_hang_ctx(int fd,
> unsigned flags,
> uint64_t *offset)
> {
> - struct drm_i915_gem_relocation_entry reloc;
> - struct drm_i915_gem_execbuffer2 execbuf;
> - struct drm_i915_gem_exec_object2 exec;
> + igt_spin_t *spinning_batch;
> + struct igt_spin_factory opts = {};
> struct drm_i915_gem_context_param param;
> - uint32_t b[16];
> unsigned ban;
> - unsigned len;
> - int gen;
>
> igt_require_hang_ring(fd, ring);
>
> @@ -302,52 +299,14 @@ igt_hang_t igt_hang_ctx(int fd,
> if ((flags & HANG_ALLOW_BAN) == 0)
> context_set_ban(fd, ctx, 0);
>
> - memset(&reloc, 0, sizeof(reloc));
> - memset(&exec, 0, sizeof(exec));
> - memset(&execbuf, 0, sizeof(execbuf));
> -
> - exec.handle = gem_create(fd, 4096);
> - exec.relocation_count = 1;
> - exec.relocs_ptr = to_user_pointer(&reloc);
> -
> - memset(b, 0xc5, sizeof(b));
> -
> - len = 0;
> - gen = intel_gen(intel_get_drm_devid(fd));
> - if (gen >= 8) {
> - b[len++] = MI_BATCH_BUFFER_START | 1 << 8 | 1;
> - b[len++] = 0;
> - b[len++] = 0;
> - } else if (gen >= 6) {
> - b[len++] = MI_BATCH_BUFFER_START | 1 << 8;
> - b[len++] = 0;
> - } else {
> - b[len++] = MI_BATCH_BUFFER_START | 2 << 6;
> - b[len] = 0;
> - if (gen < 4) {
> - b[len] |= 1;
> - reloc.delta = 1;
> - }
> - len++;
> - }
> - b[len++] = MI_BATCH_BUFFER_END;
> - b[len] = MI_NOOP;
> - gem_write(fd, exec.handle, 0, b, sizeof(b));
> -
> - reloc.offset = sizeof(uint32_t);
> - reloc.target_handle = exec.handle;
> - reloc.read_domains = I915_GEM_DOMAIN_COMMAND;
> -
> - execbuf.buffers_ptr = to_user_pointer(&exec);
> - execbuf.buffer_count = 1;
> - execbuf.flags = ring;
> - i915_execbuffer2_set_context_id(execbuf, ctx);
> - gem_execbuf(fd, &execbuf);
> + opts.ctx = ctx;
> + opts.engine = ring;
Pushed IGT_SPIN_NO_PREEMPTION which you want to use for your opts.flags here.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2018-07-11 10:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-10 23:45 [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch Antonio Argenziano
2018-07-11 0:39 ` [igt-dev] ✓ Fi.CI.BAT: success for lib/hang_ctx: Make use of dummyload library to create recursive batch (rev3) Patchwork
2018-07-11 4:16 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2018-07-11 7:27 ` Chris Wilson
2018-07-11 10:43 ` [igt-dev] [PATCH i-g-t v3] lib/hang_ctx: Make use of dummyload library to create recursive batch Chris Wilson
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.