[Intel-gfx] [PATCH] tests/gem_exec_lut_handle

Daniel Vetter daniel.vetter at ffwll.ch
Wed Mar 18 03:19:32 PDT 2015


Reduce default number of repeats a lot. High repeat count is only
useful for microbenchmarking, not that much for regression testing.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87131
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
---
 tests/gem_exec_lut_handle.c | 38 +++++++++++++++++++++++++++++++++++---
 1 file changed, 35 insertions(+), 3 deletions(-)

diff --git a/tests/gem_exec_lut_handle.c b/tests/gem_exec_lut_handle.c
index c2d490f94cd6..e2e31f233cd5 100644
--- a/tests/gem_exec_lut_handle.c
+++ b/tests/gem_exec_lut_handle.c
@@ -113,9 +113,32 @@ static int exec(int fd, int num_exec, int num_relocs, unsigned flags)
 			&execbuf);
 }
 
+int repeats = 10;
+
+static int opt_handler(int opt, int opt_index)
+{
+	switch (opt) {
+	case 'r':
+		igt_warn("meh\n");
+		repeats = atoi(optarg);
+		igt_warn("meh\n");
+		break;
+	default:
+		igt_assert(0);
+	}
+
+	return 0;
+}
+
 #define ELAPSED(a,b) (1e6*((b)->tv_sec - (a)->tv_sec) + ((b)->tv_usec - (a)->tv_usec))
-igt_simple_main
+int main(int argc, char **argv)
 {
+	const char *help_str =
+	       "  --repeats\t\tNumber of repeats to run the microbenchmarks for.";
+	static struct option long_options[] = {
+		{"repeats", 1, 0, 'r'},
+		{ 0, 0, 0, 0 }
+	};
 	uint32_t batch[2] = {MI_BATCH_BUFFER_END};
 	int fd, n, m, count;
 	const struct {
@@ -128,6 +151,9 @@ igt_simple_main
 		{ .name = NULL },
 	}, *p;
 
+	igt_simple_init_parse_opts(&argc, argv, "", long_options,
+				   help_str, opt_handler);
+
 	igt_skip_on_simulation();
 
 	fd = drm_open_any();
@@ -160,7 +186,7 @@ igt_simple_main
 
 				do_or_die(exec(fd, n, m, 0 | p->flags));
 				gettimeofday(&start, NULL);
-				for (count = 0; count < 1000; count++)
+				for (count = 0; count < repeats; count++)
 					do_or_die(exec(fd, n, m, 0 | p->flags));
 				gettimeofday(&end, NULL);
 				gem_sync(fd, gem_exec[MAX_NUM_EXEC].handle);
@@ -168,7 +194,7 @@ igt_simple_main
 
 				do_or_die(exec(fd, n, m, USE_LUT | p->flags));
 				gettimeofday(&start, NULL);
-				for (count = 0; count < 1000; count++)
+				for (count = 0; count < repeats; count++)
 					do_or_die(exec(fd, n, m, USE_LUT | p->flags));
 				gettimeofday(&end, NULL);
 				gem_sync(fd, gem_exec[MAX_NUM_EXEC].handle);
@@ -204,4 +230,10 @@ igt_simple_main
 			igt_info("\n");
 		}
 	}
+
+	igt_info("Used %i rounds for testing.\n"
+		 "Increase for more accurate results when microbenchmarking with --repeats\n",
+		 repeats);
+
+	igt_exit();
 }
-- 
1.9.3



More information about the Intel-gfx mailing list