Windows Perf (WPERF)

Nov 22, 2023 Release 3.2.1. See release notes here.

Oct 16, 2023 Release 3.2.0. See release notes here.

Sep 13, 2023 Released 3.0.0. See release notes here.

Aug 2, 2023 Released 2.5.1. See release notes here.

Jul 26, 2023 Released 2.5.0. See release notes here.

Apr 12, 2023 Released 2.4.0. See release notes here.

Dec 31, 2022 First major release of Windows Perf. See more info in Gitlab.

Nov 1, 2022 Code is open sourced and the team is picking up speed

Sep 16, 2022 Project work process and Jira cards created for initial work.

Introduction

WindowsPerf is a (Linux perf inspired) lightweight Windows on Arm performance profiling tool. Profiling is based on ARM64 PMU (Performance Monitor Unit) and its hardware counters. Currently, WindowsPerf is in the early stages of development, but it already supports the counting model for obtaining aggregate counts of occurrences of special events, and sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and/or instruction levels.

WindowsPerf is using a custom Kernel mode driver model to pass Windows Kernel API limitations such as lack of counter multiplexing or support for custom IP blocks. We are currently driving our architecture to a device-tree like approach which will allow users to create from template their own Kernel driver and instrument counters in their own custom IP block on WOA.

WindowsPerf can instrument Arm PMU performance counters. As of now, it can also collect:

  • Core PMU counters for all or specified CPU core, this includes core PMU counting, event multiplexing & grouping, and timeline mode.

  • unCore PMU counters, now system cache (DSU-520) and DRAM (DMC-620) are supported.

WindowsPerf sub-projects

Related Projects

https://linaro.atlassian.net/wiki/spaces/WOAR

https://linaro.atlassian.net/wiki/spaces/CLIENTPC

Roadmap

Current Plan

Backlog

Accomplished

Active Members