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?
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
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 .
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.