Message ID | 1380672911-12812-3-git-send-email-sukadev@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
On Tue, Oct 01, 2013 at 05:15:03PM -0700, Sukadev Bhattiprolu wrote: > Export generic perf events for Power8 in sysfs. > > Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> > Reviewed-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> > --- > arch/powerpc/perf/power8-pmu.c | 23 +++++++++++++++++++++++ > 1 file changed, 23 insertions(+) > > diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c > index 976c203..b991b2e 100644 > --- a/arch/powerpc/perf/power8-pmu.c > +++ b/arch/powerpc/perf/power8-pmu.c > @@ -510,6 +510,28 @@ static void power8_disable_pmc(unsigned int pmc, unsigned long mmcr[]) > mmcr[1] &= ~(0xffUL << MMCR1_PMCSEL_SHIFT(pmc + 1)); > } > > +GENERIC_EVENT_ATTR(cpu-cyles, PM_CYC); > +GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_GCT_NOSLOT_CYC); > +GENERIC_EVENT_ATTR(stalled-cycles-backend, PM_CMPLU_STALL); > +GENERIC_EVENT_ATTR(instructions, PM_INST_CMPL); > +GENERIC_EVENT_ATTR(branch-instructions, PM_BRU_FIN); > +GENERIC_EVENT_ATTR(branch-misses, PM_BR_MPRED_CMPL); And here you use PM_ not PME_ - I'm confused. cheers
Michael Ellerman [michael@ellerman.id.au] wrote: | On Tue, Oct 01, 2013 at 05:15:03PM -0700, Sukadev Bhattiprolu wrote: | > Export generic perf events for Power8 in sysfs. | > | > Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> | > Reviewed-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> | > --- | > arch/powerpc/perf/power8-pmu.c | 23 +++++++++++++++++++++++ | > 1 file changed, 23 insertions(+) | > | > diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c | > index 976c203..b991b2e 100644 | > --- a/arch/powerpc/perf/power8-pmu.c | > +++ b/arch/powerpc/perf/power8-pmu.c | > @@ -510,6 +510,28 @@ static void power8_disable_pmc(unsigned int pmc, unsigned long mmcr[]) | > mmcr[1] &= ~(0xffUL << MMCR1_PMCSEL_SHIFT(pmc + 1)); | > } | > | > +GENERIC_EVENT_ATTR(cpu-cyles, PM_CYC); | > +GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_GCT_NOSLOT_CYC); | > +GENERIC_EVENT_ATTR(stalled-cycles-backend, PM_CMPLU_STALL); | > +GENERIC_EVENT_ATTR(instructions, PM_INST_CMPL); | > +GENERIC_EVENT_ATTR(branch-instructions, PM_BRU_FIN); | > +GENERIC_EVENT_ATTR(branch-misses, PM_BR_MPRED_CMPL); | | And here you use PM_ not PME_ - I'm confused. It is a bit confusing. The GENERIC_EVENT_ATTR() adds the PME_ prefix. I kept this change minimal for now, since we will have to revisit this once the Power8 events are finalized. Sukadev
On Thu, Oct 03, 2013 at 10:57:57AM -0700, Sukadev Bhattiprolu wrote: > Michael Ellerman [michael@ellerman.id.au] wrote: > | On Tue, Oct 01, 2013 at 05:15:03PM -0700, Sukadev Bhattiprolu wrote: > | > Export generic perf events for Power8 in sysfs. > | > > | > Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> > | > Reviewed-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> > | > --- > | > arch/powerpc/perf/power8-pmu.c | 23 +++++++++++++++++++++++ > | > 1 file changed, 23 insertions(+) > | > > | > diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c > | > index 976c203..b991b2e 100644 > | > --- a/arch/powerpc/perf/power8-pmu.c > | > +++ b/arch/powerpc/perf/power8-pmu.c > | > @@ -510,6 +510,28 @@ static void power8_disable_pmc(unsigned int pmc, unsigned long mmcr[]) > | > mmcr[1] &= ~(0xffUL << MMCR1_PMCSEL_SHIFT(pmc + 1)); > | > } > | > > | > +GENERIC_EVENT_ATTR(cpu-cyles, PM_CYC); > | > +GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_GCT_NOSLOT_CYC); > | > +GENERIC_EVENT_ATTR(stalled-cycles-backend, PM_CMPLU_STALL); > | > +GENERIC_EVENT_ATTR(instructions, PM_INST_CMPL); > | > +GENERIC_EVENT_ATTR(branch-instructions, PM_BRU_FIN); > | > +GENERIC_EVENT_ATTR(branch-misses, PM_BR_MPRED_CMPL); > | > | And here you use PM_ not PME_ - I'm confused. > > It is a bit confusing. The GENERIC_EVENT_ATTR() adds the PME_ prefix. So doesn't that give you PME_PM_CYC ? cheers
diff --git a/arch/powerpc/perf/power8-pmu.c b/arch/powerpc/perf/power8-pmu.c index 976c203..b991b2e 100644 --- a/arch/powerpc/perf/power8-pmu.c +++ b/arch/powerpc/perf/power8-pmu.c @@ -510,6 +510,28 @@ static void power8_disable_pmc(unsigned int pmc, unsigned long mmcr[]) mmcr[1] &= ~(0xffUL << MMCR1_PMCSEL_SHIFT(pmc + 1)); } +GENERIC_EVENT_ATTR(cpu-cyles, PM_CYC); +GENERIC_EVENT_ATTR(stalled-cycles-frontend, PM_GCT_NOSLOT_CYC); +GENERIC_EVENT_ATTR(stalled-cycles-backend, PM_CMPLU_STALL); +GENERIC_EVENT_ATTR(instructions, PM_INST_CMPL); +GENERIC_EVENT_ATTR(branch-instructions, PM_BRU_FIN); +GENERIC_EVENT_ATTR(branch-misses, PM_BR_MPRED_CMPL); + +static struct attribute *power8_events_attr[] = { + GENERIC_EVENT_PTR(PM_CYC), + GENERIC_EVENT_PTR(PM_GCT_NOSLOT_CYC), + GENERIC_EVENT_PTR(PM_CMPLU_STALL), + GENERIC_EVENT_PTR(PM_INST_CMPL), + GENERIC_EVENT_PTR(PM_BRU_FIN), + GENERIC_EVENT_PTR(PM_BR_MPRED_CMPL), + NULL +}; + +static struct attribute_group power8_pmu_events_group = { + .name = "events", + .attrs = power8_events_attr, +}; + PMU_FORMAT_ATTR(event, "config:0-49"); PMU_FORMAT_ATTR(pmcxsel, "config:0-7"); PMU_FORMAT_ATTR(mark, "config:8"); @@ -546,6 +568,7 @@ struct attribute_group power8_pmu_format_group = { static const struct attribute_group *power8_pmu_attr_groups[] = { &power8_pmu_format_group, + &power8_pmu_events_group, NULL, };