2012-01-24 2 views
2

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

+0

Я понятия не имею, Пропуски TLB находятся внутри процессора. страницы fauts не пропускают TLB. –

+0

Незначительные ошибки страницы, а не ошибки главной страницы? – samarasa

+0

Какая семейство процессоров? Я предполагаю, что x86-64, но вам нужно указать процессор для этого, поскольку любое решение может включать доступ к реестрам производительности ЦП? –

ответ

6

Вы можете использовать perf для этого. Если ваш процессор поддерживает его.

Используйте perf list, чтобы получить представление о доступных счетчиках. Когда я взял этот список и grepped для TLB (на моей машине Sandy Bridge) я получил:

[email protected]:~$ perf list | grep -i tlb 
    dTLB-loads           [Hardware cache event] 
    dTLB-load-misses         [Hardware cache event] 
    dTLB-stores          [Hardware cache event] 
    dTLB-store-misses         [Hardware cache event] 
    dTLB-prefetches         [Hardware cache event] 
    dTLB-prefetch-misses        [Hardware cache event] 
    iTLB-loads           [Hardware cache event] 
    iTLB-load-misses         [Hardware cache event] 

Вы можете использовать данный счетчик с: perf record -e <event0>,<event1>,..

, а затем просто использовать perf report, чтобы посмотреть на результаты ,

+2

'oprofile' также может иметь доступ к счетчикам пропусков TLB для более старых ядер. – ninjalj

+0

Я использовал 'oprofile' в прошлом тоже - к сожалению, версия, поставляемая в Fedora 16, является одной версией за той, которая включает поддержку Sandy Bridge. Я не хотел рекомендовать то, что я не мог проверить. –

3

Чтобы посмотреть эту информацию для всей системы, вы можете воспользоваться следующей строкой. Это будет записывать счетчики в течение 1 минуты (60 секунд).

perf stat -e dTLB-loads,dTLB-load-misses,iTLB-loads,iTLB-load-misses sleep 60