Skip to content

Draft: freedreno/drm: Add syscall stats

Rob Clark requested to merge robclark/mesa:fd/syscall-stats into main

For $reasons I found myself in need of a way to collect some stats on # of syscalls per frame for different workloads..

Results from a few frames at steady state (ie. not startup):

gl_driver2:

mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=0 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=31 msm_gem_madvise_dontneed=9 msm_gem_submit=1 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=0 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=0 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=32 msm_gem_madvise_dontneed=44 msm_gem_submit=2 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=0 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=0 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=32 msm_gem_madvise_dontneed=32 msm_gem_submit=1 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=0 

gl_manhattan:

mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=8 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=169 msm_gem_madvise_dontneed=161 msm_gem_submit=4 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=8 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=169 msm_gem_madvise_dontneed=161 msm_gem_submit=4 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=8 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=169 msm_gem_madvise_dontneed=161 msm_gem_submit=4 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 

gl_manhattan31:

mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=8 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=205 msm_gem_madvise_dontneed=200 msm_gem_submit=5 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=8 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=205 msm_gem_madvise_dontneed=204 msm_gem_submit=6 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=8 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=205 msm_gem_madvise_dontneed=204 msm_gem_submit=6 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 

gl_trex:

mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=0 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=30 msm_gem_madvise_dontneed=26 msm_gem_submit=4 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=0 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=30 msm_gem_madvise_dontneed=26 msm_gem_submit=3 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 
mmap=0 gem_close=0 gem_open=0 gem_flink=0 prime_fd_to_handle=0 prime_handle_to_fd=0 msm_get_param=0 msm_gem_new=0 msm_gem_info=0 msm_gem_cpu_prep=0 msm_gem_cpu_fini=0 msm_gem_madvise_willneed=30 msm_gem_madvise_dontneed=26 msm_gem_submit=4 msm_submitqueue_close=0 msm_submitqueue_new=0 msm_submitqueue_query=0 msm_wait_fence=1 

Merge request reports