arm-developer-tools / windowsperf

WindowsPerf is (Linux perf inspired) Windows on Arm performance profiling tool
BSD 3-Clause "New" or "Revised" License
10 stars 3 forks source link

Remove restriction on maximum number of core events #28

Open PrzemekWirkus opened 1 month ago

PrzemekWirkus commented 1 month ago

Currently we have hard limit on how many core PMU events Kernel Driver can count (and multiplex). In some situations number of core events can be insufficient.

[FutureDev] Arm Telemetry Solution metrics and other methodologies keep evolving we would need to be able to handle more events. In theory CPUs can have up to 31 GPCs (General Purpose Counters).

Number of events is specified with wperf padding algorithm, see ….. and with CLI (using -e).

wperf stat -e e0,e1,e2,e3.....,e127

Background

Currently we allocate up to MAX_MANAGED_CORE_EVENTS for user events, see https://gitlab.com/Linaro/WindowsPerf/windowsperf/-/blob/main/wperf-common/macros.h?ref_type=heads#L46:

wperf-common/macros.h:46:#define MAX_MANAGED_CORE_EVENTS             128

This is not as flexible solution and can be changed so that we can dynamically allocate number of events.

Notes:

Definition of done

PrzemekWirkus commented 1 month ago

This was investigated by Kush and we have internal Wiki page with this design.