Skip to content

Commit 2700df7

Browse files
committed
ui: Add Arm PMU recorder plugin
Add `com.arm.ArmPmuRecorder` plugin that registers a new PMU recording subpage in the recording section to configure CPU PMUs to capture The PMU page lets users load local Arm telemetry CPU specs and create multiple recording configurations. Each configuration can select the CPU model, optional target CPU list, which PMUs and sampling configuration to use. In the UI, users can select PMUs to record by choosing metrics applicable to the selected CPU. Two metric views are available: a flat list and a tree view that follows the topdown specification for the chosen CPU. The plugin depends on ArmTelemetrySpecPlugin for spec parsing and validation, and updates the shared telemetry spec registry so the loaded specs are available to other Arm telemetry features.
1 parent ea00018 commit 2700df7

4 files changed

Lines changed: 1186 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright (C) 2026 The Android Open Source Project
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
import {App} from '../../public/app';
16+
import {PerfettoPlugin} from '../../public/plugin';
17+
import RecordTraceV2Plugin, {
18+
registerRecordSubpageProvider,
19+
} from '../dev.perfetto.RecordTraceV2';
20+
import ArmTelemetrySpecPlugin from '../com.arm.ArmTelemetrySpec';
21+
import {pmuRecordSection} from './pmu';
22+
23+
export default class implements PerfettoPlugin {
24+
static readonly id = 'com.arm.ArmPmuRecorder';
25+
static readonly description = 'Arm PMU recording page';
26+
static readonly dependencies = [RecordTraceV2Plugin, ArmTelemetrySpecPlugin];
27+
28+
static onActivate(app: App): void {
29+
registerRecordSubpageProvider((recMgr) => pmuRecordSection(recMgr, app));
30+
}
31+
}

0 commit comments

Comments
 (0)