The performance event hardware counter codes used in src/procsmpl.cpp are specific to the Sandy Bridge generation of Intel processors. This results in an error being printed when examples/api_test is run (in addition to the performance event data being presumably lost) on a Westmere machine:
$ ./examples/api_test
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
perf_event_open: Invalid argument
0
These hardware counter encodings can be found on any architecture using a tool like perfmon2. Automated hardware architecture detection is desired in Mitos in order to allow it to be used out-of-the-box on architectures other than Sandy Bridge.
The performance event hardware counter codes used in src/procsmpl.cpp are specific to the Sandy Bridge generation of Intel processors. This results in an error being printed when
examples/api_testis run (in addition to the performance event data being presumably lost) on a Westmere machine:These hardware counter encodings can be found on any architecture using a tool like perfmon2. Automated hardware architecture detection is desired in Mitos in order to allow it to be used out-of-the-box on architectures other than Sandy Bridge.