2012-11-15 22 views
6

Her çekirdek için programsal olarak (Intel]) donanım sayaçlarına erişebilmemin bir yolu var mı? (Yani, perf, perfmon, veya valgrind, ve "basit" eklemeliyim, yani PAPI, örneğin) (bilmek istiyorum) (her çekirdek için) kaç tane L1-LLC önbelleği vurur/kaçırır (= a Bu çekirdek üzerinde çalışan belirli bir program). Bu Linux 3.2.0-32, C için ve GCC kullanarak.Basit önbellek profili API

+0

LTTng (Linux Trace Toolkit Yeni Nesil), Linux'ta HardWare, Sürücü ve İkili Tersine Mühendislik'in İzlenmesi için kullanılır. Donanım kayıtlarına nasıl eriştiğini anlamak için kaynak koduna bakabilirsiniz. –

+0

Sanırım, Intel forumları size bu konuda daha iyi rehberlik edebilecektir. – askmish

cevap

1

İşlemcideki performans sayaçları "kullanıcı modu" kodundan okunamıyor, bu yüzden bunu yapmak için bir çeşit çekirdek modülüne ihtiyacınız var. Bunu aldıktan sonra, çok zor değil, bir dizi MSR var.

Ayrıca, çekirdek modülünü kullanmadan değerleri okumak için/dev/cpu/core-number/msr komutunu da kullanabilirsiniz.

Bunun nasıl yapılacağına dair tüm ayrıntıları açıklamak için biraz fazla soru var (Intel'in programcı el kitabının (Vol3) tüm bölümünü kopyalamayıncaya kadar - sanmıyorum. biz burada istiyoruz ...)