Robert, Patch applied. I modified it even more to make it more generic, drop many reference to Itanium. Thanks.
On Tue, Mar 25, 2008 at 5:53 PM, Robert Richter <[EMAIL PROTECTED]> wrote: > Signed-off-by: Robert Richter <[EMAIL PROTECTED]> > --- > docs/man3/libpfm.3 | 75 > ++++++++++++++++++++++++++++++++++++++-------------- > 1 files changed, 55 insertions(+), 20 deletions(-) > > diff --git a/docs/man3/libpfm.3 b/docs/man3/libpfm.3 > index fe6a741..b8793fc 100644 > --- a/docs/man3/libpfm.3 > +++ b/docs/man3/libpfm.3 > @@ -1,39 +1,44 @@ > -.TH LIBPFM 3 "November, 2003" "" "Linux Programmer's Manual" > +.TH LIBPFM 3 "March, 2008" "" "Linux Programmer's Manual" > .SH NAME > -libpfm \- a helper library to program the hardware performance counters of > IA-64 CPUs > +libpfm \- a helper library to program Hardware Performance Units (PMUs) > .SH SYNOPSIS > .nf > .B #include <perfmon/pfmlib.h> > .SH DESCRIPTION > -The libpfm library is a helper library which can be used by applications to > program > -the IA-64 Performance Monitoring Unit (PMU). While it is being developed on > Linux > -in conjunction with the Linux/ia64 subsystem. It is generic enough to be > used on > -other IA-64 operating systems. It is important to realize that the library > does > -not make the actual kernel calls to program the PMU, it simply helps you > figure > -out which PMU registers to use to measure certain events. On Linux/ia64, for > -instance, it does not make any \fBperfmonctl\fR call. > +The libpfm library is a helper library which can be used by > +applications to program the Performance Monitoring Unit (PMU). It > +provides a generic programing interface that is part of the Perfmon2 > +architecture and portable across various PMU models/architectures. A > +diversity of PMU hardware is supported, a list can be found below > +under \fBSUPPORTED HARDWARE\fR. Perfmon2 has been developed initially > +on Linux in conjunction with the Linux/ia64 subsystem. > + > +It is important to realize that the library does not make the actual > +kernel calls to program the PMU, it simply helps you figure out which > +PMU registers to use to measure certain events. On Linux/ia64, for > +instance, it does not make any system call. > > There are two categories of PMU registers. The performance monitoring data > registers (PMD) > -are used to collects counts or serve as hardware buffers. The performance > monitoring control > +are used to collect counts or serve as hardware buffers. The performance > monitoring control > registers (PMCS) are used to indicate what events need to be monitored. > Programming the PMU > -consists in setting up the PMC registers to monitor certain events. The > PMDS are commonly set > +consists in setting up the PMC registers to monitor certain events. The > PMDs are commonly set > to zero unless sampling is used. > > -The number of PMC and PMD registers varies from one implementation of the > IA-64 > -architecture to another. The association of PMC to PMD can also change. > Moreover > -the number and encoding of events can also widely change. Finally, the > structure > -of a PMC register can also change. All these factors make it quite > difficult to > -write monitoring tools. > +The number of PMC and PMD registers varies between architectures and > +CPU models. The association of PMC to PMD can also change. Moreover > +the number and encoding of events can also widely change. Finally, the > +structure of a PMC register can also change. All these factors make it > +quite difficult to write monitoring tools. > > This library is designed to simplify the programming of the PMC registers > by hiding > the complexity behind simple interfaces. The library does this without > limiting > accessibility to model specific features by using a layered design. > > The library is structured in two layers. The common layer provides an > interface > -that is shared across all PMU models.This layer is good enough to setup > simple monitoring > +that is shared across all PMU models. This layer is good enough to setup > simple monitoring > sessions which count occurrences of events. Then, there is a model-specific > layer which > gives access to the model-specific features. For instance, on Itanium, you > can use the library > -to setup the registers for the the Branch Trace Buffer. Model-specific > interfaces have the > +to setup the registers for the Branch Trace Buffer. Model-specific > interfaces have the > abbreviated PMU model name in their names. For instance, > \fBpfm_ita2_get_event_umask()\fR is an Itanium2 (ita2) specific function. > > @@ -44,8 +49,38 @@ The common interface is defined in the \fBpfmlib.h\fR > header file. Model-specifi > are defined in model-specific header files. For instance, > \fBpfmlib_itanium2.h\fR provides > the Itanium2 interface. > > -.SH AUTHOR > +.SS SUPPORTED HARDWARE > +.nf > +libpfm_amd64(3) AMD64 processors K8 and Barcelona (families 0Fh and 10h) > +libpfm_core(3) Intel Core processor family, including the Core 2 > + Duo series > +libpfm_itanium(3) Intel Itanium > +libpfm_itanium2(3) Intel Itanium 2 > +libpfm_montecito(3) Intel Itanium 2 9000 (Montecito) > +libpfm_p6(3) P6 processor family including the Pentium M > + processor > +libpfm_powerpc(3) IBM PowerPC and POWER processor families > + (PPC970(FX,GX), PPC970MP POWER4, POWER4+, POWER5, > + POWER5+, and POWER6) > +.fi > +.SH AUTHORS > +.nf > Stephane Eranian <[EMAIL PROTECTED]> > +Robert Richter <[EMAIL PROTECTED]> > +.if > +.PP > .SH SEE ALSO > -pfmlib_itanium(3), pfmlib_itanium2(3) and the set of examples shipped with > the library > +.nf > +.PP > +libpfm(3), libpfm_amd64(3), libpfm_core(3), libpfm_itanium2(3), > +libpfm_itanium(3), libpfm_montecito(3), libpfm_p6(3), > +libpfm_powerpc(3). > +.PP > +pfm_dispatch_events(3), pfm_find_event(3), > +pfm_get_cycle_event(3), pfm_get_event_name(3), pfm_get_impl_pmcs(3), > +pfm_get_pmu_name(3), pfm_get_version(3), pfm_initialize(3), > +pfm_regmask_set(3), pfm_set_options(3), pfm_strerror(3). > +.PP > +Examples shipped with the library > +.if > .PP > -- > 1.5.3.7 > > -- > Advanced Micro Devices, Inc. > Operating System Research Center > email: [EMAIL PROTECTED] > > > ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ perfmon2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/perfmon2-devel
