Определите фиксированный счетчик для отображения событий с помощью libpfm4
Я использую libpfm4 для определения кодировок счетчиков монитора производительности Intel (например, для сопоставления удобочитаемого имени и кодировки).
Intel PMU имеет несколько "фиксированных счетчиков", которые можно включать или отключать, но при включении всегда учитывают одно и то же событие. libpfc выставляет количество фиксированных счетчиков в pfm_pmu_info_t.num_fixed_cntrs
, но как я могу определить, какие события эти фиксированные счетчики отображают тоже?
События, охватываемые фиксированными счетчиками, перечислены в списках событий, но это общая кодировка, поэтому вам придется тратить счетчик общего назначения, чтобы программировать его таким образом.
Для Intel обычно есть 3 фиксированных счетчика на всех последних 0 чипах:
INST_RETIRED.ANY
CPU_CLK_UNHALTED.THREAD
CPU_CLK_UNHALTED.REF_TSC
Подробности можно найти в таблице 18-2 Vol. 3B Intel SDM 1.
0 В частности, все, что поддерживает хотя бы Architecural PMU версии 2, а именно процессор Intel Core 2 Duo T7700 и более новые процессоры на основе микроархитектуры Intel Core.
1 Таблица - Таблица 18-2. Ассоциация счетчиков производительности с фиксированной функцией с архитектурными событиями производительности, в выпуске за декабрь 2016 года.