Linux статистика событий кеша не отображается - PullRequest
0 голосов
/ 20 февраля 2020

Я использую perf, чтобы показать ошибки кэширования, LL C -load-misses LL C -stores LL C -store-misses. Ниже приведены три различных теста, но во всех случаях я не могу получить статистику по событиям в кэше по строке исходного кода, где произошли события в кэше. Исходный код - это язык ассемблера, скомпилированный с символами карликов, поэтому строки исходного кода отображаются, но отображаются только 22 строки, и ни одна из этих строк исходного кода не обращается к памяти. Сервер представляет собой голое железо Xeon Cascade Lake.

Тест № 1: запустить запись perf, за которой следует perf annotate:

sudo perf record ./Test_Program.exe
sudo perf annotate -v -l

Perf annotate показывает только 22 строки исходного кода из списка более 800 строк кода сборки, начиная со строки 392 Я могу циклически перемещаться по экрану, используя «t», а заголовки столбцов - это проценты, период и выборки, но ничего о событиях кэша.

Тест № 2: запустить perf запись с параметрами, после чего следует perf annotate:

sudo perf record ./Test_Program.exe LLC-load-misses LLC-stores LLC-store-misses

sudo perf annotate -v -l

Perf annotate показывает то же самое, что и в Test # 1 - только 22 строки исходного кода, и ни одна из строк не показывает события кэша.

Тест № 3: запустите perf stat:

sudo perf stat -e task-clock,cycles,instructions,cache-references,cache-misses ./Test_Program.exe

Статистика счетчика производительности для './Test_Program.exe:

    231.717180      task-clock (msec)   #    2.534 CPUs utilized      
     517992739      cycles                       #    2.235 GHz                
     168966080      instructions              #    0.33  insn per cycle     
       2801888      cache-references       #   12.092 M/sec              
        392410      cache-misses              #   14.005 % of all cache refs

Итак, мои вопросы:

  1. Как просмотреть статистику событий кэша (LL C -load-misses LL C -stores LL C -store-misses) с аннотированием?
  2. Почему я вижу только 22 строки источника?
  3. Почему я не вижу заголовок события кэша при циклическом просмотре аннотации?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...