perf дает высокие значения copy_user_generic_string иclear_page_rep

Я создаю сервер на С++, который много читает с диска. При записи с помощью perf я получаю такой отчет:

        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                [.] inflate
   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

Есть ли способ узнать, какая часть моего кода вызывает высокие значения copy_user_generic_string иclear_page_rep?

Пытался найти информацию об этих двух в Интернете, но не смог найти хорошей документации.

1 ответ

clear_page_rep— это обнуление страниц памяти ядром перед тем, как они будут обработаны вашим процессом. Это означает, что вы выделяете большие куски памяти. Они очищаются в целях безопасности, иначе вам могут быть обработаны страницы с данными, поступающими от другого процесса или даже ядра.

copy_user_generic_stringтам написано, что вы копируете данные.

Другие вопросы по тегам