lkml.org 
[lkml]   [2023]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 1/4] arm_pmu: Add PERF_PMU_CAP_EXTENDED_HW_TYPE capability
    Date
    This capability gives us the ability to open PERF_TYPE_HARDWARE and
    PERF_TYPE_HW_CACHE events on a specific PMU for free. All the
    implementation is contained in the Perf core and tool code so no change
    to the Arm PMU driver is needed.

    The following basic use case now results in Perf opening the event on
    all PMUs rather than picking only one in an unpredictable way:

    $ perf stat -e cycles -- taskset --cpu-list 0,1 stress -c 2

    Performance counter stats for 'taskset --cpu-list 0,1 stress -c 2':

    963279620 armv8_cortex_a57/cycles/ (99.19%)
    752745657 armv8_cortex_a53/cycles/ (94.80%)

    Fixes: 55bcf6ef314a ("perf: Extend PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE")
    Suggested-by: Ian Rogers <irogers@google.com>
    Acked-by: Ian Rogers <irogers@google.com>
    Signed-off-by: James Clark <james.clark@arm.com>
    ---
    drivers/perf/arm_pmu.c | 7 ++++++-
    1 file changed, 6 insertions(+), 1 deletion(-)

    diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
    index f6ccb2cd4dfc..2e79201daa4a 100644
    --- a/drivers/perf/arm_pmu.c
    +++ b/drivers/perf/arm_pmu.c
    @@ -880,8 +880,13 @@ struct arm_pmu *armpmu_alloc(void)
    * configuration (e.g. big.LITTLE). This is not an uncore PMU,
    * and we have taken ctx sharing into account (e.g. with our
    * pmu::filter callback and pmu::event_init group validation).
    + *
    + * PERF_PMU_CAP_EXTENDED_HW_TYPE is required to open
    + * PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE events on a
    + * specific PMU.
    */
    - .capabilities = PERF_PMU_CAP_HETEROGENEOUS_CPUS | PERF_PMU_CAP_EXTENDED_REGS,
    + .capabilities = PERF_PMU_CAP_HETEROGENEOUS_CPUS | PERF_PMU_CAP_EXTENDED_REGS |
    + PERF_PMU_CAP_EXTENDED_HW_TYPE,
    };

    pmu->attr_groups[ARMPMU_ATTR_GROUP_COMMON] =
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-07-24 15:49    [W:2.239 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site