Я создаю сервер на С++, который много читает с диска. При записи с perf я получаю этот отчет:
28,20% сервер [kernel.kallsyms] [k] copy_user_generic_string
18,14% сервер [kernel.kallsyms] [k] clear_page_rep
7,31% сервер сервер [.] SearchEngine::value_intersection<FullTextRecord>
5,64% сервер сервер [.] SearchEngine::value_intersection<DomainLinkFullTextRecord>
4.20% сервер libz.so.1.2.11 [.] раздувать
1.63% сервер [kernel.kallsyms] [k] rmqueue
1,39% сервер сервер [.] SearchEngine::value_intersection<LinkFullTextRecord>
1,23% сервер [kernel.kallsyms] [k] page_fault
1.15% сервер [kernel.kallsyms] [k] native_queued_spin_lock_slowpath
1.04% сервер [kernel.kallsyms] [k] xas_load
0,87% сервер [kernel.kallsyms] [k] __pagevec_lru_add_fn
0,81% сервер [kernel.kallsyms] [k] find_get_entry
0,80% сервер libz.so.1.2.11 [.] crc32_z
0,65% сервер [kernel.kallsyms] [k] down_read_trylock
0,61% сервер [kernel.kallsyms] [k] workingset_activation
0,56% сервер [kernel.kallsyms] [k] iommu_map_page
0,51% сервер [kernel.kallsyms] [k] generic_file_buffered_read
0,50% сервер libc-2.31.so [.] __memmove_avx_unaligned_erms
Есть ли способ узнать, какая часть моего кода вызывает высокие значения copy_user_generic_string и clear_page_rep?
Пытался найти информацию об этих двух в Интернете, но не смог найти никакой хорошей документации.