From: Daniel Vetter Date: Wed, 7 Aug 2013 09:59:05 +0000 (+0200) Subject: tests/gem_pwrite_pread: subtest annotation X-Git-Tag: intel-gpu-tools-1.4~265 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=57622965e57a9d9dfb491434169bce1ea3aa94fe;p=platform%2Fupstream%2Fintel-gpu-tools.git tests/gem_pwrite_pread: subtest annotation This testcase mixes correctnes tests with performance tests, so it's good to track the different correctness test separate for QA. Together with pread_after_blt the pwrite->blt tests here exercise the full cache coherency lifecycle of both snooped and uncached objects. /me is happy Signed-off-by: Daniel Vetter --- diff --git a/tests/Makefile.am b/tests/Makefile.am index cc8de8b..5d0ed3e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -32,6 +32,7 @@ TESTS_progs_M = \ gem_partial_pwrite_pread \ gem_pread_after_blit \ gem_prw_concurrent_blit \ + gem_pwrite_pread \ gem_ringfill \ gem_set_tiling_vs_blt \ gem_suspend \ @@ -74,7 +75,6 @@ TESTS_progs = \ gem_pipe_control_store_loop \ gem_pread \ gem_pwrite \ - gem_pwrite_pread \ gem_readwrite \ gem_reg_read \ gem_reloc_overflow \ diff --git a/tests/gem_pwrite_pread.c b/tests/gem_pwrite_pread.c index 9f7c227..09a1f00 100644 --- a/tests/gem_pwrite_pread.c +++ b/tests/gem_pwrite_pread.c @@ -383,6 +383,7 @@ int main(int argc, char **argv) uint32_t *tmp, src, dst; int fd, count; + drmtest_subtest_init(argc, argv); drmtest_skip_on_simulation(); if (argc > 1) @@ -399,62 +400,74 @@ int main(int argc, char **argv) gem_set_cacheing(fd, src, 0); gem_set_cacheing(fd, dst, 0); - test_copy(fd, src, dst, tmp, object_size); - for (count = 1; count <= 1<<17; count <<= 1) { - struct timeval start, end; - - gettimeofday(&start, NULL); - copy(fd, src, dst, tmp, object_size, count); - gettimeofday(&end, NULL); - printf("Time to uncached copy %d bytes x %6d: %7.3fµs, %s\n", - object_size, count, - elapsed(&start, &end, count), - bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); - fflush(stdout); + if (drmtest_run_subtest("uncached-copy-correctness")) + test_copy(fd, src, dst, tmp, object_size); + if (drmtest_run_subtest("uncached-copy-performance")) { + for (count = 1; count <= 1<<17; count <<= 1) { + struct timeval start, end; + + gettimeofday(&start, NULL); + copy(fd, src, dst, tmp, object_size, count); + gettimeofday(&end, NULL); + printf("Time to uncached copy %d bytes x %6d: %7.3fµs, %s\n", + object_size, count, + elapsed(&start, &end, count), + bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); + fflush(stdout); + } } - test_as_gtt_mmap(fd, src, dst, object_size); - for (count = 1; count <= 1<<17; count <<= 1) { - struct timeval start, end; - - gettimeofday(&start, NULL); - as_gtt_mmap(fd, src, dst, tmp, object_size, count); - gettimeofday(&end, NULL); - printf("** mmap uncached copy %d bytes x %6d: %7.3fµs, %s\n", - object_size, count, - elapsed(&start, &end, count), - bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); - fflush(stdout); + if (drmtest_run_subtest("uncached-pwrite-blt-gtt_mmap-correctness")) + test_as_gtt_mmap(fd, src, dst, object_size); + if (drmtest_run_subtest("uncached-pwrite-blt-gtt_mmap-performance")) { + for (count = 1; count <= 1<<17; count <<= 1) { + struct timeval start, end; + + gettimeofday(&start, NULL); + as_gtt_mmap(fd, src, dst, tmp, object_size, count); + gettimeofday(&end, NULL); + printf("** mmap uncached copy %d bytes x %6d: %7.3fµs, %s\n", + object_size, count, + elapsed(&start, &end, count), + bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); + fflush(stdout); + } } gem_set_cacheing(fd, src, 1); gem_set_cacheing(fd, dst, 1); - test_copy(fd, src, dst, tmp, object_size); - for (count = 1; count <= 1<<17; count <<= 1) { - struct timeval start, end; - - gettimeofday(&start, NULL); - copy(fd, src, dst, tmp, object_size, count); - gettimeofday(&end, NULL); - printf("Time to snooped copy %d bytes x %6d: %7.3fµs, %s\n", - object_size, count, - elapsed(&start, &end, count), - bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); - fflush(stdout); + if (drmtest_run_subtest("snooped-copy-correctness")) + test_copy(fd, src, dst, tmp, object_size); + if (drmtest_run_subtest("snooped-copy-performance")) { + for (count = 1; count <= 1<<17; count <<= 1) { + struct timeval start, end; + + gettimeofday(&start, NULL); + copy(fd, src, dst, tmp, object_size, count); + gettimeofday(&end, NULL); + printf("Time to snooped copy %d bytes x %6d: %7.3fµs, %s\n", + object_size, count, + elapsed(&start, &end, count), + bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); + fflush(stdout); + } } - test_as_cpu_mmap(fd, src, dst, object_size); - for (count = 1; count <= 1<<17; count <<= 1) { - struct timeval start, end; - - gettimeofday(&start, NULL); - as_cpu_mmap(fd, src, dst, tmp, object_size, count); - gettimeofday(&end, NULL); - printf("** mmap snooped copy %d bytes x %6d: %7.3fµs, %s\n", - object_size, count, - elapsed(&start, &end, count), - bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); - fflush(stdout); + if (drmtest_run_subtest("snooped-pwrite-blt-cpu_mmap-correctness")) + test_as_cpu_mmap(fd, src, dst, object_size); + if (drmtest_run_subtest("snooped-pwrite-blt-cpu_mmap-performance")) { + for (count = 1; count <= 1<<17; count <<= 1) { + struct timeval start, end; + + gettimeofday(&start, NULL); + as_cpu_mmap(fd, src, dst, tmp, object_size, count); + gettimeofday(&end, NULL); + printf("** mmap snooped copy %d bytes x %6d: %7.3fµs, %s\n", + object_size, count, + elapsed(&start, &end, count), + bytes_per_sec((char *)buf, object_size/elapsed(&start, &end, count)*1e6)); + fflush(stdout); + } } free(tmp);