Advanced configuration
You can override the default settings used by Arm® MAP when making
perf_event_open
calls. Specify one or more flags in a preamble section in square brackets at the start of the perf metrics definition string (either on the command line or at the top of a template file).
/path/to/forge/bin/map --profile --target-host=myarmhost \
--perf-metrics="[optional,noinherit]; instructions; cpu-cycles"
Possible options are:
- [optional]: Do not abort the program if the requested metrics cannot
be collected. Set this if you want to continue profiling even if the
no Perf metric results is returned.
- [noinherit]: Disable multithreading support (new threads will not
inherit the event counter configuration). If you specified events,
they are only collected on the main thread (in the case of MPI
programs, the thread that called
MPI_thread_init
).
- [nopinned]: Disable pinning events on the PMU. If you have specified
this, event counting might be multiplexed. We recommend that you do not do
this as it interacts poorly with the Arm® Forge sampling strategy.
- [noexclude=kernel]: Do not exclude kernel events that happen in
kernel space. This might require a more permissive
perf_event_paranoid
level.
- [noexclude=hv]: Do not exclude events that happen in the hypervisor.
This is mainly for PMUs that have built-in support for handling this
(such as IBM Power). Most machines require extra support for handling
hypervisor measurements.
- [noexclude=idle]: Do not exclude counting software events when the
CPU is running the idle task. This is only relevant for software
events.