Construiesc un server în c++ care citește mult de pe disc. Când înregistrez cu perf primesc acest raport:
28,20% server [kernel.kallsyms] [k] copy_user_generic_string
18,14% server [kernel.kallsyms] [k] clear_page_rep
7,31% server server [.] SearchEngine::value_intersection<FullTextRecord>
5,64% server server [.] SearchEngine::value_intersection<DomainLinkFullTextRecord>
4,20% server libz.so.1.2.11 [.] umfla
1,63% server [kernel.kallsyms] [k] rmqueue
1,39% server server [.] SearchEngine::value_intersection<LinkFullTextRecord>
1,23% server [kernel.kallsyms] [k] page_fault
1,15% server [kernel.kallsyms] [k] native_queued_spin_lock_slowpath
1,04% server [kernel.kallsyms] [k] xas_load
0,87% server [kernel.kallsyms] [k] __pagevec_lru_add_fn
0,81% server [kernel.kallsyms] [k] find_get_entry
0,80% server libz.so.1.2.11 [.] crc32_z
0,65% server [kernel.kallsyms] [k] down_read_trylock
0,61% server [kernel.kallsyms] [k] workingset_activation
0,56% server [kernel.kallsyms] [k] iommu_map_page
0,51% server [kernel.kallsyms] [k] generic_file_buffered_read
0,50% server libc-2.31.so [.] __memmove_avx_unaligned_erms
Există vreo modalitate de a afla care parte a codului meu provoacă valorile mari copy_user_generic_string și clear_page_rep?
Am încercat să găsesc informații despre cei doi online, dar nu am găsit nicio documentație bună.