On an Intel or AMD x86-64 system running Linux, where/how can I find out the number of hardware performance counters that my CPU has?
I would like to use the Linux perf
tool to gather hardware performance counter data while executing some applications. The perf wiki's tutorial says that if I specify (using the -e
flag to perf stat
or perf record
) more hardware events than there are performance counters in my CPU, then these events will be multiplexed over the counters during the execution, allowing them to all be tracked during a single perf
command, but possibly reducing accuracy because not all counters are active all the time. (Note that I am concerned with hardware events here, such as for cache and TLB behavior - I know that a large/unlimited number of kernel software tracepoints can be tracked without inaccuracy).
If I find out my processor model, is there an Intel/AMD website where I can find this information? Is there a simple command that I can run on the system to check the number of hardware counters? I've examined the output of cat /proc/cpuinfo
and x86info -a
, but couldn't find this information.
Number Hardware Counters : 11
is the sum offixed counters
andgeneral-purpose
counters which in many architectures are 3 and 8. So theNumber of Hardware Counters
on what we see above is 11 per core. Right? – Eugenol