Oke, jadi saya kira saya sudah menemukan jawabannya.
Untuk mesin Intel yang saya gunakan, formatnya adalah sebagai berikut:<umask><eventselector>
di mana keduanya adalah nilai heksadesimal. Angka nol di depan umask dapat dihilangkan, tetapi tidak untuk pemilih peristiwa.
Jadi untuk event 0xB0
dengan topeng 0x01
Saya dapat menelepon:
perf record -e r1B0 ./mytestapp someargs
Saya tidak dapat menemukan penguraian yang tepat dalam kode kernel perf (adakah peretas kernel di sini?), tetapi saya menemukan sumber-sumber ini:
- Deskripsi penggunaan perf dengan kejadian mentah di majalah c't 13/03 (perlu berlangganan), yang menjelaskan beberapa kejadian mentah dengan deskripsinya dari Intel Architecture Software Developers Manuel (Vol 3b)
- Sebuah tambalan di milis kernel, membahas cara yang tepat untuk mendokumentasikannya. Ini menetapkan bahwa pola di atas adalah "... spesifik x86 dan tidak lengkap pada saat itu"
- (Diperbarui) Halaman manual versi yang lebih baru menampilkan contoh pada mesin Intel:
man perf-list
Perbarui :Seperti yang ditunjukkan di komentar (terima kasih!), Penerjemah libpfm dapat digunakan untuk mendapatkan deskriptor peristiwa yang tepat. Situs web yang ditautkan dalam komentar (Bojan Nikolic:Cara memantau rangkaian lengkap peristiwa kinerja CPU), ditemukan oleh pengguna 'osgx' menjelaskannya lebih detail.
Sepertinya Anda juga dapat menggunakan:
perf record -e cpu/event=0xB1,umask=0x1/u ./mytestapp someargs
Saya tidak tahu di mana sintaks ini didokumentasikan.
Anda mungkin juga dapat menggunakan argumen lain (Edge, inv, cmask).