Вы должны проверить, требуется ли вам процессор и другая поддержка HW. Попробуйте изучить исходный код oprofile. Он имеет модуль ядра и пользовательское пространство api. Вы можете, например, вырезать часть интересного кода из части модуля ядра oprofile и использовать его в вашем модуле. Я полагаю, что модуль должен иметь несколько читателей или слушателей с круглыми буферами для хранения событий. Вы также можете посмотреть в linux/drivers/oprofile и соответствовать linux/arch /.../ oprofile. Внутри make menuconfig вы можете настроить его как модуль или встроенный и добавить дополнительные таймеры. Доступные события и счетчики вы можете найти в oprofile/events/инструмента oprofile (TLB_MISS, CPU_CYCLES, CYCLES_DATA_STALL, ...).
ARM Performance monitoring register
Под Linux/арка/arm64/ядро / perf_regs.c вы можете найти вооружить конкретные детали.
Вы пытаетесь получить разбивку запроса доступа L2 инструкциями. Правильно ??? – Ankit
Почему вы используете только регистр perfeveset0, а не perfctr0? Или где и как мы будем использовать эти два? Более того, вы можете написать полный рабочий пример, потому что это будет полезно для людей, которые будут искать его позже. – Ankit
u может использовать это в модуле ядра или напрямую изменять ядро Linux. – njn1234