diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-03-18 11:15:12 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2015-03-23 11:02:28 +0100 |
commit | a5934091b84e3f8804fb3fed35374c5a976dd07e (patch) | |
tree | 2eb7b44410caa7e57aff610e72a65e00a89031ee /tests/gem_exec_lut_handle.c | |
parent | a5c6b8df8b7bc46a8664044faa7566ce56fa06a8 (diff) |
tests/gem_exec_lut_handle
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@intel.com>
Diffstat (limited to 'tests/gem_exec_lut_handle.c')
-rw-r--r-- | tests/gem_exec_lut_handle.c | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/tests/gem_exec_lut_handle.c b/tests/gem_exec_lut_handle.c index c2d490f9..e2e31f23 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(); } |