Thread: [perfmon2] 2.6.24 new kernel code base + libpfm + pfmon finally available!
Status: Beta
Brought to you by:
seranian
From: Stephane E. <er...@go...> - 2008-02-25 16:54:49
|
Hello, I have finally released the perfmon2 kernel patch for kernel v2.6.24. It took longer than expected to due my job change and several technical issues related to perfmon kernel bugs. The perfmon version been changed to v2.8 due to some minor changes in the interface. The major changes are: - support for IBM Power4 and Power 6 (Kevin Corey) - support for Sun Sparc Ultra12, Ultra3, 3i, 3+, 4+, Niagara, Niagara2 (David S. Miller) - support for Intel Penryn-class processors (model 23) - support for MIPS R12000 (Vince Weaver) - support for Pentium Pro (Vince Weaver) - IBM Cell and Sony PS3 updates (Takashi Yamamoto) - allow user-level RDPMC for self-monitoring sessions - merged x86 code - perfmon statistics now using debugfs - set switch timeout now using hrtimer infrastructure - spin lock macros to hide IBM lazy interrupt masking There is also a new release for libpfm, now at version 3.3. The changes include: - full event table for AMD Phenom (a.k.a. Barcelona) (Robert Richter) - support for Sun Sparc Ultra12, Ultra3, 3i, 3+, 4+, Niagara, Niagara2 (David S. Miller) - support for Pentium II, Pentium Pro (Vince Weaver) - support for Intel Penryn-class processor - support for Pentium 4 event replay tag (Dan Terpstra) - initial support for Sicortex ICAE9A/ICE9B processors (Phil Mucci) - Cray X2 updates (Steve Kaufmann) - allow numerical values for unit masks (Dan Terpstra) Finally, a new major version of pfmon, now at pfmon-3.3. Among the many changes: - support for Sun Sparc Ultra12, Ultra3, Ultra3i, Ultra3Plus, Ultra4Plus, Niagara1, Niagara2 (David S. Miller) - support Intel Pentium II, Intel Pentium Pro support (Vince Weaver) - IBM Cell updates (Takashi Yamamoto) - complete rewrite of the symbol table parsing and management (Andrzej Nowak) - can now correlate symbols in shared libraries - can now correlate symbols across dlopen()/dlclose() (Andrzej Nowak) - can now correlate samples to programs in system-wide mode (Phil Mucci) - MIPS updates (Phil Mucci) Thanks to all the contributors and in particular to David S. Miller for his exceptional work on adding support for Sun processors so quickly. I also would like to thank Andrzej Nowak (CERN) for his work on improving pfmon. This was a lot of hard work done in a short period of time. As usual all files and more detailed change logs can be downloaded from our website at: http://perfmon.sourceforge.net Enjoy, |
From: William C. <wc...@re...> - 2008-02-25 19:13:19
Attachments:
libpfm-3.3-version.patch
|
Stephane Eranian wrote: > Hello, > > I have finally released the perfmon2 kernel patch for kernel v2.6.24. It > took longer than expected to due my job change and several technical issues > related to perfmon kernel bugs. > > The perfmon version been changed to v2.8 due to some minor changes in the > interface. The major changes are: > - support for IBM Power4 and Power 6 (Kevin Corey) > - support for Sun Sparc Ultra12, Ultra3, 3i, 3+, 4+, Niagara, > Niagara2 (David S. Miller) > - support for Intel Penryn-class processors (model 23) > - support for MIPS R12000 (Vince Weaver) > - support for Pentium Pro (Vince Weaver) > - IBM Cell and Sony PS3 updates (Takashi Yamamoto) > - allow user-level RDPMC for self-monitoring sessions > - merged x86 code > - perfmon statistics now using debugfs > - set switch timeout now using hrtimer infrastructure > - spin lock macros to hide IBM lazy interrupt masking > > There is also a new release for libpfm, now at version 3.3. The > changes include: > - full event table for AMD Phenom (a.k.a. Barcelona) (Robert Richter) > - support for Sun Sparc Ultra12, Ultra3, 3i, 3+, 4+, Niagara, > Niagara2 (David S. Miller) > - support for Pentium II, Pentium Pro (Vince Weaver) > - support for Intel Penryn-class processor > - support for Pentium 4 event replay tag (Dan Terpstra) > - initial support for Sicortex ICAE9A/ICE9B processors (Phil Mucci) > - Cray X2 updates (Steve Kaufmann) > - allow numerical values for unit masks (Dan Terpstra) > > Finally, a new major version of pfmon, now at pfmon-3.3. Among the many changes: > - support for Sun Sparc Ultra12, Ultra3, Ultra3i, Ultra3Plus, > Ultra4Plus, Niagara1, Niagara2 (David S. Miller) > - support Intel Pentium II, Intel Pentium Pro support (Vince Weaver) > - IBM Cell updates (Takashi Yamamoto) > - complete rewrite of the symbol table parsing and management (Andrzej Nowak) > - can now correlate symbols in shared libraries > - can now correlate symbols across dlopen()/dlclose() (Andrzej Nowak) > - can now correlate samples to programs in system-wide mode (Phil Mucci) > - MIPS updates (Phil Mucci) > > Thanks to all the contributors and in particular to David S. Miller > for his exceptional work > on adding support for Sun processors so quickly. I also would like to > thank Andrzej Nowak (CERN) > for his work on improving pfmon. This was a lot of hard work done in a > short period of time. > > As usual all files and more detailed change logs can be downloaded > from our website at: > > http://perfmon.sourceforge.net > > Enjoy, Hi Stephane, I am going through and updating the rpms for Fedora and noticed that the libpfm didn't have the correct names for the shared libraries. The attached patch is a minor correction the libpfm-3.3/lib/Makefile to have them labeled correctly. -Will |
From: stephane e. <er...@go...> - 2008-02-25 19:45:19
|
Will, I noticed that just after posting. I have already updated he tarball on SF.net. Thanks. On Mon, Feb 25, 2008 at 8:13 PM, William Cohen <wc...@re...> wrote: > > Stephane Eranian wrote: > > Hello, > > > > I have finally released the perfmon2 kernel patch for kernel v2.6.24. It > > took longer than expected to due my job change and several technical issues > > related to perfmon kernel bugs. > > > > The perfmon version been changed to v2.8 due to some minor changes in the > > interface. The major changes are: > > - support for IBM Power4 and Power 6 (Kevin Corey) > > - support for Sun Sparc Ultra12, Ultra3, 3i, 3+, 4+, Niagara, > > Niagara2 (David S. Miller) > > - support for Intel Penryn-class processors (model 23) > > - support for MIPS R12000 (Vince Weaver) > > - support for Pentium Pro (Vince Weaver) > > - IBM Cell and Sony PS3 updates (Takashi Yamamoto) > > - allow user-level RDPMC for self-monitoring sessions > > - merged x86 code > > - perfmon statistics now using debugfs > > - set switch timeout now using hrtimer infrastructure > > - spin lock macros to hide IBM lazy interrupt masking > > > > There is also a new release for libpfm, now at version 3.3. The > > changes include: > > - full event table for AMD Phenom (a.k.a. Barcelona) (Robert Richter) > > - support for Sun Sparc Ultra12, Ultra3, 3i, 3+, 4+, Niagara, > > Niagara2 (David S. Miller) > > - support for Pentium II, Pentium Pro (Vince Weaver) > > - support for Intel Penryn-class processor > > - support for Pentium 4 event replay tag (Dan Terpstra) > > - initial support for Sicortex ICAE9A/ICE9B processors (Phil Mucci) > > - Cray X2 updates (Steve Kaufmann) > > - allow numerical values for unit masks (Dan Terpstra) > > > > Finally, a new major version of pfmon, now at pfmon-3.3. Among the many changes: > > - support for Sun Sparc Ultra12, Ultra3, Ultra3i, Ultra3Plus, > > Ultra4Plus, Niagara1, Niagara2 (David S. Miller) > > - support Intel Pentium II, Intel Pentium Pro support (Vince Weaver) > > - IBM Cell updates (Takashi Yamamoto) > > - complete rewrite of the symbol table parsing and management (Andrzej Nowak) > > - can now correlate symbols in shared libraries > > - can now correlate symbols across dlopen()/dlclose() (Andrzej Nowak) > > - can now correlate samples to programs in system-wide mode (Phil Mucci) > > - MIPS updates (Phil Mucci) > > > > Thanks to all the contributors and in particular to David S. Miller > > for his exceptional work > > on adding support for Sun processors so quickly. I also would like to > > thank Andrzej Nowak (CERN) > > for his work on improving pfmon. This was a lot of hard work done in a > > short period of time. > > > > As usual all files and more detailed change logs can be downloaded > > from our website at: > > > > http://perfmon.sourceforge.net > > > > Enjoy, > > Hi Stephane, > > I am going through and updating the rpms for Fedora and noticed that the libpfm > didn't have the correct names for the shared libraries. The attached patch is a > minor correction the libpfm-3.3/lib/Makefile to have them labeled correctly. > > -Will > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > perfmon2-devel mailing list > per...@li... > https://lists.sourceforge.net/lists/listinfo/perfmon2-devel > > |
From: Vince W. <vi...@cs...> - 2008-02-25 22:05:41
|
Hello I'm just testing the newest perfmon2 patches on my wide-array of x86 machines. 32-bit athlon support still isn't there in libpfm. Is this on somebody's TODO list? The attached patch gets it working for me, but obviously it's not a complete fix. Vince --- libpfm-3.3/lib/pfmlib_amd64.c.orig 2008-02-25 16:54:48.000000000 -0500 +++ libpfm-3.3/lib/pfmlib_amd64.c 2008-02-25 16:58:42.000000000 -0500 @@ -75,7 +75,8 @@ #define AMD64_FAM10H AMD64_FAM10H_REV_B typedef enum { - AMD64_CPU_UN, + AMD64_CPU_UN, + AMD64_K7, AMD64_K8_REV_B, AMD64_K8_REV_C, AMD64_K8_REV_D, @@ -92,6 +93,7 @@ static const char *amd64_cpu_strs[]= { "unknown model", + "K7", "K8 RevB", "K8 RevC", "K8 RevD", @@ -124,7 +126,10 @@ static amd64_rev_t amd64_get_revision(int family, int model, int stepping) { - if (family == 15) { + if (family == 6) { + return AMD64_K7; + } + else if (family == 15) { switch (model >> 4) { case 0: if (model == 5 && stepping < 2) |
From: stephane e. <er...@go...> - 2008-02-25 22:58:41
|
Vince, On Mon, Feb 25, 2008 at 11:05 PM, Vince Weaver <vi...@cs...> wrote: > Hello > > I'm just testing the newest perfmon2 patches on my wide-array of x86 > machines. > >From what I did, I am guessing you have an interesting collection..... > 32-bit athlon support still isn't there in libpfm. Is this on somebody's > TODO list? > That does not surprise me. I did not do any work on this. AFAIK, nobody is working on this. > The attached patch gets it working for me, but obviously it's not a > complete fix. > Ok, will look at it for next version. Thanks. > Vince > > --- libpfm-3.3/lib/pfmlib_amd64.c.orig 2008-02-25 16:54:48.000000000 -0500 > +++ libpfm-3.3/lib/pfmlib_amd64.c 2008-02-25 16:58:42.000000000 -0500 > @@ -75,7 +75,8 @@ > #define AMD64_FAM10H AMD64_FAM10H_REV_B > > typedef enum { > - AMD64_CPU_UN, > + AMD64_CPU_UN, > + AMD64_K7, > AMD64_K8_REV_B, > AMD64_K8_REV_C, > AMD64_K8_REV_D, > @@ -92,6 +93,7 @@ > > static const char *amd64_cpu_strs[]= { > "unknown model", > + "K7", > "K8 RevB", > "K8 RevC", > "K8 RevD", > @@ -124,7 +126,10 @@ > static amd64_rev_t > amd64_get_revision(int family, int model, int stepping) > { > - if (family == 15) { > + if (family == 6) { > + return AMD64_K7; > + } > + else if (family == 15) { > switch (model >> 4) { > case 0: > if (model == 5 && stepping < 2) > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > perfmon2-devel mailing list > per...@li... > https://lists.sourceforge.net/lists/listinfo/perfmon2-devel > |
From: Vince W. <vi...@cs...> - 2008-02-26 03:22:16
|
> > 32-bit athlon support still isn't there in libpfm. Is this on somebody's > > TODO list? > > > That does not surprise me. I did not do any work on this. AFAIK, nobody > is working on this. OK. There has been a lot of work on the amd64 code, and I wasn't sure if any of the AMD people had interest in the old athlon chips. > > The attached patch gets it working for me, but obviously it's not a > > complete fix. > > > Ok, will look at it for next version. It's just a quick fix, mainly because right now all I care about are cycle counts and retired instructions. A proper fix would make sure that only 32-bit athlon counters were enabled on 32-bit systems, but I don't have time right now to dig through the manuals for that level of support. Vince |
From: William C. <wc...@re...> - 2008-02-26 13:58:32
|
Hi Stephane, Thanks for the updated libpfm and pfmon. I packaged the new libpfm and pfmon for Fedora 9: http://koji.fedoraproject.org/koji/buildinfo?buildID=39916 http://koji.fedoraproject.org/koji/buildinfo?buildID=39920 -Will |
From: William C. <wc...@re...> - 2008-02-26 16:25:53
|
Stephane Eranian wrote: > Hello, > > I have finally released the perfmon2 kernel patch for kernel v2.6.24. It > took longer than expected to due my job change and several technical issues > related to perfmon kernel bugs. The libpfm-3.3 build for x86_64 and i386 machines. Someone else attempted to build the srpms on a ia64 machine for F-9/rawhide and ran into a problem with the build with gcc-4.3: https://bugzilla.redhat.com/show_bug.cgi?id=434968 It looks like the gcc-4.3 is correct. It is possible for the umask to be unitialized because of the conditional statements in pfm_ita2_get_event_umask. -Will |
From: William C. <wc...@re...> - 2008-02-27 03:54:06
|
William Cohen wrote: > Stephane Eranian wrote: >> Hello, >> >> I have finally released the perfmon2 kernel patch for kernel v2.6.24. It >> took longer than expected to due my job change and several technical issues >> related to perfmon kernel bugs. > > The libpfm-3.3 build for x86_64 and i386 machines. Someone else attempted to > build the srpms on a ia64 machine for F-9/rawhide and ran into a problem with > the build with gcc-4.3: > > https://bugzilla.redhat.com/show_bug.cgi?id=434968 > > It looks like the gcc-4.3 is correct. It is possible for the umask to be > unitialized because of the conditional statements in pfm_ita2_get_event_umask. > > -Will Hi Stephane, Having things being built on Fedora-9/rawhide ia64 is shaking out some additional uninitialized values. Another bugzilla pfmon-3.3 due to GCC 4.3 being pickier: https://bugzilla.redhat.com/show_bug.cgi?id=435048 -Will |
From: stephane e. <er...@go...> - 2008-02-27 18:13:31
|
Will, On Tue, Feb 26, 2008 at 2:58 PM, William Cohen <wc...@re...> wrote: > Hi Stephane, > > Thanks for the updated libpfm and pfmon. I packaged the new libpfm and pfmon for > Fedora 9: > > http://koji.fedoraproject.org/koji/buildinfo?buildID=39916 > http://koji.fedoraproject.org/koji/buildinfo?buildID=39920 > Not sure if the rpmbuild command catches that but the new version of pfmon now has a dependency on binutils. Pfmon uses nm to extract the symbol table. Make sure the dependency is listed in the RPM. |
From: William C. <wc...@re...> - 2008-02-27 18:29:50
|
stephane eranian wrote: > Will, > > > On Tue, Feb 26, 2008 at 2:58 PM, William Cohen <wc...@re...> wrote: >> Hi Stephane, >> >> Thanks for the updated libpfm and pfmon. I packaged the new libpfm and pfmon for >> Fedora 9: >> >> http://koji.fedoraproject.org/koji/buildinfo?buildID=39916 >> http://koji.fedoraproject.org/koji/buildinfo?buildID=39920 >> > Not sure if the rpmbuild command catches that but the new version of pfmon now > has a dependency on binutils. Pfmon uses nm to extract the symbol table. Make > sure the dependency is listed in the RPM. Hi Stephane, Koji generates build roots from scratch. Koji didn't complain about binutils missing when building pfmon. It looks like that is one of the packages that is in the minimal build root because rpmlib pulls it in. Those kind of dependencies don't need listed in the source rpm. They just clutter things up. I looked through the following log to see that it is pulled in by dependency: http://koji.fedoraproject.org/koji/getfile?taskID=469710&name=root.log -Will |