lkml.org 
[lkml]   [2013]   [Feb]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[tip:perf/core] perf/POWER7: Make some POWER7 events available in sysfs
    Commit-ID:  886c3b2d677fe248cce8101fa66a1b3e05c3ba16
    Gitweb: http://git.kernel.org/tip/886c3b2d677fe248cce8101fa66a1b3e05c3ba16
    Author: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    AuthorDate: Tue, 22 Jan 2013 22:25:29 -0800
    Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
    CommitDate: Thu, 31 Jan 2013 13:07:51 -0300

    perf/POWER7: Make some POWER7 events available in sysfs

    Make some POWER7-specific perf events available in sysfs.

    $ /bin/ls -1 /sys/bus/event_source/devices/cpu/events/
    branch-instructions
    branch-misses
    cache-misses
    cache-references
    cpu-cycles
    instructions
    PM_BRU_FIN
    PM_BRU_MPRED
    PM_CMPLU_STALL
    PM_CYC
    PM_GCT_NOSLOT_CYC
    PM_INST_CMPL
    PM_LD_MISS_L1
    PM_LD_REF_L1
    stalled-cycles-backend
    stalled-cycles-frontend

    where the 'PM_*' events are POWER specific and the others are the
    generic events.

    This will enable users to specify these events with their symbolic
    names rather than with their raw code.

    perf stat -e 'cpu/PM_CYC' ...

    Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Anton Blanchard <anton@au1.ibm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Robert Richter <robert.richter@amd.com>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: linuxppc-dev@ozlabs.org
    Link: http://lkml.kernel.org/r/20130123062528.GE13720@us.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    ---
    arch/powerpc/include/asm/perf_event_server.h | 3 +++
    arch/powerpc/perf/power7-pmu.c | 18 ++++++++++++++++++
    2 files changed, 21 insertions(+)

    diff --git a/arch/powerpc/include/asm/perf_event_server.h b/arch/powerpc/include/asm/perf_event_server.h
    index b9b6c55..b29fcc6 100644
    --- a/arch/powerpc/include/asm/perf_event_server.h
    +++ b/arch/powerpc/include/asm/perf_event_server.h
    @@ -132,3 +132,6 @@ extern ssize_t power_events_sysfs_show(struct device *dev,

    #define GENERIC_EVENT_ATTR(_name, _id) EVENT_ATTR(_name, _id, _g)
    #define GENERIC_EVENT_PTR(_id) EVENT_PTR(_id, _g)
    +
    +#define POWER_EVENT_ATTR(_name, _id) EVENT_ATTR(PM_##_name, _id, _p)
    +#define POWER_EVENT_PTR(_id) EVENT_PTR(_id, _p)
    diff --git a/arch/powerpc/perf/power7-pmu.c b/arch/powerpc/perf/power7-pmu.c
    index 269bf24..b554879 100644
    --- a/arch/powerpc/perf/power7-pmu.c
    +++ b/arch/powerpc/perf/power7-pmu.c
    @@ -384,6 +384,15 @@ GENERIC_EVENT_ATTR(cache-misses, LD_MISS_L1);
    GENERIC_EVENT_ATTR(branch-instructions, BRU_FIN);
    GENERIC_EVENT_ATTR(branch-misses, BRU_MPRED);

    +POWER_EVENT_ATTR(CYC, CYC);
    +POWER_EVENT_ATTR(GCT_NOSLOT_CYC, GCT_NOSLOT_CYC);
    +POWER_EVENT_ATTR(CMPLU_STALL, CMPLU_STALL);
    +POWER_EVENT_ATTR(INST_CMPL, INST_CMPL);
    +POWER_EVENT_ATTR(LD_REF_L1, LD_REF_L1);
    +POWER_EVENT_ATTR(LD_MISS_L1, LD_MISS_L1);
    +POWER_EVENT_ATTR(BRU_FIN, BRU_FIN)
    +POWER_EVENT_ATTR(BRU_MPRED, BRU_MPRED);
    +
    static struct attribute *power7_events_attr[] = {
    GENERIC_EVENT_PTR(CYC),
    GENERIC_EVENT_PTR(GCT_NOSLOT_CYC),
    @@ -393,6 +402,15 @@ static struct attribute *power7_events_attr[] = {
    GENERIC_EVENT_PTR(LD_MISS_L1),
    GENERIC_EVENT_PTR(BRU_FIN),
    GENERIC_EVENT_PTR(BRU_MPRED),
    +
    + POWER_EVENT_PTR(CYC),
    + POWER_EVENT_PTR(GCT_NOSLOT_CYC),
    + POWER_EVENT_PTR(CMPLU_STALL),
    + POWER_EVENT_PTR(INST_CMPL),
    + POWER_EVENT_PTR(LD_REF_L1),
    + POWER_EVENT_PTR(LD_MISS_L1),
    + POWER_EVENT_PTR(BRU_FIN),
    + POWER_EVENT_PTR(BRU_MPRED),
    NULL
    };


    \
     
     \ /
      Last update: 2013-02-01 12:46    [W:3.177 / U:0.692 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site