[RFC][PATCH] Userptr benchmark

Tvrtko Ursulin
2014-02-05T12:41:55Z

A simple userptr benchmark measuring creation and destruction of userptr
surfaces and also impact of having a different number of them in the
process address space.

Example test output from i7-4550U running Android is below.

Questions, comments and ideas are welcome.

IGT-Version: 1.5-NOT-GIT (android-ia) (Linux: 3.10.20-g667dce8-dirty x86_64)
create-destroy = 258270 op/s
multi-create-destroy = 2803 op/s
multi-create-destroy-random = 2777 op/s
Subtest userptr-unsync: SUCCESS
malloc-free, 0 bos = 7463 op/s
malloc-free-random 0 bos = 5911 op/s
malloc-realloc-free, 0 bos = 2427 op/s
malloc-realloc-free-random, 0 bos = 669 op/s
mmap-unmap, 0 bos = 636 op/s
mmap-unmap-random, 0 bos = 561 op/s
malloc-free, 1 bos = 7462 op/s
malloc-free-random 1 bos = 5915 op/s
malloc-realloc-free, 1 bos = 2444 op/s
malloc-realloc-free-random, 1 bos = 669 op/s
mmap-unmap, 1 bos = 594 op/s
mmap-unmap-random, 1 bos = 531 op/s
malloc-free, 10 bos = 7464 op/s
malloc-free-random 10 bos = 5915 op/s
malloc-realloc-free, 10 bos = 2444 op/s
malloc-realloc-free-random, 10 bos = 669 op/s
mmap-unmap, 10 bos = 606 op/s
mmap-unmap-random, 10 bos = 542 op/s
malloc-free, 100 bos = 7462 op/s
malloc-free-random 100 bos = 5913 op/s
malloc-realloc-free, 100 bos = 2444 op/s
malloc-realloc-free-random, 100 bos = 669 op/s
mmap-unmap, 100 bos = 613 op/s
mmap-unmap-random, 100 bos = 546 op/s
malloc-free, 1000 bos = 7437 op/s
malloc-free-random 1000 bos = 5908 op/s
malloc-realloc-free, 1000 bos = 2442 op/s
malloc-realloc-free-random, 1000 bos = 669 op/s
mmap-unmap, 1000 bos = 600 op/s
mmap-unmap-random, 1000 bos = 535 op/s
Subtest userptr-impact-unsync: SUCCESS
create-destroy = 67453 op/s
multi-create-destroy = 1837 op/s
multi-create-destroy-random = 1817 op/s
Subtest userptr-sync: SUCCESS
malloc-free, 0 bos = 7362 op/s
malloc-free-random 0 bos = 5913 op/s
malloc-realloc-free, 0 bos = 2444 op/s
malloc-realloc-free-random, 0 bos = 670 op/s
mmap-unmap, 0 bos = 512 op/s
mmap-unmap-random, 0 bos = 465 op/s
malloc-free, 1 bos = 7463 op/s
malloc-free-random 1 bos = 5913 op/s
malloc-realloc-free, 1 bos = 2445 op/s
malloc-realloc-free-random, 1 bos = 669 op/s
mmap-unmap, 1 bos = 447 op/s
mmap-unmap-random, 1 bos = 403 op/s
malloc-free, 10 bos = 7455 op/s
malloc-free-random 10 bos = 5911 op/s
malloc-realloc-free, 10 bos = 2444 op/s
malloc-realloc-free-random, 10 bos = 669 op/s
mmap-unmap, 10 bos = 452 op/s
mmap-unmap-random, 10 bos = 414 op/s
malloc-free, 100 bos = 7462 op/s
malloc-free-random 100 bos = 5915 op/s
malloc-realloc-free, 100 bos = 2442 op/s
malloc-realloc-free-random, 100 bos = 668 op/s
mmap-unmap, 100 bos = 453 op/s
mmap-unmap-random, 100 bos = 416 op/s
malloc-free, 1000 bos = 7462 op/s
malloc-free-random 1000 bos = 5907 op/s
malloc-realloc-free, 1000 bos = 2441 op/s
malloc-realloc-free-random, 1000 bos = 667 op/s
mmap-unmap, 1000 bos = 436 op/s
mmap-unmap-random, 1000 bos = 400 op/s
Subtest userptr-impact-sync: SUCCESS

Tvrtko Ursulin (1):
tests/gem_userptr_benchmark: Benchmarking userptr surfaces and impact

tests/.gitignore | 1 +
tests/Makefile.sources | 1 +
tests/gem_userptr_benchmark.c | 451 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 453 insertions(+)
create mode 100644 tests/gem_userptr_benchmark.c

--
1.8.4.3