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

Reply via email to