Thread: [perfmon2] [PATCH 1/2] Fix installation to honor PREFIX and LIBDIR
Status: Beta
Brought to you by:
seranian
From: Maynard J. <may...@us...> - 2012-12-04 23:44:24
|
Fix installation to honor PREFIX and LIBDIR This patch changes the behavior of 'make install' so that a user can pass PREFIX to have the libpfm4 files installed somewhere other than the standard /usr/local directory. This patch also allows for a user to pass LIBDIR to specify a non-standard install directory for the libpfm library files. The standard library install directory is <install-dir>/lib, but on some architectures (including x86_64 and ppc64), 64-bit libraries are typically installed into a "lib64" subdirectory. This patch also removes the invocation of ldconfig from the lib/Makefile install target, since that results in and error when a non-root user is trying to install. The README was updated to document the three changes made in this patch. Signed-off-by: Maynard Johnson <may...@us...> --- README | 14 ++++++++++++++ config.mk | 8 ++++++-- lib/Makefile | 1 - 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/README b/README index 70bb052..cf2fcc3 100644 --- a/README +++ b/README @@ -104,6 +104,20 @@ INSTALLATION - type make - type make install + - The default installation location is /usr/local. You can specify + a diffierent install location as follows: + $ make PREFIX=<install-dir> install + Depending on your install location, you may need to run the 'ldconfig' + command or use LD_LIBRARY_PATH when you build and run tools that + link to the libpfm4 library. + + - By default, libpfm library files are installed in <install-dir>/lib. + If 'make' builds 64-bit libraries on your system, and your target + architecture expects 64-bit libraries to be located in a library + named "lib64", then you should use the LIBDIR variable when installing, + as follows: + $ make LIBDIR=<install-dir>/lib64 install + - To compile and install the Python bindings, you need to go to the python sub-directory and type make. Python may not be systematically built. diff --git a/config.mk b/config.mk index 9e5504c..1a38d87 100644 --- a/config.mk +++ b/config.mk @@ -101,8 +101,12 @@ AGE=0 # # Where should things (lib, headers, man) go in the end. # -PREFIX=/usr/local -LIBDIR=$(PREFIX)/lib +ifeq (${PREFIX},) + PREFIX=/usr/local +endif +ifeq (${LIBDIR},) + LIBDIR=$(PREFIX)/lib +endif INCDIR=$(PREFIX)/include MANDIR=$(PREFIX)/share/man DOCDIR=$(PREFIX)/share/doc/libpfm-$(VERSION).$(REVISION).$(AGE) diff --git a/lib/Makefile b/lib/Makefile index d2f00a9..1df6894 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -281,7 +281,6 @@ ifeq ($(CONFIG_PFMLIB_SHARED),y) $(INSTALL) $(SLIBPFM) $(DESTDIR)$(LIBDIR) cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) $(VLIBPFM) cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) libpfm.$(SOLIBEXT) - $(LDCONFIG) endif tags: -- 1.7.1 |
From: Stephane E. <er...@go...> - 2012-12-06 05:10:48
|
On Wed, Dec 5, 2012 at 12:43 AM, Maynard Johnson <may...@us...> wrote: > Fix installation to honor PREFIX and LIBDIR > > This patch changes the behavior of 'make install' so > that a user can pass PREFIX to have the libpfm4 files > installed somewhere other than the standard /usr/local > directory. > > This patch also allows for a user to pass LIBDIR to > specify a non-standard install directory for the > libpfm library files. The standard library install > directory is <install-dir>/lib, but on some architectures > (including x86_64 and ppc64), 64-bit libraries are > typically installed into a "lib64" subdirectory. > > This patch also removes the invocation of ldconfig from > the lib/Makefile install target, since that results in > and error when a non-root user is trying to install. > > The README was updated to document the three changes > made in this patch. > > Signed-off-by: Maynard Johnson <may...@us...> > --- > README | 14 ++++++++++++++ > config.mk | 8 ++++++-- > lib/Makefile | 1 - > 3 files changed, 20 insertions(+), 3 deletions(-) > > diff --git a/README b/README > index 70bb052..cf2fcc3 100644 > --- a/README > +++ b/README > @@ -104,6 +104,20 @@ INSTALLATION > - type make > - type make install > > + - The default installation location is /usr/local. You can specify > + a diffierent install location as follows: > + $ make PREFIX=<install-dir> install > + Depending on your install location, you may need to run the 'ldconfig' > + command or use LD_LIBRARY_PATH when you build and run tools that > + link to the libpfm4 library. > + > + - By default, libpfm library files are installed in <install-dir>/lib. > + If 'make' builds 64-bit libraries on your system, and your target > + architecture expects 64-bit libraries to be located in a library > + named "lib64", then you should use the LIBDIR variable when installing, > + as follows: > + $ make LIBDIR=<install-dir>/lib64 install > + > - To compile and install the Python bindings, you need to go to the > python sub-directory and type make. Python may not be systematically > built. > diff --git a/config.mk b/config.mk > index 9e5504c..1a38d87 100644 > --- a/config.mk > +++ b/config.mk > @@ -101,8 +101,12 @@ AGE=0 > # > # Where should things (lib, headers, man) go in the end. > # > -PREFIX=/usr/local > -LIBDIR=$(PREFIX)/lib > +ifeq (${PREFIX},) > + PREFIX=/usr/local > +endif What's the point of the ifeq compared to leaving PREFIX=/usr/local? The user can always override from cmdline: make PREFIX=/tmp/foo > +ifeq (${LIBDIR},) > + LIBDIR=$(PREFIX)/lib > +endif What's wrong with: make LIBDIR=/tmp/foo/lib64 PREFIX=/tmp/foo? > INCDIR=$(PREFIX)/include > MANDIR=$(PREFIX)/share/man > DOCDIR=$(PREFIX)/share/doc/libpfm-$(VERSION).$(REVISION).$(AGE) > diff --git a/lib/Makefile b/lib/Makefile > index d2f00a9..1df6894 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -281,7 +281,6 @@ ifeq ($(CONFIG_PFMLIB_SHARED),y) > $(INSTALL) $(SLIBPFM) $(DESTDIR)$(LIBDIR) > cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) $(VLIBPFM) > cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) libpfm.$(SOLIBEXT) > - $(LDCONFIG) > endif > > tags: > -- > 1.7.1 > > > > ------------------------------------------------------------------------------ > LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial > Remotely access PCs and mobile devices and provide instant support > Improve your efficiency, and focus on delivering more value-add services > Discover what IT Professionals Know. Rescue delivers > http://p.sf.net/sfu/logmein_12329d2d > _______________________________________________ > perfmon2-devel mailing list > per...@li... > https://lists.sourceforge.net/lists/listinfo/perfmon2-devel |
From: Maynard J. <may...@us...> - 2012-12-06 14:53:24
|
On 12/05/2012 11:10 PM, Stephane Eranian wrote: > On Wed, Dec 5, 2012 at 12:43 AM, Maynard Johnson <may...@us...> wrote: >> Fix installation to honor PREFIX and LIBDIR >> >> This patch changes the behavior of 'make install' so >> that a user can pass PREFIX to have the libpfm4 files >> installed somewhere other than the standard /usr/local >> directory. >> >> This patch also allows for a user to pass LIBDIR to >> specify a non-standard install directory for the >> libpfm library files. The standard library install >> directory is <install-dir>/lib, but on some architectures >> (including x86_64 and ppc64), 64-bit libraries are >> typically installed into a "lib64" subdirectory. >> >> This patch also removes the invocation of ldconfig from >> the lib/Makefile install target, since that results in >> and error when a non-root user is trying to install. >> >> The README was updated to document the three changes >> made in this patch. >> >> Signed-off-by: Maynard Johnson <may...@us...> >> --- >> README | 14 ++++++++++++++ >> config.mk | 8 ++++++-- >> lib/Makefile | 1 - >> 3 files changed, 20 insertions(+), 3 deletions(-) >> >> diff --git a/README b/README >> index 70bb052..cf2fcc3 100644 >> --- a/README >> +++ b/README >> @@ -104,6 +104,20 @@ INSTALLATION >> - type make >> - type make install >> >> + - The default installation location is /usr/local. You can specify >> + a diffierent install location as follows: oops! typo --^ >> + $ make PREFIX=<install-dir> install >> + Depending on your install location, you may need to run the 'ldconfig' >> + command or use LD_LIBRARY_PATH when you build and run tools that >> + link to the libpfm4 library. >> + >> + - By default, libpfm library files are installed in <install-dir>/lib. >> + If 'make' builds 64-bit libraries on your system, and your target >> + architecture expects 64-bit libraries to be located in a library >> + named "lib64", then you should use the LIBDIR variable when installing, >> + as follows: >> + $ make LIBDIR=<install-dir>/lib64 install >> + >> - To compile and install the Python bindings, you need to go to the >> python sub-directory and type make. Python may not be systematically >> built. >> diff --git a/config.mk b/config.mk >> index 9e5504c..1a38d87 100644 >> --- a/config.mk >> +++ b/config.mk >> @@ -101,8 +101,12 @@ AGE=0 >> # >> # Where should things (lib, headers, man) go in the end. >> # >> -PREFIX=/usr/local >> -LIBDIR=$(PREFIX)/lib >> +ifeq (${PREFIX},) >> + PREFIX=/usr/local >> +endif > What's the point of the ifeq compared to leaving > PREFIX=/usr/local? The user can always override from cmdline: make > PREFIX=/tmp/foo Yeah, you're right. Dumb mistake. I got confused at first when trying various options to install into a location other than /usr/local. In particular, installing on ppc64 was problematic. For example, the following install attempt failed: -------------------------------- $ make BITMODE=64 PREFIX=/home/mpj/mylibpfm install installing in make[1]: Entering directory `/home/mpj/temp/libpfm-4.3.0/lib' building: libpfm.a libpfm.so.4.3.0 mkdir -p /lib64 install -m 644 libpfm.a /lib64 install: cannot create regular file `/lib64/libpfm.a': Permission denied make[1]: *** [install] Error 1 make[1]: Leaving directory `/home/mpj/temp/libpfm-4.3.0/lib' make: *** [install] Error 2 -------------------------------- In fact, my patch #2 of this 2 patch series resolved that issue, but I somehow misled myself to thinking I also needed the ifeq tests for PREFIX and LIBDIR. So, please ignore those two changes. Do you think the updates to the README are helpful? I know they would have been for me. ;-) And what's your opinion on removing the LDCONFIG invocation below? As I said in my patch description, running ldconfig will fail when you try to install libpfm as a non-root user. Thanks. -Maynard > >> +ifeq (${LIBDIR},) >> + LIBDIR=$(PREFIX)/lib >> +endif > > What's wrong with: make LIBDIR=/tmp/foo/lib64 PREFIX=/tmp/foo? > >> INCDIR=$(PREFIX)/include >> MANDIR=$(PREFIX)/share/man >> DOCDIR=$(PREFIX)/share/doc/libpfm-$(VERSION).$(REVISION).$(AGE) >> diff --git a/lib/Makefile b/lib/Makefile >> index d2f00a9..1df6894 100644 >> --- a/lib/Makefile >> +++ b/lib/Makefile >> @@ -281,7 +281,6 @@ ifeq ($(CONFIG_PFMLIB_SHARED),y) >> $(INSTALL) $(SLIBPFM) $(DESTDIR)$(LIBDIR) >> cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) $(VLIBPFM) >> cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) libpfm.$(SOLIBEXT) >> - $(LDCONFIG) >> endif >> >> tags: >> -- >> 1.7.1 >> >> >> >> ------------------------------------------------------------------------------ >> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial >> Remotely access PCs and mobile devices and provide instant support >> Improve your efficiency, and focus on delivering more value-add services >> Discover what IT Professionals Know. Rescue delivers >> http://p.sf.net/sfu/logmein_12329d2d >> _______________________________________________ >> perfmon2-devel mailing list >> per...@li... >> https://lists.sourceforge.net/lists/listinfo/perfmon2-devel > |
From: Stephane E. <er...@go...> - 2012-12-06 18:49:13
|
Maynard, Applied your README changes. Need to think a bit more about LDCONFIG. The reason I added this was because as root running just make install may not be enough to start using the library. If you install the library is a standard place, then running ldconfig is all you need. As a regular user you cannot run ldconfig and you have to use LD_LIBRARY_PATH. So maybe the Makefile could be smart and detect those conditions and possibly suggest what to do for regular users. On Thu, Dec 6, 2012 at 3:53 PM, Maynard Johnson <may...@us...> wrote: > On 12/05/2012 11:10 PM, Stephane Eranian wrote: >> On Wed, Dec 5, 2012 at 12:43 AM, Maynard Johnson <may...@us...> wrote: >>> Fix installation to honor PREFIX and LIBDIR >>> >>> This patch changes the behavior of 'make install' so >>> that a user can pass PREFIX to have the libpfm4 files >>> installed somewhere other than the standard /usr/local >>> directory. >>> >>> This patch also allows for a user to pass LIBDIR to >>> specify a non-standard install directory for the >>> libpfm library files. The standard library install >>> directory is <install-dir>/lib, but on some architectures >>> (including x86_64 and ppc64), 64-bit libraries are >>> typically installed into a "lib64" subdirectory. >>> >>> This patch also removes the invocation of ldconfig from >>> the lib/Makefile install target, since that results in >>> and error when a non-root user is trying to install. >>> >>> The README was updated to document the three changes >>> made in this patch. >>> >>> Signed-off-by: Maynard Johnson <may...@us...> >>> --- >>> README | 14 ++++++++++++++ >>> config.mk | 8 ++++++-- >>> lib/Makefile | 1 - >>> 3 files changed, 20 insertions(+), 3 deletions(-) >>> >>> diff --git a/README b/README >>> index 70bb052..cf2fcc3 100644 >>> --- a/README >>> +++ b/README >>> @@ -104,6 +104,20 @@ INSTALLATION >>> - type make >>> - type make install >>> >>> + - The default installation location is /usr/local. You can specify >>> + a diffierent install location as follows: > oops! typo --^ >>> + $ make PREFIX=<install-dir> install >>> + Depending on your install location, you may need to run the 'ldconfig' >>> + command or use LD_LIBRARY_PATH when you build and run tools that >>> + link to the libpfm4 library. >>> + >>> + - By default, libpfm library files are installed in <install-dir>/lib. >>> + If 'make' builds 64-bit libraries on your system, and your target >>> + architecture expects 64-bit libraries to be located in a library >>> + named "lib64", then you should use the LIBDIR variable when installing, >>> + as follows: >>> + $ make LIBDIR=<install-dir>/lib64 install >>> + >>> - To compile and install the Python bindings, you need to go to the >>> python sub-directory and type make. Python may not be systematically >>> built. >>> diff --git a/config.mk b/config.mk >>> index 9e5504c..1a38d87 100644 >>> --- a/config.mk >>> +++ b/config.mk >>> @@ -101,8 +101,12 @@ AGE=0 >>> # >>> # Where should things (lib, headers, man) go in the end. >>> # >>> -PREFIX=/usr/local >>> -LIBDIR=$(PREFIX)/lib >>> +ifeq (${PREFIX},) >>> + PREFIX=/usr/local >>> +endif >> What's the point of the ifeq compared to leaving >> PREFIX=/usr/local? The user can always override from cmdline: make >> PREFIX=/tmp/foo > > Yeah, you're right. Dumb mistake. I got confused at first when trying various options to install into a location other than /usr/local. In particular, installing on ppc64 was problematic. For example, the following install attempt failed: > > -------------------------------- > $ make BITMODE=64 PREFIX=/home/mpj/mylibpfm install > installing in > make[1]: Entering directory `/home/mpj/temp/libpfm-4.3.0/lib' > building: libpfm.a libpfm.so.4.3.0 > mkdir -p /lib64 > install -m 644 libpfm.a /lib64 > install: cannot create regular file `/lib64/libpfm.a': Permission denied > make[1]: *** [install] Error 1 > make[1]: Leaving directory `/home/mpj/temp/libpfm-4.3.0/lib' > make: *** [install] Error 2 > -------------------------------- > > In fact, my patch #2 of this 2 patch series resolved that issue, but I somehow misled myself to thinking I also needed the ifeq tests for PREFIX and LIBDIR. > > So, please ignore those two changes. Do you think the updates to the README are helpful? I know they would have been for me. ;-) > > And what's your opinion on removing the LDCONFIG invocation below? As I said in my patch description, running ldconfig will fail when you try to install libpfm as a non-root user. > > Thanks. > -Maynard > > >> >>> +ifeq (${LIBDIR},) >>> + LIBDIR=$(PREFIX)/lib >>> +endif >> >> What's wrong with: make LIBDIR=/tmp/foo/lib64 PREFIX=/tmp/foo? >> >>> INCDIR=$(PREFIX)/include >>> MANDIR=$(PREFIX)/share/man >>> DOCDIR=$(PREFIX)/share/doc/libpfm-$(VERSION).$(REVISION).$(AGE) >>> diff --git a/lib/Makefile b/lib/Makefile >>> index d2f00a9..1df6894 100644 >>> --- a/lib/Makefile >>> +++ b/lib/Makefile >>> @@ -281,7 +281,6 @@ ifeq ($(CONFIG_PFMLIB_SHARED),y) >>> $(INSTALL) $(SLIBPFM) $(DESTDIR)$(LIBDIR) >>> cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) $(VLIBPFM) >>> cd $(DESTDIR)$(LIBDIR); $(LN) $(SLIBPFM) libpfm.$(SOLIBEXT) >>> - $(LDCONFIG) >>> endif >>> >>> tags: >>> -- >>> 1.7.1 >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial >>> Remotely access PCs and mobile devices and provide instant support >>> Improve your efficiency, and focus on delivering more value-add services >>> Discover what IT Professionals Know. Rescue delivers >>> http://p.sf.net/sfu/logmein_12329d2d >>> _______________________________________________ >>> perfmon2-devel mailing list >>> per...@li... >>> https://lists.sourceforge.net/lists/listinfo/perfmon2-devel >> > |
From: Carl E. L. <ce...@li...> - 2012-12-06 19:05:22
|
LIBPFM 4, POWER 7: Add additional events to the list of available events This patch adds more events to the list for the POWER 7 processor. Signed-off-by: Carl Love <ce...@us...> --- lib/events/power7_events.h | 72 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/lib/events/power7_events.h b/lib/events/power7_events.h index d1c1c27..e51e407 100644 --- a/lib/events/power7_events.h +++ b/lib/events/power7_events.h @@ -557,6 +557,16 @@ #define POWER7_PME_PM_DTLB_MISS_16M 534 #define POWER7_PME_PM_LSU1_LMQ_LHR_MERGE 535 #define POWER7_PME_PM_IFU_FIN 536 +#define POWER7_PME_PM_1THRD_CON_RUN_INSTR 537 +#define POWER7_PME_PM_CMPLU_STALL_COUNT 538 +#define POWER7_PME_PM_MEM0_PB_RD_CL 539 +#define POWER7_PME_PM_THRD_1_RUN_CYC 540 +#define POWER7_PME_PM_THRD_2_CONC_RUN_INSTR 541 +#define POWER7_PME_PM_THRD_2_RUN_CYC 542 +#define POWER7_PME_PM_THRD_3_CONC_RUN_INST 543 +#define POWER7_PME_PM_THRD_3_RUN_CYC 544 +#define POWER7_PME_PM_THRD_4_CONC_RUN_INST 545 +#define POWER7_PME_PM_THRD_4_RUN_CYC 546 static const pme_power_entry_t power7_pe[] = { [ POWER7_PME_PM_IC_DEMAND_L2_BR_ALL ] = { @@ -3780,7 +3790,67 @@ static const pme_power_entry_t power7_pe[] = { .pme_code = 0x40066, .pme_short_desc = "IFU Finished a (non-branch) instruction", .pme_long_desc = "The Instruction Fetch Unit finished an instruction", - } + }, + [ POWER7_PME_PM_1THRD_CON_RUN_INSTR ] = { + .pme_name = "PM_1THRD_CON_RUN_INSTR", + .pme_code = 0x30062, + .pme_short_desc = "1 thread Concurrent Run Instructions", + .pme_long_desc = "1 thread Concurrent Run Instructions", + }, + [ POWER7_PME_PM_CMPLU_STALL_COUNT ] = { + .pme_name = "PM_CMPLU_STALL_COUNT", + .pme_code = 0x4000B, + .pme_short_desc = "Marked LSU instruction finished", + .pme_long_desc = "One of the Load/Store Units finished a marked instruction. Instructions that finish may not necessary complete", + }, + [ POWER7_PME_PM_MEM0_PB_RD_CL ] = { + .pme_name = "PM_MEM0_PB_RD_CL", + .pme_code = 0x30083, + .pme_short_desc = "Nest events (MC0/MC1/PB/GX), Pair2 Bit1", + .pme_long_desc = "Nest events (MC0/MC1/PB/GX), Pair2 Bit1", + }, + [ POWER7_PME_PM_THRD_1_RUN_CYC ] = { + .pme_name = "PM_THRD_1_RUN_CYC", + .pme_code = 0x10060, + .pme_short_desc = "1 thread in Run Cycles", + .pme_long_desc = "At least one thread has set its 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. This event does not respect FCWAIT.", + }, + [ POWER7_PME_PM_THRD_2_CONC_RUN_INSTR ] = { + .pme_name = "PM_THRD_2_CONC_RUN_INSTR", + .pme_code = 0x40062, + .pme_short_desc = "2 thread Concurrent Run Instructions", + .pme_long_desc = "2 thread Concurrent Run Instructions", + }, + [ POWER7_PME_PM_THRD_2_RUN_CYC ] = { + .pme_name = "PM_THRD_2_RUN_CYC", + .pme_code = 0x20060, + .pme_short_desc = "2 thread in Run Cycles", + .pme_long_desc = "2 thread in Run Cycles", + }, + [ POWER7_PME_PM_THRD_3_CONC_RUN_INST ] = { + .pme_name = "PM_THRD_3_CONC_RUN_INST", + .pme_code = 0x10062, + .pme_short_desc = "3 thread in Run Cycles", + .pme_long_desc = "3 thread in Run Cycles", + }, + [ POWER7_PME_PM_THRD_3_RUN_CYC ] = { + .pme_name = "PM_THRD_3_RUN_CYC", + .pme_code = 0x30060, + .pme_short_desc = "3 thread in Run Cycles", + .pme_long_desc = "3 thread in Run Cycles", + }, + [ POWER7_PME_PM_THRD_4_CONC_RUN_INST ] = { + .pme_name = "PM_THRD_4_CONC_RUN_INST", + .pme_code = 0x20062, + .pme_short_desc = "4 thread in Run Cycles", + .pme_long_desc = "4 thread in Run Cycles", + }, + [ POWER7_PME_PM_THRD_4_RUN_CYC ] = { + .pme_name = "PM_THRD_4_RUN_CYC", + .pme_code = 0x40060, + .pme_short_desc = "4 thread in Run Cycles", + .pme_long_desc = "4 thread in Run Cycles", + }, }; #endif -- 1.7.12.rc1.22.gbfbf4d4 |
From: Stephane E. <er...@go...> - 2012-12-09 19:27:00
|
Patch applied. I think it would be good to add in the header of the power7 event file a URL of where the specs could be accessed. Thanks. On Thu, Dec 6, 2012 at 8:04 PM, Carl E. Love <ce...@li...> wrote: > LIBPFM 4, POWER 7: Add additional events to the list of available events > > This patch adds more events to the list for the POWER 7 processor. > > Signed-off-by: Carl Love <ce...@us...> > --- > lib/events/power7_events.h | 72 +++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 71 insertions(+), 1 deletion(-) > > diff --git a/lib/events/power7_events.h b/lib/events/power7_events.h > index d1c1c27..e51e407 100644 > --- a/lib/events/power7_events.h > +++ b/lib/events/power7_events.h > @@ -557,6 +557,16 @@ > #define POWER7_PME_PM_DTLB_MISS_16M 534 > #define POWER7_PME_PM_LSU1_LMQ_LHR_MERGE 535 > #define POWER7_PME_PM_IFU_FIN 536 > +#define POWER7_PME_PM_1THRD_CON_RUN_INSTR 537 > +#define POWER7_PME_PM_CMPLU_STALL_COUNT 538 > +#define POWER7_PME_PM_MEM0_PB_RD_CL 539 > +#define POWER7_PME_PM_THRD_1_RUN_CYC 540 > +#define POWER7_PME_PM_THRD_2_CONC_RUN_INSTR 541 > +#define POWER7_PME_PM_THRD_2_RUN_CYC 542 > +#define POWER7_PME_PM_THRD_3_CONC_RUN_INST 543 > +#define POWER7_PME_PM_THRD_3_RUN_CYC 544 > +#define POWER7_PME_PM_THRD_4_CONC_RUN_INST 545 > +#define POWER7_PME_PM_THRD_4_RUN_CYC 546 > > static const pme_power_entry_t power7_pe[] = { > [ POWER7_PME_PM_IC_DEMAND_L2_BR_ALL ] = { > @@ -3780,7 +3790,67 @@ static const pme_power_entry_t power7_pe[] = { > .pme_code = 0x40066, > .pme_short_desc = "IFU Finished a (non-branch) instruction", > .pme_long_desc = "The Instruction Fetch Unit finished an instruction", > - } > + }, > + [ POWER7_PME_PM_1THRD_CON_RUN_INSTR ] = { > + .pme_name = "PM_1THRD_CON_RUN_INSTR", > + .pme_code = 0x30062, > + .pme_short_desc = "1 thread Concurrent Run Instructions", > + .pme_long_desc = "1 thread Concurrent Run Instructions", > + }, > + [ POWER7_PME_PM_CMPLU_STALL_COUNT ] = { > + .pme_name = "PM_CMPLU_STALL_COUNT", > + .pme_code = 0x4000B, > + .pme_short_desc = "Marked LSU instruction finished", > + .pme_long_desc = "One of the Load/Store Units finished a marked instruction. Instructions that finish may not necessary complete", > + }, > + [ POWER7_PME_PM_MEM0_PB_RD_CL ] = { > + .pme_name = "PM_MEM0_PB_RD_CL", > + .pme_code = 0x30083, > + .pme_short_desc = "Nest events (MC0/MC1/PB/GX), Pair2 Bit1", > + .pme_long_desc = "Nest events (MC0/MC1/PB/GX), Pair2 Bit1", > + }, > + [ POWER7_PME_PM_THRD_1_RUN_CYC ] = { > + .pme_name = "PM_THRD_1_RUN_CYC", > + .pme_code = 0x10060, > + .pme_short_desc = "1 thread in Run Cycles", > + .pme_long_desc = "At least one thread has set its 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. This event does not respect FCWAIT.", > + }, > + [ POWER7_PME_PM_THRD_2_CONC_RUN_INSTR ] = { > + .pme_name = "PM_THRD_2_CONC_RUN_INSTR", > + .pme_code = 0x40062, > + .pme_short_desc = "2 thread Concurrent Run Instructions", > + .pme_long_desc = "2 thread Concurrent Run Instructions", > + }, > + [ POWER7_PME_PM_THRD_2_RUN_CYC ] = { > + .pme_name = "PM_THRD_2_RUN_CYC", > + .pme_code = 0x20060, > + .pme_short_desc = "2 thread in Run Cycles", > + .pme_long_desc = "2 thread in Run Cycles", > + }, > + [ POWER7_PME_PM_THRD_3_CONC_RUN_INST ] = { > + .pme_name = "PM_THRD_3_CONC_RUN_INST", > + .pme_code = 0x10062, > + .pme_short_desc = "3 thread in Run Cycles", > + .pme_long_desc = "3 thread in Run Cycles", > + }, > + [ POWER7_PME_PM_THRD_3_RUN_CYC ] = { > + .pme_name = "PM_THRD_3_RUN_CYC", > + .pme_code = 0x30060, > + .pme_short_desc = "3 thread in Run Cycles", > + .pme_long_desc = "3 thread in Run Cycles", > + }, > + [ POWER7_PME_PM_THRD_4_CONC_RUN_INST ] = { > + .pme_name = "PM_THRD_4_CONC_RUN_INST", > + .pme_code = 0x20062, > + .pme_short_desc = "4 thread in Run Cycles", > + .pme_long_desc = "4 thread in Run Cycles", > + }, > + [ POWER7_PME_PM_THRD_4_RUN_CYC ] = { > + .pme_name = "PM_THRD_4_RUN_CYC", > + .pme_code = 0x40060, > + .pme_short_desc = "4 thread in Run Cycles", > + .pme_long_desc = "4 thread in Run Cycles", > + }, > }; > #endif > > -- > 1.7.12.rc1.22.gbfbf4d4 > > > |