Comando para medir perdas de TLB no LINUX?

11

Alguém poderia me direcionar para um comando para medir as falhas de TLB no LINUX, por favor? Não há problema em considerar (ou aproximar) pequenas falhas de página quando o TLB falha?

samarasa
fonte

Respostas:

10

Você pode usar o perf para acessar os contadores de desempenho de hardware:

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

por exemplo :

$ 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
fonte
2

Uma falha menor e uma falta de TLB não são bons análogos. Uma falha menor ocorre quando uma página solicitada está na memória, mas não é mapeada na tabela de páginas atual. Certamente seria o caso de uma falha menor ser associada a uma falha do TLB (como as entradas TLB são atalhos para as entradas da tabela de páginas), mas as falhas do TLB serão causadas por muitas outras coisas, como falhas graves ou uma transição na localidade de um programa .

adrianmcmenamin
fonte
1

Pequenas falhas de página ocorrem quando a página já está carregada na memória, mas a entrada da tabela de página associada ainda não foi criada. Como efeito colateral, pequenas falhas na página sempre incorrem em falhas no TLB. Por outro lado, ocorre uma falta de TLB quando a entrada de tradução de uma página não reside no TLB (que é um cache), o que pode ocorrer quando a entrada do TLB foi despejada anteriormente devido à capacidade limitada do TLB.

rlavaee
fonte