i915/gem_engine_topology: Introduce and use gem_context_clone_with_engines
PATCH 1/1 i915/gem_engine_topology: Introduce and use gem_context_clone_with_engines
From: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the __for_each_physical_engine iterator.
To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of gem_context_create followed by gem_context_set_all_engines (which is also removed by the patch).
--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)
lib/i915/gem_context.c +59 -0
@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +* +* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915); +else +return gem_context_clone (i915, src,0 , +I915_CONTEXT_CLONE_ENGINES ); +} +uint32_t gem_queue_create (int i915) { return gem_context_clone(i915, 0,
@@ -379,6 +423,21 @@ uint32_t gem_queue_create(int i915) I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE); } +/** +* gem_queue_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* See gem_context_clone_with_engines. +*/ +uint32_t gem_queue_clone_with_engines (int i915,uint32_t src) +{ +return gem_context_clone (i915, src, +I915_CONTEXT_CLONE_ENGINES | +I915_CONTEXT_CLONE_VM , +I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE ); +} +bool gem_context_has_engine (int fd,uint32_t ctx,uint64_t engine) {struct drm_i915_gem_exec_object2 exec = {};
lib/i915/gem_context.h +4 -0
@@ -41,8 +41,10 @@ int __gem_context_clone(int i915,uint32_t gem_context_clone (int i915,uint32_t src,unsigned int share,unsigned int flags); +uint32_t gem_context_clone_with_engines (int i915,uint32_t src);uint32_t gem_queue_create (int i915); +uint32_t gem_queue_clone_with_engines (int i915,uint32_t src);bool gem_contexts_has_shared_gtt (int i915);bool gem_has_queues (int i915);
@@ -52,6 +54,8 @@ void gem_require_contexts(int fd);void gem_context_require_bannable (int fd);void gem_context_require_param (int fd,uint64_t param); +bool gem_has_context_clone (int i915); +void gem_context_get_param (int fd,struct drm_i915_gem_context_param *p);void gem_context_set_param (int fd,struct drm_i915_gem_context_param *p);int __gem_context_set_param (int fd,struct drm_i915_gem_context_param *p);
lib/i915/gem_engine_topology.c +0 -11
@@ -274,17 +274,6 @@ int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id,return 0 ; } -void gem_context_set_all_engines (int fd,uint32_t ctx) -{ -DEFINE_CONTEXT_ENGINES_PARAM (engines, param, ctx,GEM_MAX_ENGINES ); -struct intel_engine_data engine_data = { }; - -if (!gem_topology_get_param (fd, ¶m) && !param.size) { -query_engine_list (fd, &engine_data); -ctx_map_engines (fd, &engine_data, ¶m); - } -} -bool gem_has_engine_topology (int fd) {struct drm_i915_gem_context_param param = {
lib/i915/gem_engine_topology.h +0 -2
@@ -51,8 +51,6 @@ void intel_next_engine(struct intel_engine_data *ed);int gem_context_lookup_engine (int fd,uint64_t engine,uint32_t ctx_id,struct intel_execution_engine2 *e); -void gem_context_set_all_engines (int fd,uint32_t ctx); -bool gem_context_has_engine_map (int fd,uint32_t ctx); bool gem_engine_is_equal(const struct intel_execution_engine2 *e1,
tests/i915/gem_ctx_clone.c +1 -14
@@ -40,19 +40,6 @@ static int ctx_create_ioctl(int i915, struct drm_i915_gem_context_create_ext *arreturn err; } -static bool has_ctx_clone (int i915) -{ -struct drm_i915_gem_context_create_ext_clone ext = { - { .name =I915_CONTEXT_CREATE_EXT_CLONE }, - .clone_id =-1 , - }; -struct drm_i915_gem_context_create_ext create = { - .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , - .extensions =to_user_pointer (&ext), - }; -return ctx_create_ioctl (i915, &create) == -ENOENT ; -} -static void invalid_clone (int i915) {struct drm_i915_gem_context_create_ext_clone ext = {
@@ -436,7 +423,7 @@ igt_mainigt_require_gem (i915);gem_require_contexts (i915); -igt_require (has_ctx_clone (i915)); +igt_require (gem_has_context_clone (i915));igt_fork_hang_detector (i915); }
tests/i915/gem_ctx_switch.c +6 -13
@@ -63,10 +63,8 @@ static int measure_qlen(int fd,uint32_t ctx[64 ];int min =INT_MAX , max =0 ; -for (int i =0 ; i <ARRAY_SIZE (ctx); i++) { - ctx[i] =gem_context_create (fd); -gem_context_set_all_engines (fd, ctx[i]); - } +for (int i =0 ; i <ARRAY_SIZE (ctx); i++) + ctx[i] =gem_context_clone_with_engines (fd,0 );for (unsigned int n =0 ; n < engines->nengines; n++) {uint64_t saved = execbuf->flags;
@@ -130,12 +128,9 @@ static void single(int fd, uint32_t handle,for (n =0 ; n <64 ; n++) {if (flags &QUEUE ) - contexts[n] =gem_queue_create (fd); + contexts[n] =gem_queue_clone_with_engines (fd,0 );else - contexts[n] =gem_context_create (fd); - -if (gem_context_has_engine_map (fd,0 )) -gem_context_set_all_engines (fd, contexts[n]); + contexts[n] =gem_context_clone_with_engines (fd,0 ); }memset (&obj,0 ,sizeof (obj));
@@ -237,11 +232,9 @@ static void all(int fd, uint32_t handle, unsigned flags, int timeout)for (n =0 ; n <ARRAY_SIZE (contexts); n++) {if (flags &QUEUE ) - contexts[n] =gem_queue_create (fd); + contexts[n] =gem_queue_clone_with_engines (fd,0 );else - contexts[n] =gem_context_create (fd); - -gem_context_set_all_engines (fd, contexts[n]); + contexts[n] =gem_context_clone_with_engines (fd,0 ); }memset (obj,0 ,sizeof (obj));
tests/i915/gem_exec_parallel.c +1 -2
@@ -127,8 +127,7 @@ static void *thread(void *data)if (t->gen <6 ) execbuf.flags |=I915_EXEC_SECURE ;if (t->flags &CONTEXTS ) { - execbuf.rsvd1 =gem_context_create (fd); -gem_context_set_all_engines (fd, execbuf.rsvd1); + execbuf.rsvd1 =gem_context_clone_with_engines (fd,0 ); }for (i =0 ; i <16 ; i++) {
tests/i915/gem_spin_batch.c +4 -7
@@ -73,9 +73,10 @@ static void spin(int fd, const struct intel_execution_engine2 *e2,static void spin_resubmit (int fd,const struct intel_execution_engine2 *e2,unsigned int flags) { -const uint32_t ctx0 =gem_context_create (fd); -const uint32_t ctx1 = (flags &RESUBMIT_NEW_CTX ) ? -gem_context_create (fd) : ctx0; +const uint32_t ctx0 =gem_context_clone_with_engines (fd,0 ); +const uint32_t ctx1 = + (flags &RESUBMIT_NEW_CTX ) ? +gem_context_clone_with_engines (fd,0 ) : ctx0; igt_spin_t *spin = __igt_spin_new(fd, .ctx = ctx0, .engine = e2->flags);const struct intel_execution_engine2 *other;
@@ -89,10 +90,6 @@ static void spin_resubmit(int fd, const struct intel_execution_engine2 *e2, !(flags & RESUBMIT_ALL_ENGINES));if (flags &RESUBMIT_ALL_ENGINES ) { -gem_context_set_all_engines (fd, ctx0); -if (ctx0 != ctx1) -gem_context_set_all_engines (fd, ctx1); -for_each_context_engine (fd, ctx1, other) {if (gem_engine_is_equal (other, e2))continue ;
tests/perf_pmu.c +1 -2
@@ -361,8 +361,7 @@ busy_double_start(int gem_fd, const struct intel_execution_engine2 *e)uint32_t ctx;int fd; - ctx =gem_context_create (gem_fd); -gem_context_set_all_engines (gem_fd, ctx); + ctx =gem_context_clone_with_engines (gem_fd,0 );/* * Defeat the busy stats delayed disable, we need to guarantee we are
Signature · 6 lines
2.20.1 _______________________________________________ igt-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoting Tvrtko Ursulin (2020-01-23 12:43:06)
Quoted 63 lines
From: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the
__for_each_physical_engineiterator.To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of
gem_context_createfollowed bygem_context_set_all_engines(which is also removed by the patch).Signed-off-by Tvrtko Ursulin <[email protected]>Suggested-by Chris Wilson <[email protected]>--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)lib/i915/gem_context.c +29
-0@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +*
lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 413
Quoted 10 lines
lib/i915/gem_context.c +10
-0+* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915);
Yes, that should cover us for older kernels and keep the for_each loops happy.
lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 416
Quoted 3 lines
lib/i915/gem_context.c +3
-0+else +return gem_context_clone (i915, src,0 , +I915_CONTEXT_CLONE_ENGINES );
0 and CLONE are the wrong way around.
I would have done
int __gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out)
{
int err;
err = __gem_context_clone(i915, src, CLONE_ENGINES, 0, out);
if (err && !gem_has_context_clone(i915))
err = __gem_context_create(i915, out);
return err;
}uint32_t gem_context_clone_with_engines(int i915, uint32_t src)
{
uint32_t ctx;
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0);
return ctx;
}Quoted 8 lines
lib/i915/gem_engine_topology.c +0
-0@@ -274,17 +274,6 @@ int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id,return 0 ; }
lib/i915/gem_engine_topology.c int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, · line 286
Quoted 10 lines
lib/i915/gem_engine_topology.c +0
-10-void gem_context_set_all_engines (int fd,uint32_t ctx) -{ -DEFINE_CONTEXT_ENGINES_PARAM (engines, param, ctx,GEM_MAX_ENGINES ); -struct intel_engine_data engine_data = { }; - -if (!gem_topology_get_param (fd, ¶m) && !param.size) { -query_engine_list (fd, &engine_data); -ctx_map_engines (fd, &engine_data, ¶m); - } -}
Me likes.
-Chris
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoted 78 lines · Chris Wilson
Quoting Tvrtko Ursulin (2020-01-23 12:43:06)
Quoted 63 lines
From: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the
__for_each_physical_engineiterator.To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of
gem_context_createfollowed bygem_context_set_all_engines(which is also removed by the patch).Signed-off-by Tvrtko Ursulin <[email protected]>Suggested-by Chris Wilson <[email protected]>--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)lib/i915/gem_context.c +29
-0@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +* lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 413
Quoted 10 lines
lib/i915/gem_context.c +10
-0+* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915);Yes, that should cover us for older kernels and keep the
for_eachloops happy.
Quoted 5 lines
lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 416
Quoted 3 lines
lib/i915/gem_context.c +3
-0+else +return gem_context_clone (i915, src,0 , +I915_CONTEXT_CLONE_ENGINES );0 and CLONE are the wrong way around.
Oopsie.
Quoted 14 lines
I would have done
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out){ int err; err = __gem_context_clone(i915, src, CLONE_ENGINES, 0, out); if (err && !gem_has_context_clone(i915)) err = __gem_context_create(i915, out); return err; }
Quoted 8 lines
uint32_tgem_context_clone_with_engines(int i915, uint32_t src){ uint32_t ctx; igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); return ctx; }
I think I prefer my version as it is a bit more explicit.
Regards,
Tvrtko
Quoted 9 lines
Quoted 9 lines
lib/i915/gem_engine_topology.c +0
-0@@ -274,17 +274,6 @@ int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id,return 0 ; }
Quoted 14 lines
lib/i915/gem_engine_topology.c int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id, · line 286
Quoted 10 lines
lib/i915/gem_engine_topology.c +0
-10-void gem_context_set_all_engines (int fd,uint32_t ctx) -{ -DEFINE_CONTEXT_ENGINES_PARAM (engines, param, ctx,GEM_MAX_ENGINES ); -struct intel_engine_data engine_data = { }; - -if (!gem_topology_get_param (fd, ¶m) && !param.size) { -query_engine_list (fd, &engine_data); -ctx_map_engines (fd, &engine_data, ¶m); - } -}Me likes.
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Chris Wilson
Reviewed-byQuoting Tvrtko Ursulin (2020-01-23 13:08:26)
Quoted 106 lines · Chris Wilson
Quoted 78 lines
Quoting Tvrtko Ursulin (2020-01-23 12:43:06)
Quoted 63 lines
From: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the
__for_each_physical_engineiterator.To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of
gem_context_createfollowed bygem_context_set_all_engines(which is also removed by the patch).Signed-off-by Tvrtko Ursulin <[email protected]>Suggested-by Chris Wilson <[email protected]>--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)lib/i915/gem_context.c +29
-0@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +* lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 413
Quoted 10 lines
lib/i915/gem_context.c +10
-0+* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915);Yes, that should cover us for older kernels and keep the
for_eachloops happy.Quoted 5 lines
lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 416
Quoted 3 lines
lib/i915/gem_context.c +3
-0+else +return gem_context_clone (i915, src,0 , +I915_CONTEXT_CLONE_ENGINES );0 and CLONE are the wrong way around.
Oopsie.
Quoted 18 lines
I would have done
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out){ int err; err = __gem_context_clone(i915, src, CLONE_ENGINES, 0, out); if (err && !gem_has_context_clone(i915)) err = __gem_context_create(i915, out); return err; }
uint32_tgem_context_clone_with_engines(int i915, uint32_t src){ uint32_t ctx;
Quoted 6 lines
Quoted 4 lines
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); return ctx; }I think I prefer my version as it is a bit more explicit.
I was hoping to do something more like
err = __clone() if (err == ENOSYS) err = __create()
Either way, I would suggest doing
int __gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out); uint32_t gem_context_clone_with_engines(int i915, uint32_t src);
as I prefer that style of error message.
Nothing else to complain about,
-Chris
_______________________________________________
Intel-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Quoted 119 lines · Chris Wilson
Quoting Tvrtko Ursulin (2020-01-23 13:08:26)
Quoted 106 lines · Chris Wilson
Quoted 78 lines
Quoting Tvrtko Ursulin (2020-01-23 12:43:06)
Quoted 63 lines
From: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the
__for_each_physical_engineiterator.To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of
gem_context_createfollowed bygem_context_set_all_engines(which is also removed by the patch).Signed-off-by Tvrtko Ursulin <[email protected]>Suggested-by Chris Wilson <[email protected]>--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)lib/i915/gem_context.c +29
-0@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +* lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 413
Quoted 10 lines
lib/i915/gem_context.c +10
-0+* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915);Yes, that should cover us for older kernels and keep the
for_eachloops happy.Quoted 5 lines
lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 416
Quoted 3 lines
lib/i915/gem_context.c +3
-0+else +return gem_context_clone (i915, src,0 , +I915_CONTEXT_CLONE_ENGINES );0 and CLONE are the wrong way around.
Oopsie.
Quoted 18 lines
I would have done
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out){ int err; err = __gem_context_clone(i915, src, CLONE_ENGINES, 0, out); if (err && !gem_has_context_clone(i915)) err = __gem_context_create(i915, out); return err; }
uint32_tgem_context_clone_with_engines(int i915, uint32_t src){ uint32_t ctx;Quoted 6 lines
Quoted 4 lines
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); return ctx; }I think I prefer my version as it is a bit more explicit.
I was hoping to do something more like
err = __clone() if (err == ENOSYS) err = __create()
Quoted 6 lines
Either way, I would suggest doing
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out);uint32_tgem_context_clone_with_engines(int i915, uint32_t src);as I prefer that style of error message.
Error message? What do you mean?
Quoted 2 lines
Nothing else to complain about,
Reviewed-by Chris Wilson <[email protected]>
So this is conditional on rewriting it as above or not?
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoting Tvrtko Ursulin (2020-01-23 14:01:41)
Quoted 121 lines · Chris Wilson
Quoted 119 lines
Quoting Tvrtko Ursulin (2020-01-23 13:08:26)
Quoted 106 lines · Chris Wilson
Quoted 78 lines
Quoting Tvrtko Ursulin (2020-01-23 12:43:06)
Quoted 63 lines
From: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the
__for_each_physical_engineiterator.To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of
gem_context_createfollowed bygem_context_set_all_engines(which is also removed by the patch).Signed-off-by Tvrtko Ursulin <[email protected]>Suggested-by Chris Wilson <[email protected]>--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)lib/i915/gem_context.c +29
-0@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +* lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 413
Quoted 10 lines
lib/i915/gem_context.c +10
-0+* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915);Yes, that should cover us for older kernels and keep the
for_eachloops happy.Quoted 5 lines
lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 416
Quoted 3 lines
lib/i915/gem_context.c +3
-0+else +return gem_context_clone (i915, src,0 , +I915_CONTEXT_CLONE_ENGINES );0 and CLONE are the wrong way around.
Oopsie.
Quoted 18 lines
I would have done
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out){ int err; err = __gem_context_clone(i915, src, CLONE_ENGINES, 0, out); if (err && !gem_has_context_clone(i915)) err = __gem_context_create(i915, out); return err; }
uint32_tgem_context_clone_with_engines(int i915, uint32_t src){ uint32_t ctx;Quoted 6 lines
Quoted 4 lines
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); return ctx; }I think I prefer my version as it is a bit more explicit.
I was hoping to do something more like
err = __clone() if (err == ENOSYS) err = __create()
Quoted 8 lines
Quoted 6 lines
Either way, I would suggest doing
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out);uint32_tgem_context_clone_with_engines(int i915, uint32_t src);as I prefer that style of error message.
Error message? What do you mean?
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); is the nicest assert message without using igt_assert_f and writing an information message by hand.
Quoted 4 lines
Quoted 2 lines
Nothing else to complain about,
Reviewed-by Chris Wilson <[email protected]>So this is conditional on rewriting it as above or not?
Mere recommendations. Knowing full well that if at some point we need __gem_context_clone_with_engines() the above will happen anyway :) -Chris
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoted 127 lines · Chris Wilson
Quoting Tvrtko Ursulin (2020-01-23 14:01:41)
Quoted 126 lines · Chris Wilson
Quoted 124 lines
Quoting Tvrtko Ursulin (2020-01-23 13:08:26)
Quoted 106 lines · Chris Wilson
Quoted 78 lines
Quoting Tvrtko Ursulin (2020-01-23 12:43:06)
Quoted 63 lines
From: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the
__for_each_physical_engineiterator.To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of
gem_context_createfollowed bygem_context_set_all_engines(which is also removed by the patch).Signed-off-by Tvrtko Ursulin <[email protected]>Suggested-by Chris Wilson <[email protected]>--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)lib/i915/gem_context.c +29
-0@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +* lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 413
Quoted 10 lines
lib/i915/gem_context.c +10
-0+* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915);Yes, that should cover us for older kernels and keep the
for_eachloops happy.Quoted 5 lines
lib/i915/gem_context.c uint32_t gem_context_clone(int i915, · line 416
Quoted 3 lines
lib/i915/gem_context.c +3
-0+else +return gem_context_clone (i915, src,0 , +I915_CONTEXT_CLONE_ENGINES );0 and CLONE are the wrong way around.
Oopsie.
Quoted 18 lines
I would have done
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out){ int err; err = __gem_context_clone(i915, src, CLONE_ENGINES, 0, out); if (err && !gem_has_context_clone(i915)) err = __gem_context_create(i915, out); return err; }
uint32_tgem_context_clone_with_engines(int i915, uint32_t src){ uint32_t ctx;Quoted 6 lines
Quoted 4 lines
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); return ctx; }I think I prefer my version as it is a bit more explicit.
I was hoping to do something more like
err = __clone() if (err == ENOSYS) err = __create()Either way, I would suggest doing
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out);uint32_tgem_context_clone_with_engines(int i915, uint32_t src);
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
as I prefer that style of error message.
Error message? What do you mean?
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); is the nicest assert message without usingigt_assert_fand writing an information message by hand.
But you will get that, either helper gem_context_clone_with_engines calls uses that style.
Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
Nothing else to complain about,
Reviewed-by Chris Wilson <[email protected]>So this is conditional on rewriting it as above or not?
Mere recommendations. Knowing full well that if at some point we need
__gem_context_clone_with_engines()the above will happen anyway :)
Ack, leaving it for later. Now need to wait for the results here and then coordinate with at least three people who will need to adjust their patches.
Regards,
Tvrtko
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Quoting Tvrtko Ursulin (2020-01-23 14:48:24)
Quoted 12 lines · Chris Wilson
Quoted 10 lines
Quoting Tvrtko Ursulin (2020-01-23 14:01:41)
Quoted 9 lines · Chris Wilson
Quoted 6 lines
Either way, I would suggest doing
int
__gem_context_clone_with_engines(int i915, uint32_t src, uint32_t *out);uint32_tgem_context_clone_with_engines(int i915, uint32_t src);as I prefer that style of error message.
Quoted 8 lines
Quoted 5 lines
Quoted 1 line
Error message? What do you mean?
igt_assert_eq(__gem_context_clone_with_engine(i915, src, &ctx), 0); is the nicest assert message without usingigt_assert_fand writing an information message by hand.But you will get that, either helper
gem_context_clone_with_enginescalls uses that style.
Yeah, depends on whether you want to see the error for the underlying ioctl and then have to look at the stack to work out we are in clone, or if the clone itself is the interesting detail that wants to standout in the assert message :)
-Chris
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
PATCH v2 1/1 i915/gem_engine_topology: Introduce and use gem_context_clone_with_engines
In reply to Tvrtko UrsulinFrom: Tvrtko Ursulin <[email protected]>
In test cases which create new contexts and submit work against them using the passed in engine index we are sometimes unsure whether this engine index was potentially created based on a default context with engine map configured (such as when under the __for_each_physical_engine iterator.
To simplify test code we add gem_context/queue_clone_with_engines which is to be used in such scenario instead of the current pattern of gem_context_create followed by gem_context_set_all_engines (which is also removed by the patch).
v2:
* Fix swapped arguments to gem_context_clone. (Chris)
--- lib/i915/gem_context.c | 59 ++++++++++++++++++++++++++++++++++ lib/i915/gem_context.h | 4 +++ lib/i915/gem_engine_topology.c | 11 ------- lib/i915/gem_engine_topology.h | 2 -- tests/i915/gem_ctx_clone.c | 15 +-------- tests/i915/gem_ctx_switch.c | 19 ++++------- tests/i915/gem_exec_parallel.c | 3 +- tests/i915/gem_spin_batch.c | 11 +++---- tests/perf_pmu.c | 3 +- 9 files changed, 76 insertions(+), 51 deletions(-)
lib/i915/gem_context.c +59 -0
@@ -372,6 +372,50 @@ uint32_t gem_context_clone(int i915,return ctx; } +bool gem_has_context_clone (int i915) +{ +struct drm_i915_gem_context_create_ext_clone ext = { + { .name =I915_CONTEXT_CREATE_EXT_CLONE }, + .clone_id =-1 , + }; +struct drm_i915_gem_context_create_ext create = { + .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , + .extensions =to_user_pointer (&ext), + }; +int err; + + err =0 ; +if (igt_ioctl (i915,DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT , &create)) { + err = -errno; +igt_assume (err); + } + errno =0 ; + +return err == -ENOENT ; +} + +/** +* gem_context_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* Special purpose wrapper to create a new context by cloning engines from @src. +* +* In can be called regardless of whether the kernel supports context cloning. +* +* Intended purpose is to use for creating contexts against which work will be +* submitted and the engine index came from external source, derived from a +* default context potentially configured with an engine map. +*/ +uint32_t gem_context_clone_with_engines (int i915,uint32_t src) +{ +if (!gem_has_context_clone (i915)) +return gem_context_create (i915); +else +return gem_context_clone (i915, src,I915_CONTEXT_CLONE_ENGINES , +0 ); +} +uint32_t gem_queue_create (int i915) { return gem_context_clone(i915, 0,
@@ -379,6 +423,21 @@ uint32_t gem_queue_create(int i915) I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE); } +/** +* gem_queue_clone_with_engines: +* @i915: open i915 drm file descriptor +* @src: i915 context id +* +* See gem_context_clone_with_engines. +*/ +uint32_t gem_queue_clone_with_engines (int i915,uint32_t src) +{ +return gem_context_clone (i915, src, +I915_CONTEXT_CLONE_ENGINES | +I915_CONTEXT_CLONE_VM , +I915_CONTEXT_CREATE_FLAGS_SINGLE_TIMELINE ); +} +bool gem_context_has_engine (int fd,uint32_t ctx,uint64_t engine) {struct drm_i915_gem_exec_object2 exec = {};
lib/i915/gem_context.h +4 -0
@@ -41,8 +41,10 @@ int __gem_context_clone(int i915,uint32_t gem_context_clone (int i915,uint32_t src,unsigned int share,unsigned int flags); +uint32_t gem_context_clone_with_engines (int i915,uint32_t src);uint32_t gem_queue_create (int i915); +uint32_t gem_queue_clone_with_engines (int i915,uint32_t src);bool gem_contexts_has_shared_gtt (int i915);bool gem_has_queues (int i915);
@@ -52,6 +54,8 @@ void gem_require_contexts(int fd);void gem_context_require_bannable (int fd);void gem_context_require_param (int fd,uint64_t param); +bool gem_has_context_clone (int i915); +void gem_context_get_param (int fd,struct drm_i915_gem_context_param *p);void gem_context_set_param (int fd,struct drm_i915_gem_context_param *p);int __gem_context_set_param (int fd,struct drm_i915_gem_context_param *p);
lib/i915/gem_engine_topology.c +0 -11
@@ -274,17 +274,6 @@ int gem_context_lookup_engine(int fd, uint64_t engine, uint32_t ctx_id,return 0 ; } -void gem_context_set_all_engines (int fd,uint32_t ctx) -{ -DEFINE_CONTEXT_ENGINES_PARAM (engines, param, ctx,GEM_MAX_ENGINES ); -struct intel_engine_data engine_data = { }; - -if (!gem_topology_get_param (fd, ¶m) && !param.size) { -query_engine_list (fd, &engine_data); -ctx_map_engines (fd, &engine_data, ¶m); - } -} -bool gem_has_engine_topology (int fd) {struct drm_i915_gem_context_param param = {
lib/i915/gem_engine_topology.h +0 -2
@@ -51,8 +51,6 @@ void intel_next_engine(struct intel_engine_data *ed);int gem_context_lookup_engine (int fd,uint64_t engine,uint32_t ctx_id,struct intel_execution_engine2 *e); -void gem_context_set_all_engines (int fd,uint32_t ctx); -bool gem_context_has_engine_map (int fd,uint32_t ctx); bool gem_engine_is_equal(const struct intel_execution_engine2 *e1,
tests/i915/gem_ctx_clone.c +1 -14
@@ -40,19 +40,6 @@ static int ctx_create_ioctl(int i915, struct drm_i915_gem_context_create_ext *arreturn err; } -static bool has_ctx_clone (int i915) -{ -struct drm_i915_gem_context_create_ext_clone ext = { - { .name =I915_CONTEXT_CREATE_EXT_CLONE }, - .clone_id =-1 , - }; -struct drm_i915_gem_context_create_ext create = { - .flags =I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS , - .extensions =to_user_pointer (&ext), - }; -return ctx_create_ioctl (i915, &create) == -ENOENT ; -} -static void invalid_clone (int i915) {struct drm_i915_gem_context_create_ext_clone ext = {
@@ -436,7 +423,7 @@ igt_mainigt_require_gem (i915);gem_require_contexts (i915); -igt_require (has_ctx_clone (i915)); +igt_require (gem_has_context_clone (i915));igt_fork_hang_detector (i915); }
tests/i915/gem_ctx_switch.c +6 -13
@@ -63,10 +63,8 @@ static int measure_qlen(int fd,uint32_t ctx[64 ];int min =INT_MAX , max =0 ; -for (int i =0 ; i <ARRAY_SIZE (ctx); i++) { - ctx[i] =gem_context_create (fd); -gem_context_set_all_engines (fd, ctx[i]); - } +for (int i =0 ; i <ARRAY_SIZE (ctx); i++) + ctx[i] =gem_context_clone_with_engines (fd,0 );for (unsigned int n =0 ; n < engines->nengines; n++) {uint64_t saved = execbuf->flags;
@@ -130,12 +128,9 @@ static void single(int fd, uint32_t handle,for (n =0 ; n <64 ; n++) {if (flags &QUEUE ) - contexts[n] =gem_queue_create (fd); + contexts[n] =gem_queue_clone_with_engines (fd,0 );else - contexts[n] =gem_context_create (fd); - -if (gem_context_has_engine_map (fd,0 )) -gem_context_set_all_engines (fd, contexts[n]); + contexts[n] =gem_context_clone_with_engines (fd,0 ); }memset (&obj,0 ,sizeof (obj));
@@ -237,11 +232,9 @@ static void all(int fd, uint32_t handle, unsigned flags, int timeout)for (n =0 ; n <ARRAY_SIZE (contexts); n++) {if (flags &QUEUE ) - contexts[n] =gem_queue_create (fd); + contexts[n] =gem_queue_clone_with_engines (fd,0 );else - contexts[n] =gem_context_create (fd); - -gem_context_set_all_engines (fd, contexts[n]); + contexts[n] =gem_context_clone_with_engines (fd,0 ); }memset (obj,0 ,sizeof (obj));
tests/i915/gem_exec_parallel.c +1 -2
@@ -127,8 +127,7 @@ static void *thread(void *data)if (t->gen <6 ) execbuf.flags |=I915_EXEC_SECURE ;if (t->flags &CONTEXTS ) { - execbuf.rsvd1 =gem_context_create (fd); -gem_context_set_all_engines (fd, execbuf.rsvd1); + execbuf.rsvd1 =gem_context_clone_with_engines (fd,0 ); }for (i =0 ; i <16 ; i++) {
tests/i915/gem_spin_batch.c +4 -7
@@ -73,9 +73,10 @@ static void spin(int fd, const struct intel_execution_engine2 *e2,static void spin_resubmit (int fd,const struct intel_execution_engine2 *e2,unsigned int flags) { -const uint32_t ctx0 =gem_context_create (fd); -const uint32_t ctx1 = (flags &RESUBMIT_NEW_CTX ) ? -gem_context_create (fd) : ctx0; +const uint32_t ctx0 =gem_context_clone_with_engines (fd,0 ); +const uint32_t ctx1 = + (flags &RESUBMIT_NEW_CTX ) ? +gem_context_clone_with_engines (fd,0 ) : ctx0; igt_spin_t *spin = __igt_spin_new(fd, .ctx = ctx0, .engine = e2->flags);const struct intel_execution_engine2 *other;
@@ -89,10 +90,6 @@ static void spin_resubmit(int fd, const struct intel_execution_engine2 *e2, !(flags & RESUBMIT_ALL_ENGINES));if (flags &RESUBMIT_ALL_ENGINES ) { -gem_context_set_all_engines (fd, ctx0); -if (ctx0 != ctx1) -gem_context_set_all_engines (fd, ctx1); -for_each_context_engine (fd, ctx1, other) {if (gem_engine_is_equal (other, e2))continue ;
tests/perf_pmu.c +1 -2
@@ -361,8 +361,7 @@ busy_double_start(int gem_fd, const struct intel_execution_engine2 *e)uint32_t ctx;int fd; - ctx =gem_context_create (gem_fd); -gem_context_set_all_engines (gem_fd, ctx); + ctx =gem_context_clone_with_engines (gem_fd,0 );/* * Defeat the busy stats delayed disable, we need to guarantee we are
Signature · 6 lines
2.20.1 _______________________________________________ Intel-gfx mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/intel-gfx
Patchwork
CI[igt-dev] ✓ Fi.CI.BAT: success for i915/gem_engine_topology: Introduce and use gem_context_clone_with_engines (rev2)
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: i915/gem_engine_topology: Introduce and use gem_context_clone_with_engines (rev2)
URL : https://patchwork.freedesktop.org/series/72464/
State : success
== Summary ==
CI Bug Log - changes from IGT_5382 -> IGTPW_3979
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/index.html
Known issues
------------
Here are the changes found in IGTPW_3979 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_parallel@fds:
- fi-byt-n2820: [PASS][1] -> [INCOMPLETE][2] ([i915#45])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-byt-n2820/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-byt-n2820/igt@[email protected]
* igt@prime_self_import@basic-with_fd_dup:
- fi-tgl-y: [PASS][3] -> [DMESG-WARN][4] ([CI#94] / [i915#402])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-tgl-y/igt@prime_self_import@basic-with_fd_dup.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-tgl-y/igt@prime_self_import@basic-with_fd_dup.html
#### Possible fixes ####
* igt@gem_close_race@basic-threads:
- fi-byt-j1900: [INCOMPLETE][5] ([i915#45]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-byt-j1900/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-byt-j1900/igt@[email protected]
* igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y: [FAIL][7] ([CI#94]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-tgl-y/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-tgl-y/igt@[email protected]
* igt@i915_selftest@live_blt:
- fi-hsw-4770r: [DMESG-FAIL][9] ([i915#553] / [i915#725]) -> [PASS][10]
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-hsw-4770r/igt@i915_selftest@live_blt.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-hsw-4770r/igt@i915_selftest@live_blt.html
- fi-ivb-3770: [DMESG-FAIL][11] ([i915#725]) -> [PASS][12]
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-ivb-3770/igt@i915_selftest@live_blt.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-ivb-3770/igt@i915_selftest@live_blt.html
- fi-hsw-4770: [DMESG-FAIL][13] ([i915#725]) -> [PASS][14]
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-hsw-4770/igt@i915_selftest@live_blt.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-hsw-4770/igt@i915_selftest@live_blt.html
* igt@i915_selftest@live_gem_contexts:
- fi-hsw-peppy: [DMESG-FAIL][15] ([i915#722]) -> [PASS][16]
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-hsw-peppy/igt@i915_selftest@live_gem_contexts.html
* igt@kms_frontbuffer_tracking@basic:
- fi-hsw-peppy: [DMESG-WARN][17] ([i915#44]) -> [PASS][18]
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-hsw-peppy/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-hsw-peppy/igt@[email protected]
#### Warnings ####
* igt@gem_exec_parallel@contexts:
- fi-byt-n2820: [FAIL][19] ([i915#694]) -> [TIMEOUT][20] ([fdo#112271])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-byt-n2820/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-byt-n2820/igt@[email protected]
* igt@i915_module_load@reload-with-fault-injection:
- fi-skl-lmem: [INCOMPLETE][21] ([i915#671] / [i915#971]) -> [DMESG-WARN][22] ([i915#889])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/fi-skl-lmem/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/fi-skl-lmem/igt@[email protected]
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#112271]: https://bugs.freedesktop.org/show_bug.cgi?id=112271
[i915#1017]: https://gitlab.freedesktop.org/drm/intel/issues/1017
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402
[i915#44]: https://gitlab.freedesktop.org/drm/intel/issues/44
[i915#45]: https://gitlab.freedesktop.org/drm/intel/issues/45
[i915#553]: https://gitlab.freedesktop.org/drm/intel/issues/553
[i915#671]: https://gitlab.freedesktop.org/drm/intel/issues/671
[i915#694]: https://gitlab.freedesktop.org/drm/intel/issues/694
[i915#722]: https://gitlab.freedesktop.org/drm/intel/issues/722
[i915#725]: https://gitlab.freedesktop.org/drm/intel/issues/725
[i915#889]: https://gitlab.freedesktop.org/drm/intel/issues/889
[i915#971]: https://gitlab.freedesktop.org/drm/intel/issues/971
Participating hosts (53 -> 45)
------------------------------
Missing (8): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-kbl-7560u fi-byt-clapper fi-bdw-samus
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5382 -> IGTPW_3979
CI-20190529: 20190529
CI_DRM_7802: cd932df72f11bdff93423a8d4a9e0e9ccb0985d7 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3979: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/index.html
IGT_5382: 8dbe5ce61baa2d563d4dd7c56a018bb1e1077467 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
Patchwork
CI[igt-dev] ✓ Fi.CI.IGT: success for i915/gem_engine_topology: Introduce and use gem_context_clone_with_engines (rev2)
In reply to Tvrtko Ursulin== Series Details ==
== Series Details ==
Series: i915/gem_engine_topology: Introduce and use gem_context_clone_with_engines (rev2)
URL : https://patchwork.freedesktop.org/series/72464/
State : success
== Summary ==
CI Bug Log - changes from IGT_5382_full -> IGTPW_3979_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/index.html
Known issues
------------
Here are the changes found in IGTPW_3979_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_ctx_isolation@bcs0-s3:
- shard-kbl: [PASS][1] -> [DMESG-WARN][2] ([i915#180]) +2 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-kbl6/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-kbl3/igt@[email protected]
* igt@gem_ctx_isolation@vcs1-none:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#109276] / [fdo#112080]) +4 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb4/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb8/igt@[email protected]
* igt@gem_ctx_persistence@vcs0-mixed-process:
- shard-iclb: [PASS][5] -> [FAIL][6] ([i915#679])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb6/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb6/igt@[email protected]
* igt@gem_ctx_shared@q-smoketest-all:
- shard-kbl: [PASS][7] -> [INCOMPLETE][8] ([fdo#103665])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-kbl6/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-kbl1/igt@[email protected]
* igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#110854])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb4/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb3/igt@[email protected]
* igt@gem_exec_schedule@pi-common-bsd1:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#109276]) +14 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb4/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb6/igt@[email protected]
* igt@gem_exec_schedule@pi-distinct-iova-bsd:
- shard-iclb: [PASS][13] -> [SKIP][14] ([i915#677])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb5/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb2/igt@[email protected]
* igt@gem_exec_schedule@preempt-other-chain-bsd:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#112146]) +6 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb3/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb1/igt@[email protected]
* igt@gem_persistent_relocs@forked-faulting-reloc-thrash-inactive:
- shard-hsw: [PASS][17] -> [INCOMPLETE][18] ([i915#61])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-hsw8/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-hsw5/igt@[email protected]
* igt@gem_persistent_relocs@forked-interruptible-thrashing:
- shard-iclb: [PASS][19] -> [INCOMPLETE][20] ([i915#140])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb3/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb4/igt@[email protected]
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-apl: [PASS][21] -> [FAIL][22] ([i915#644])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-apl1/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-apl7/igt@[email protected]
* igt@gem_userptr_blits@sync-unmap:
- shard-snb: [PASS][23] -> [DMESG-WARN][24] ([fdo#111870] / [i915#478]) +2 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-snb6/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-snb1/igt@[email protected]
* igt@i915_pm_rpm@system-suspend-execbuf:
- shard-iclb: [PASS][25] -> [INCOMPLETE][26] ([i915#140] / [i915#189])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb4/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb8/igt@[email protected]
* igt@i915_selftest@mock_requests:
- shard-snb: [PASS][27] -> [INCOMPLETE][28] ([i915#82])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-snb2/igt@i915_selftest@mock_requests.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-snb2/igt@i915_selftest@mock_requests.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk: [PASS][29] -> [FAIL][30] ([i915#79])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-glk4/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-glk5/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-msflip-blt:
- shard-tglb: [PASS][31] -> [FAIL][32] ([i915#49]) +3 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-tglb5/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-tglb6/igt@[email protected]
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-b-planes:
- shard-apl: [PASS][33] -> [DMESG-WARN][34] ([i915#180])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-apl1/igt@[email protected]
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-apl1/igt@[email protected]
* igt@kms_psr@psr2_cursor_plane_move:
- shard-iclb: [PASS][35] -> [SKIP][36] ([fdo#109441]) +3 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb2/igt@kms_psr@psr2_cursor_plane_move.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb4/igt@kms_psr@psr2_cursor_plane_move.html
* igt@perf_pmu@busy-vcs1:
- shard-iclb: [PASS][37] -> [SKIP][38] ([fdo#112080]) +9 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb2/igt@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb6/igt@[email protected]
#### Possible fixes ####
* igt@gem_busy@busy-vcs1:
- shard-iclb: [SKIP][39] ([fdo#112080]) -> [PASS][40] +7 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb6/igt@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb1/igt@[email protected]
* igt@gem_ctx_isolation@rcs0-s3:
- shard-kbl: [DMESG-WARN][41] ([i915#180]) -> [PASS][42] +8 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-kbl7/igt@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-kbl2/igt@[email protected]
* igt@gem_ctx_isolation@vcs1-reset:
- shard-iclb: [SKIP][43] ([fdo#109276] / [fdo#112080]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb6/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb2/igt@[email protected]
* igt@gem_ctx_persistence@rcs0-mixed-process:
- shard-glk: [FAIL][45] ([i915#679]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-glk3/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-glk6/igt@[email protected]
* igt@gem_exec_schedule@preempt-queue-bsd1:
- shard-iclb: [SKIP][47] ([fdo#109276]) -> [PASS][48] +18 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb6/igt@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb2/igt@[email protected]
* igt@gem_exec_schedule@promotion-bsd:
- shard-iclb: [SKIP][49] ([fdo#112146]) -> [PASS][50] +2 similar issues
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb2/igt@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb7/igt@[email protected]
* igt@gem_persistent_relocs@forked-interruptible-thrash-inactive:
- shard-kbl: [INCOMPLETE][51] ([fdo#103665] / [i915#530]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-kbl6/igt@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-kbl6/igt@[email protected]
* igt@gem_persistent_relocs@forked-thrash-inactive:
- shard-hsw: [INCOMPLETE][53] ([i915#530] / [i915#61]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-hsw8/igt@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-hsw5/igt@[email protected]
* igt@gem_persistent_relocs@forked-thrashing:
- shard-hsw: [INCOMPLETE][55] ([i915#61]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-hsw2/igt@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-hsw1/igt@[email protected]
- shard-kbl: [INCOMPLETE][57] ([fdo#103665]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-kbl7/igt@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-kbl7/igt@[email protected]
* igt@gem_softpin@noreloc-s3:
- shard-apl: [DMESG-WARN][59] ([i915#180]) -> [PASS][60] +3 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-apl1/igt@[email protected]
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-apl6/igt@[email protected]
* igt@i915_selftest@mock_requests:
- shard-iclb: [INCOMPLETE][61] ([i915#140]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb5/igt@i915_selftest@mock_requests.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb4/igt@i915_selftest@mock_requests.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk: [FAIL][63] ([i915#72]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-glk3/igt@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-glk4/igt@[email protected]
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc:
- shard-snb: [DMESG-WARN][65] ([i915#478]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-snb6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-snb4/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-badstride:
- shard-tglb: [FAIL][67] ([i915#49]) -> [PASS][68] +8 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-tglb6/igt@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-tglb3/igt@[email protected]
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [SKIP][69] ([fdo#109642] / [fdo#111068]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb7/igt@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb2/igt@[email protected]
* igt@kms_psr@psr2_sprite_mmap_gtt:
- shard-iclb: [SKIP][71] ([fdo#109441]) -> [PASS][72] +1 similar issue
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-iclb4/igt@kms_psr@psr2_sprite_mmap_gtt.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html
#### Warnings ####
* igt@gem_persistent_relocs@forked-faulting-reloc-thrashing:
- shard-hsw: [INCOMPLETE][73] ([i915#530] / [i915#61]) -> [INCOMPLETE][74] ([i915#61])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-hsw5/igt@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-hsw5/igt@[email protected]
* igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing:
- shard-apl: [INCOMPLETE][75] ([fdo#103927] / [i915#970]) -> [INCOMPLETE][76] ([fdo#103927] / [i915#530] / [i915#970])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-apl8/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-apl6/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
- shard-hsw: [INCOMPLETE][77] ([i915#61]) -> [INCOMPLETE][78] ([i915#530] / [i915#61])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-hsw7/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-hsw2/igt@gem_persistent_relocs@forked-interruptible-faulting-reloc-thrashing.html
* igt@gem_persistent_relocs@forked-interruptible-thrashing:
- shard-apl: [INCOMPLETE][79] ([fdo#103927] / [i915#530]) -> [INCOMPLETE][80] ([fdo#103927])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-apl7/igt@[email protected]
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-apl4/igt@[email protected]
- shard-hsw: [FAIL][81] ([i915#520]) -> [INCOMPLETE][82] ([i915#530] / [i915#61])
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-hsw8/igt@[email protected]
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-hsw2/igt@[email protected]
* igt@gem_userptr_blits@map-fixed-invalidate-busy-gup:
- shard-snb: [DMESG-WARN][83] ([fdo#110789] / [fdo#111870] / [i915#478]) -> [DMESG-WARN][84] ([fdo#111870] / [i915#478])
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5382/shard-snb1/igt@[email protected]
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/shard-snb5/igt@[email protected]
[fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
[fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[i915#140]: https://gitlab.freedesktop.org/drm/intel/issues/140
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#189]: https://gitlab.freedesktop.org/drm/intel/issues/189
[i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478
[i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
[i915#520]: https://gitlab.freedesktop.org/drm/intel/issues/520
[i915#530]: https://gitlab.freedesktop.org/drm/intel/issues/530
[i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
[i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679
[i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
[i915#970]: https://gitlab.freedesktop.org/drm/intel/issues/970
Participating hosts (8 -> 8)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5382 -> IGTPW_3979
CI-20190529: 20190529
CI_DRM_7802: cd932df72f11bdff93423a8d4a9e0e9ccb0985d7 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_3979: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/index.html
IGT_5382: 8dbe5ce61baa2d563d4dd7c56a018bb1e1077467 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3979/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev