Perintah untuk mengukur kesalahan TLB di LINUX?

11

Bisakah seseorang mengarahkan saya ke sebuah perintah untuk mengukur kesalahan TLB di LINUX, tolong? Apakah saya tetap dapat menganggap (atau memperkirakan) kesalahan halaman minor karena TLB meleset?

samarasa
sumber

Jawaban:

10

Anda dapat menggunakan perf untuk mengakses penghitung kinerja perangkat keras:

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

misalnya:

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

Kesalahan kecil dan miss TLB bukan analog yang baik. Kesalahan kecil terjadi ketika halaman yang diminta dalam memori tetapi tidak dipetakan dalam tabel halaman saat ini. Ini akan menjadi kasus bahwa kesalahan kecil akan dikaitkan dengan kehilangan TLB (karena entri TLB adalah pintasan ke entri tabel halaman) tetapi kehilangan TLB akan disebabkan oleh banyak hal lain misalnya kesalahan keras, atau transisi dalam lokalitas program .

adrianmcmenamin
sumber
1

Kesalahan halaman minor terjadi ketika halaman sudah dimuat dalam memori, tetapi entri tabel halaman terkait belum dibuat. Sebagai efek sampingnya, kesalahan halaman minor selalu menyebabkan TLB hilang. Di sisi lain, kehilangan TLB terjadi ketika entri terjemahan untuk halaman tidak berada di TLB (yang merupakan cache), yang dapat terjadi ketika entri TLB sebelumnya telah diusir karena kapasitas terbatas TLB.

rlavaee
sumber