Dobře, takže myslím, že jsem na to přišel.
Pro počítač Intel, který používám, je formát následující:<umask><eventselector>
kde obě jsou hexadecimální hodnoty. Úvodní nuly umask lze vypustit, ale ne pro selektor události.
Tedy pro událost 0xB0
s maskou 0x01
Mohu zavolat:
perf record -e r1B0 ./mytestapp someargs
Nepodařilo se mi najít jeho přesnou analýzu v kódu jádra perf (je tu nějaký hacker jádra?), ale našel jsem tyto zdroje:
- Popis použití výkonu s nezpracovanými událostmi v časopise c't 13/03 (vyžadováno předplatné), který popisuje některé nezpracované události s jejich popisem z Intel Architecture Software Developers Manuel (Vol 3b)
- Oprava v mailing listu jádra, pojednávající o správném způsobu dokumentování. Specifikovalo, že výše uvedený vzor byl „... byl specifický pro x86 a v tom neúplný“
- (Aktualizováno) Manuálová stránka novějších verzí ukazuje příklad na počítačích Intel:
man perf-list
Aktualizovat :Jak bylo uvedeno v komentářích (děkujeme!), překladač libpfm lze použít k získání správného deskriptoru události. Webová stránka odkazovaná v komentářích (Bojan Nikolic:Jak monitorovat celou řadu událostí výkonu CPU), objevená uživatelem 'osgx', to vysvětluje podrobněji.
Zdá se, že můžete použít také:
perf record -e cpu/event=0xB1,umask=0x1/u ./mytestapp someargs
Nevím, kde je tato syntaxe zdokumentována.
Pravděpodobně můžete použít i ostatní argumenty (edge, inv, cmask).