Команда для измерения TLB отсутствует на LINUX?

11

Кто-нибудь может направить меня к команде для измерения пропусков TLB в LINUX, пожалуйста? Можно ли рассматривать (или приближать) незначительные ошибки страницы при пропадании TLB?

samarasa
источник

Ответы:

10

Вы можете использовать perf для доступа к аппаратным счетчикам производительности:

$ perf stat -e dTLB-load-misses,iTLB-load-misses /path/to/command

например:

$ perf stat -e dTLB-load-misses,iTLB-load-misses /bin/ls > /dev/null

 Performance counter stats for '/bin/ls':

             5,775 dTLB-load-misses                                            
             1,059 iTLB-load-misses                                            

       0.001897682 seconds time elapsed
GBY
источник
2

Незначительная ошибка и промах TLB не являются хорошими аналогами. Незначительная ошибка возникает, когда запрашиваемая страница находится в памяти, но не отображается в текущей таблице страниц. Конечно, это может быть случай, когда незначительная ошибка будет связана с пропуском TLB (поскольку записи TLB являются ярлыками для записей таблицы страниц), но пропуски TLB будут вызваны многими другими вещами, например, серьезными сбоями или переходом в локальность программы ,

adrianmcmenamin
источник
1

Незначительные сбои страницы возникают, когда страница уже загружена в память, но соответствующая запись таблицы страниц еще не создана. Как побочный эффект, незначительные сбои страницы всегда приводят к пропускам TLB. С другой стороны, пропадание TLB происходит, когда запись перевода для страницы не находится в TLB (которая является кешем), что может произойти, когда эта запись TLB ранее была исключена из-за ограниченной емкости TLB.

rlavaee
источник