-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf: add qcom l2 cache perf events driver
Adds perf events support for L2 cache PMU. The L2 cache PMU driver is named 'l2cache_0' and can be used with perf events to profile L2 events such as cache hits and misses on Qualcomm Technologies processors. Reviewed-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Neil Leeder <nleeder@codeaurora.org> [will: minimise nesting in l2_cache_associate_cpu_with_cluster] [will: use kstrtoul for unsigned long, remove redunant .owner setting] Signed-off-by: Will Deacon <will.deacon@arm.com>
- Loading branch information
Neil Leeder
authored and
Will Deacon
committed
Feb 8, 2017
1 parent
fe0a7ef
commit 21bdbb7
Showing
5 changed files
with
1,062 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
Qualcomm Technologies Level-2 Cache Performance Monitoring Unit (PMU) | ||
===================================================================== | ||
|
||
This driver supports the L2 cache clusters found in Qualcomm Technologies | ||
Centriq SoCs. There are multiple physical L2 cache clusters, each with their | ||
own PMU. Each cluster has one or more CPUs associated with it. | ||
|
||
There is one logical L2 PMU exposed, which aggregates the results from | ||
the physical PMUs. | ||
|
||
The driver provides a description of its available events and configuration | ||
options in sysfs, see /sys/devices/l2cache_0. | ||
|
||
The "format" directory describes the format of the events. | ||
|
||
Events can be envisioned as a 2-dimensional array. Each column represents | ||
a group of events. There are 8 groups. Only one entry from each | ||
group can be in use at a time. If multiple events from the same group | ||
are specified, the conflicting events cannot be counted at the same time. | ||
|
||
Events are specified as 0xCCG, where CC is 2 hex digits specifying | ||
the code (array row) and G specifies the group (column) 0-7. | ||
|
||
In addition there is a cycle counter event specified by the value 0xFE | ||
which is outside the above scheme. | ||
|
||
The driver provides a "cpumask" sysfs attribute which contains a mask | ||
consisting of one CPU per cluster which will be used to handle all the PMU | ||
events on that cluster. | ||
|
||
Examples for use with perf: | ||
|
||
perf stat -e l2cache_0/config=0x001/,l2cache_0/config=0x042/ -a sleep 1 | ||
|
||
perf stat -e l2cache_0/config=0xfe/ -C 2 sleep 1 | ||
|
||
The driver does not support sampling, therefore "perf record" will | ||
not work. Per-task perf sessions are not supported. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
obj-$(CONFIG_ARM_PMU) += arm_pmu.o | ||
obj-$(CONFIG_QCOM_L2_PMU) += qcom_l2_pmu.o | ||
obj-$(CONFIG_XGENE_PMU) += xgene_pmu.o |
Oops, something went wrong.