Stephane:

Yes, on further investigation it does appear that the kernel code should
do the right thing and use the fixed counter to make room for another
event on the programmable counter.  

                 Carl Love

On Wed, 2013-05-01 at 02:27 +0200, Stephane Eranian wrote:
> On Tue, Apr 30, 2013 at 5:31 PM, Carl E. Love <c...@linux.vnet.ibm.com> wrote:
> > Stephane
> >
> > I created the following patch for the IBM Power 7 and Power 7+ systems.
> > Please review and if acceptable commit it to the perfmon 2 source code
> > tree.  Thank you.
> >
> >              Carl Love
> > -------------------------------------------------------------------------
> >
> > Power 7, change the code for the PM_RUN_INST_CMPL and PM_RUN_CYC events
> >
> > The Power 7 processor has four programmable counters and two fixed counters.
> > Currently, the codes returned for PM_RUN_INST_CMPL and PM_RUN_CYC are for
> > the programmable counters.  This patch changes the returned code to the
> > fixed counter code thus freeing up the programmable counters for other
> > events.
> >
> Something not clear to me here.
> perf_event in the kernel does the event scheduling. So is it the case that
> on Power, it is not able to recognize the event as also being supported
> by a fixed counter?
> 
> > Signed-off-by: Carl Love <ca...@us.ibm.com>
> > ---
> >  lib/events/power7_events.h | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/lib/events/power7_events.h b/lib/events/power7_events.h
> > index 7bfdf15..a9afffe 100644
> > --- a/lib/events/power7_events.h
> > +++ b/lib/events/power7_events.h
> > @@ -1299,7 +1299,7 @@ static const pme_power_entry_t power7_pe[] = {
> >         },
> >         [ POWER7_PME_PM_RUN_INST_CMPL ] = {
> >                 .pme_name = "PM_RUN_INST_CMPL",
> > -               .pme_code = 0x400fa,
> > +               .pme_code = 0x500fa,
> >                 .pme_short_desc = "Run_Instructions",
> >                 .pme_long_desc = "Number of run instructions completed. ",
> >         },
> > @@ -2613,7 +2613,7 @@ static const pme_power_entry_t power7_pe[] = {
> >         },
> >         [ POWER7_PME_PM_RUN_CYC ] = {
> >                 .pme_name = "PM_RUN_CYC",
> > -               .pme_code = 0x200f4,
> > +               .pme_code = 0x600f4,
> >                 .pme_short_desc = "Run_cycles",
> >                 .pme_long_desc = "Processor Cycles gated by the run latch.  
> > Operating systems use the run latch to indicate when they are doing useful 
> > work.  The run latch is typically cleared in the OS idle loop.  Gating by 
> > the run latch filters out the idle loop.",
> >         },
> > --
> > 1.7.12.rc1.22.gbfbf4d4
> >
> >
> >
> >
> > ------------------------------------------------------------------------------
> > Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
> > Get 100% visibility into your production application - at no cost.
> > Code-level diagnostics for performance bottlenecks with <2% overhead
> > Download for free and get started troubleshooting in minutes.
> > http://p.sf.net/sfu/appdyn_d2d_ap1
> > _______________________________________________
> > perfmon2-devel mailing list
> > perfmon2-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/perfmon2-devel
> 



------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to