All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [RFC i-g-t] wsim/media-bench: i915 balancing
@ 2018-01-25 13:39 Tvrtko Ursulin
  2018-01-25 14:50 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
  2018-01-25 16:42 ` [igt-dev] ✗ Fi.CI.IGT: warning " Patchwork
  0 siblings, 2 replies; 3+ messages in thread
From: Tvrtko Ursulin @ 2018-01-25 13:39 UTC (permalink / raw)
  To: igt-dev; +Cc: Tvrtko Ursulin

From: Tvrtko Ursulin <tvrtko.ursulin@intel.com>

Support i915 virtual engine from gem_wsim (-b i915) and media-bench.pl

v2: Rebase for ctx->virtual.

Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
---
 benchmarks/gem_wsim.c  | 86 +++++++++++++++++++++++++++++++++++++++++++-------
 scripts/media-bench.pl |  9 ++++--
 2 files changed, 80 insertions(+), 15 deletions(-)

diff --git a/benchmarks/gem_wsim.c b/benchmarks/gem_wsim.c
index c15dc365ea95..4d43a9c08c6c 100644
--- a/benchmarks/gem_wsim.c
+++ b/benchmarks/gem_wsim.c
@@ -58,6 +58,17 @@
 #define LOCAL_I915_EXEC_FENCE_IN              (1<<16)
 #define LOCAL_I915_EXEC_FENCE_OUT             (1<<17)
 
+struct local_drm_i915_gem_context_create_v2 {
+	/*  output: id of new context*/
+	__u32 ctx_id;
+	__u32 flags;
+#define LOCAL_I915_GEM_CONTEXT_SHARE_GTT 0x1
+	__u32 share_ctx;
+	__u32 virtual;
+};
+
+#define LOCAL_DRM_IOCTL_I915_GEM_CONTEXT_CREATE	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_CONTEXT_CREATE, struct local_drm_i915_gem_context_create_v2)
+
 enum intel_engine_id {
 	RCS,
 	BCS,
@@ -219,6 +230,7 @@ static int fd;
 #define HEARTBEAT	(1<<7)
 #define GLOBAL_BALANCE	(1<<8)
 #define DEPSYNC		(1<<9)
+#define I915		(1<<10)
 
 #define SEQNO_IDX(engine) ((engine) * 16)
 #define SEQNO_OFFSET(engine) (SEQNO_IDX(engine) * sizeof(uint32_t))
@@ -725,6 +737,25 @@ terminate_bb(struct w_step *w, unsigned int flags)
 	w->mapped_len = mmap_len;
 }
 
+#define I915_EXEC_CLASS_INSTANCE	(1<<20)
+
+#define I915_EXEC_INSTANCE_SHIFT	(21)
+#define I915_EXEC_INSTANCE_MASK		(0xff << I915_EXEC_INSTANCE_SHIFT)
+
+#define i915_execbuffer2_engine(class, instance) \
+	(I915_EXEC_CLASS_INSTANCE | \
+	(class) | \
+	((instance) << I915_EXEC_INSTANCE_SHIFT))
+
+static const unsigned int eb_class_map[NUM_ENGINES] = {
+	[RCS] = i915_execbuffer2_engine(I915_ENGINE_CLASS_RENDER, 0),
+	[BCS] = i915_execbuffer2_engine(I915_ENGINE_CLASS_COPY, 0),
+	[VCS] = i915_execbuffer2_engine(I915_ENGINE_CLASS_VIDEO, 0),
+	[VCS1] = i915_execbuffer2_engine(I915_ENGINE_CLASS_VIDEO, 0),
+	[VCS2] = i915_execbuffer2_engine(I915_ENGINE_CLASS_VIDEO, 1),
+	[VECS] = i915_execbuffer2_engine(I915_ENGINE_CLASS_VIDEO_ENHANCE, 0)
+};
+
 static const unsigned int eb_engine_map[NUM_ENGINES] = {
 	[RCS] = I915_EXEC_RENDER,
 	[BCS] = I915_EXEC_BLT,
@@ -742,7 +773,10 @@ eb_set_engine(struct drm_i915_gem_execbuffer2 *eb,
 	if (engine == VCS2 && (flags & VCS2REMAP))
 		engine = BCS;
 
-	eb->flags = eb_engine_map[engine];
+	if (flags & I915)
+		eb->flags = eb_class_map[engine];
+	else
+		eb->flags = eb_engine_map[engine];
 }
 
 static void
@@ -888,12 +922,27 @@ prepare_workload(unsigned int id, struct workload *wrk, unsigned int flags)
 		}
 
 		if (!wrk->ctx_list[w->context].id) {
-			struct drm_i915_gem_context_create arg = {};
+			uint32_t ctx_id;
 
-			drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &arg);
-			igt_assert(arg.ctx_id);
+			if (flags & I915) {
+				struct local_drm_i915_gem_context_create_v2 args = { };
 
-			wrk->ctx_list[w->context].id = arg.ctx_id;
+				args.virtual = 1;
+				drmIoctl(fd,
+					 LOCAL_DRM_IOCTL_I915_GEM_CONTEXT_CREATE,
+					 &args);
+				ctx_id = args.ctx_id;
+
+			} else {
+				struct drm_i915_gem_context_create args = {};
+
+				drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE,
+					 &args);
+				ctx_id = args.ctx_id;
+			}
+
+			igt_assert(ctx_id);
+			wrk->ctx_list[w->context].id = ctx_id;
 
 			if (flags & GLOBAL_BALANCE) {
 				wrk->ctx_list[w->context].static_vcs = context_vcs_rr;
@@ -905,7 +954,7 @@ prepare_workload(unsigned int id, struct workload *wrk, unsigned int flags)
 
 			if (wrk->prio) {
 				struct drm_i915_gem_context_param param = {
-					.ctx_id = arg.ctx_id,
+					.ctx_id = ctx_id,
 					.param = I915_CONTEXT_PARAM_PRIORITY,
 					.value = wrk->prio,
 				};
@@ -1446,6 +1495,12 @@ static const struct workload_balancer all_balancers[] = {
 		.get_qd = get_engine_busy,
 		.balance = busy_avg_balance,
 	},
+	{
+		.id = 11,
+		.name = "i915",
+		.desc = "i915 balancing.",
+		.flags = I915,
+	},
 };
 
 static unsigned int
@@ -1809,7 +1864,8 @@ static void *run_workload(void *data)
 			last_sync = false;
 
 			wrk->nr_bb[engine]++;
-			if (engine == VCS && wrk->balancer) {
+			if (engine == VCS && wrk->balancer &&
+			    wrk->balancer->balance) {
 				engine = wrk->balancer->balance(wrk->balancer,
 								wrk, w);
 				wrk->nr_bb[engine]++;
@@ -2321,11 +2377,17 @@ int main(int argc, char **argv)
 		printf("%u client%s.\n", clients, clients > 1 ? "s" : "");
 		if (flags & SWAPVCS)
 			printf("Swapping VCS rings between clients.\n");
-		if (flags & GLOBAL_BALANCE)
-			printf("Using %s balancer in global mode.\n",
-			       balancer->name);
-		else if (balancer)
+		if (flags & GLOBAL_BALANCE) {
+			if (flags & I915) {
+				printf("Ignoring global balancing with i915!\n");
+				flags &= ~GLOBAL_BALANCE;
+			} else {
+				printf("Using %s balancer in global mode.\n",
+				       balancer->name);
+			}
+		} else if (balancer) {
 			printf("Using %s balancer.\n", balancer->name);
+		}
 	}
 
 	if (master_workload >= 0 && clients == 1)
@@ -2342,7 +2404,7 @@ int main(int argc, char **argv)
 		if (flags & SWAPVCS && i & 1)
 			flags_ &= ~SWAPVCS;
 
-		if (flags & GLOBAL_BALANCE) {
+		if ((flags & GLOBAL_BALANCE) && !(flags & I915)) {
 			w[i]->balancer = &global_balancer;
 			w[i]->global_wrk = w[0];
 			w[i]->global_balancer = balancer;
diff --git a/scripts/media-bench.pl b/scripts/media-bench.pl
index 78f45199e95d..2c7ff972baa2 100755
--- a/scripts/media-bench.pl
+++ b/scripts/media-bench.pl
@@ -47,10 +47,11 @@ my $nop;
 my %opts;
 
 my @balancers = ( 'rr', 'rand', 'qd', 'qdr', 'qdavg', 'rt', 'rtr', 'rtavg',
-		  'context', 'busy', 'busy-avg' );
+		  'context', 'busy', 'busy-avg', 'i915' );
 my %bal_skip_H = ( 'rr' => 1, 'rand' => 1, 'context' => 1, , 'busy' => 1,
-		   'busy-avg' => 1 );
-my %bal_skip_R = ( 'context' => 1 );
+		   'busy-avg' => 1, 'i915' => 1 );
+my %bal_skip_R = ( 'context' => 1, 'i915' => 1 );
+my %bal_skip_G = ( 'i915' => 1 );
 
 my @workloads = (
 	'media_load_balance_17i7.wsim',
@@ -432,6 +433,8 @@ foreach my $wrk (@workloads) {
 				my $bid;
 
 				if ($bal ne '') {
+					next GBAL if $G =~ '-G' and exists $bal_skip_G{$bal};
+
 					push @xargs, "-b $bal";
 					push @xargs, '-R' unless exists $bal_skip_R{$bal};
 					push @xargs, $G if $G ne '';
-- 
2.14.1

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for wsim/media-bench: i915 balancing
  2018-01-25 13:39 [igt-dev] [RFC i-g-t] wsim/media-bench: i915 balancing Tvrtko Ursulin
@ 2018-01-25 14:50 ` Patchwork
  2018-01-25 16:42 ` [igt-dev] ✗ Fi.CI.IGT: warning " Patchwork
  1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2018-01-25 14:50 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: igt-dev

== Series Details ==

Series: wsim/media-bench: i915 balancing
URL   : https://patchwork.freedesktop.org/series/37107/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
872fd8f21e22a3ca49739b67c47c6665da450dbf tests/kms_ccs: Grab the CRC when the plane is actually enabled

with latest DRM-Tip kernel build CI_DRM_3683
9d8467fe5626 drm-tip: 2018y-01m-24d-19h-59m-41s UTC integration manifest

No testlist changes.

Test debugfs_test:
        Subgroup read_all_entries:
                dmesg-warn -> DMESG-FAIL (fi-elk-e7500) fdo#103989
Test kms_pipe_crc_basic:
        Subgroup suspend-read-crc-pipe-b:
                incomplete -> PASS       (fi-snb-2520m) fdo#103713

fdo#103989 https://bugs.freedesktop.org/show_bug.cgi?id=103989
fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713

fi-bdw-5557u     total:288  pass:267  dwarn:0   dfail:0   fail:0   skip:21  time:421s
fi-bdw-gvtdvm    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:442s
fi-blb-e6850     total:288  pass:223  dwarn:1   dfail:0   fail:0   skip:64  time:373s
fi-bsw-n3050     total:288  pass:242  dwarn:0   dfail:0   fail:0   skip:46  time:493s
fi-bwr-2160      total:288  pass:183  dwarn:0   dfail:0   fail:0   skip:105 time:284s
fi-bxt-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:486s
fi-bxt-j4205     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:489s
fi-byt-j1900     total:288  pass:253  dwarn:0   dfail:0   fail:0   skip:35  time:470s
fi-byt-n2820     total:288  pass:249  dwarn:0   dfail:0   fail:0   skip:39  time:462s
fi-elk-e7500     total:224  pass:168  dwarn:9   dfail:1   fail:0   skip:45 
fi-gdg-551       total:288  pass:179  dwarn:0   dfail:0   fail:1   skip:108 time:279s
fi-glk-1         total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:514s
fi-hsw-4770      total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:396s
fi-hsw-4770r     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:407s
fi-ilk-650       total:288  pass:228  dwarn:0   dfail:0   fail:0   skip:60  time:416s
fi-ivb-3520m     total:288  pass:259  dwarn:0   dfail:0   fail:0   skip:29  time:454s
fi-ivb-3770      total:288  pass:255  dwarn:0   dfail:0   fail:0   skip:33  time:415s
fi-kbl-7500u     total:288  pass:263  dwarn:1   dfail:0   fail:0   skip:24  time:459s
fi-kbl-7560u     total:288  pass:269  dwarn:0   dfail:0   fail:0   skip:19  time:502s
fi-kbl-7567u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:456s
fi-kbl-r         total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:504s
fi-pnv-d510      total:288  pass:222  dwarn:1   dfail:0   fail:0   skip:65  time:579s
fi-skl-6260u     total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:433s
fi-skl-6600u     total:288  pass:261  dwarn:0   dfail:0   fail:0   skip:27  time:517s
fi-skl-6700hq    total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:529s
fi-skl-6700k2    total:288  pass:264  dwarn:0   dfail:0   fail:0   skip:24  time:489s
fi-skl-6770hq    total:288  pass:268  dwarn:0   dfail:0   fail:0   skip:20  time:493s
fi-skl-guc       total:288  pass:260  dwarn:0   dfail:0   fail:0   skip:28  time:423s
fi-skl-gvtdvm    total:288  pass:265  dwarn:0   dfail:0   fail:0   skip:23  time:433s
fi-snb-2520m     total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:529s
fi-snb-2600      total:288  pass:248  dwarn:0   dfail:0   fail:0   skip:40  time:402s
Blacklisted hosts:
fi-cfl-s2        total:288  pass:262  dwarn:0   dfail:0   fail:0   skip:26  time:565s
fi-glk-dsi       total:288  pass:258  dwarn:0   dfail:0   fail:0   skip:30  time:474s

== Logs ==

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

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

* [igt-dev] ✗ Fi.CI.IGT: warning for wsim/media-bench: i915 balancing
  2018-01-25 13:39 [igt-dev] [RFC i-g-t] wsim/media-bench: i915 balancing Tvrtko Ursulin
  2018-01-25 14:50 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
@ 2018-01-25 16:42 ` Patchwork
  1 sibling, 0 replies; 3+ messages in thread
From: Patchwork @ 2018-01-25 16:42 UTC (permalink / raw)
  To: Tvrtko Ursulin; +Cc: igt-dev

== Series Details ==

Series: wsim/media-bench: i915 balancing
URL   : https://patchwork.freedesktop.org/series/37107/
State : warning

== Summary ==

Test kms_cursor_legacy:
        Subgroup flip-vs-cursor-crc-atomic:
                fail       -> PASS       (shard-apl) fdo#102670
Test kms_frontbuffer_tracking:
        Subgroup fbc-1p-pri-indfb-multidraw:
                pass       -> FAIL       (shard-snb) fdo#103167
Test kms_cursor_crc:
        Subgroup cursor-64x64-suspend:
                pass       -> SKIP       (shard-snb) fdo#102365
Test kms_ccs:
        Subgroup pipe-a-crc-sprite-planes-basic:
                fail       -> SKIP       (shard-apl) fdo#104724 +1
Test kms_flip:
        Subgroup plain-flip-fb-recreate-interruptible:
                fail       -> PASS       (shard-hsw) fdo#100368
        Subgroup busy-flip:
                pass       -> FAIL       (shard-apl) fdo#103257
        Subgroup 2x-flip-vs-modeset-interruptible:
                dmesg-warn -> PASS       (shard-hsw) fdo#102614
Test kms_plane:
        Subgroup plane-position-hole-pipe-b-planes:
                pass       -> SKIP       (shard-snb)
Test gem_eio:
        Subgroup in-flight-contexts:
                fail       -> PASS       (shard-hsw) fdo#104676

fdo#102670 https://bugs.freedesktop.org/show_bug.cgi?id=102670
fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
fdo#102365 https://bugs.freedesktop.org/show_bug.cgi?id=102365
fdo#104724 https://bugs.freedesktop.org/show_bug.cgi?id=104724
fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
fdo#103257 https://bugs.freedesktop.org/show_bug.cgi?id=103257
fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
fdo#104676 https://bugs.freedesktop.org/show_bug.cgi?id=104676

shard-apl        total:2838 pass:1752 dwarn:1   dfail:0   fail:21  skip:1064 time:12715s
shard-hsw        total:2838 pass:1736 dwarn:1   dfail:0   fail:10  skip:1090 time:12216s
shard-snb        total:2838 pass:1327 dwarn:1   dfail:0   fail:11  skip:1499 time:6630s
Blacklisted hosts:
shard-kbl        total:2774 pass:1819 dwarn:3   dfail:0   fail:22  skip:929 time:9410s

== Logs ==

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

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

end of thread, other threads:[~2018-01-25 16:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-25 13:39 [igt-dev] [RFC i-g-t] wsim/media-bench: i915 balancing Tvrtko Ursulin
2018-01-25 14:50 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-01-25 16:42 ` [igt-dev] ✗ Fi.CI.IGT: warning " 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.