Re: [PATCH] perf_event_open.2: ffix and tfix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks David. Applied.

On Fri, Feb 22, 2013 at 5:47 PM, David Prévot <taffit@xxxxxxxxxx> wrote:
> ---
>  man2/perf_event_open.2 |  126 ++++++++++++++++++++++++++++--------------------
>  1 file changed, 73 insertions(+), 53 deletions(-)
>
> diff --git a/man2/perf_event_open.2 b/man2/perf_event_open.2
> index ed468f2..eb989d4 100644
> --- a/man2/perf_event_open.2
> +++ b/man2/perf_event_open.2
> @@ -56,7 +56,7 @@ to measure multiple events simultaneously.
>  Events can be enabled and disabled in two ways: via
>  .BR ioctl (2)
>  and via
> -.BR prctl (2) .
> +.BR prctl (2).
>  When an event is disabled it does not count or generate overflows but does
>  continue to exist and maintain its count value.
>  .PP
> @@ -72,7 +72,7 @@ A
>  .I sampling
>  event periodically writes measurements to a buffer that can then
>  be accessed via
> -.BR  mmap (2) .
> +.BR  mmap (2).
>  .SS Arguments
>  .P
>  The argument
> @@ -164,7 +164,7 @@ This flag re-routes the output from an event to the group leader.
>  This flag activates per-container system-wide monitoring.
>  A container
>  is an abstraction that isolates a set of resources for finer grain
> -control (CPUs, memory, etc...).
> +control (CPUs, memory, etc.).
>  In this mode, the event is measured
>  only if the thread running on the monitored CPU belongs to the designated
>  container (cgroup).
> @@ -226,7 +226,7 @@ struct perf_event_attr {
>                exclude_callchain_kernel : 1,
>                                      /* exclude kernel callchains */
>                exclude_callchain_user   : 1,
> -                                   /* exclude user callchains */
> +                                    /* exclude user callchains */
>                __reserved_1   : 41;
>
>      union {
> @@ -331,9 +331,9 @@ is set to 64; this was the size of the first published struct.
>  .B PERF_ATTR_SIZE_VER1
>  is 72, corresponding to the addition of breakpoints in Linux 2.6.33.
>  .B PERF_ATTR_SIZE_VER2
> -is 80 corresponding to the addition of branch sampling in Linux 3.4.
> +is 80, corresponding to the addition of branch sampling in Linux 3.4.
>  .B PERF_ATR_SIZE_VER3
> -is 96 corresponding to the addition
> +is 96, corresponding to the addition
>  of sample_regs_user and sample_stack_user in Linux 3.7.
>
>  .TP
> @@ -378,12 +378,12 @@ to one of the following:
>  .TP
>  .B PERF_COUNT_HW_CPU_CYCLES
>  Total cycles.
> -Be wary of what happens during CPU frequency scaling
> +Be wary of what happens during CPU frequency scaling.
>  .TP
>  .B PERF_COUNT_HW_INSTRUCTIONS
>  Retired instructions.
>  Be careful, these can be affected by various
> -issues, most notably hardware interrupt counts
> +issues, most notably hardware interrupt counts.
>  .TP
>  .B PERF_COUNT_HW_CACHE_REFERENCES
>  Cache accesses.
> @@ -611,11 +611,11 @@ timer tick.
>  .I "sample_type"
>  The various bits in this field specify which values to include
>  in the sample.
> -They will be recorded in a ring-buffer,
> +They will be recorded in a ring buffer,
>  which is available to user-space using
>  .BR mmap (2).
>  The order in which the values are saved in the
> -sample are documented in the MMAP Layout subsection below;
> +sample is documented in the MMAP Layout subsection below;
>  it is not the
>  .I "enum perf_event_sample_format"
>  order.
> @@ -653,7 +653,8 @@ Records a unique ID for the opened event.
>  Unlike
>  .B PERF_SAMPLE_ID
>  the actual ID is returned, not the group leader.
> -This ID is the same as the one returned by PERF_FORMAT_ID.
> +This ID is the same as the one returned by
> +.BR PERF_FORMAT_ID .
>  .TP
>  .B PERF_SAMPLE_RAW
>  Records additional data, if applicable.
> @@ -661,7 +662,8 @@ Usually returned by tracepoint events.
>  .TP
>  .BR PERF_SAMPLE_BRANCH_STACK " (Since Linux 3.4)"
>  Records the branch stack.
> -See branch_sample_type.
> +See
> +.IR branch_sample_type .
>  .TP
>  .BR PERF_SAMPLE_REGS_USER " (Since Linux 3.7)"
>  Records the current register state.
> @@ -778,9 +780,9 @@ bit enables recording of exec mmap events.
>  The
>  .I comm
>  bit enables tracking of process command name as modified by the
> -.IR exec (2)
> +.BR exec (2)
>  and
> -.IR prctl (PR_SET_NAME)
> +.BR prctl (PR_SET_NAME)
>  system calls.
>  Unfortunately for tools,
>  there is no way to distinguish one system call versus the other.
> @@ -859,7 +861,7 @@ See also
>  The counterpart of the
>  .I mmap
>  field, but enables including data mmap events
> -in the ring-buffer.
> +in the ring buffer.
>
>  .TP
>  .IR "sample_id_all" " (Since Linux 2.6.38)"
> @@ -872,11 +874,11 @@ is selected.
>
>  .TP
>  .IR "exclude_host" " (Since Linux 3.2)"
> -Do not measure time spent in VM host
> +Do not measure time spent in VM host.
>
>  .TP
>  .IR "exclude_guest" " (Since Linux 3.2)"
> -Do not measure time spent in VM guest
> +Do not measure time spent in VM guest.
>
>  .TP
>  .IR "exclude_callchain_kernel" " (Since Linux 3.7)"
> @@ -932,7 +934,7 @@ is not allowed.
>  .TP
>  .IR "bp_addr" " (Since Linux 2.6.33)"
>  .I bp_addr
> -address of the breakpoint.
> +is the address of the breakpoint.
>  For execution breakpoints this is the memory address of the instruction
>  of interest; for read and write breakpoints it is the memory address
>  of the memory location of interest.
> @@ -941,7 +943,9 @@ of the memory location of interest.
>  .IR "config1" " (Since Linux 2.6.39)"
>  .I config1
>  is used for setting events that need an extra register or otherwise
> -do not fit in the regular config field.
> +do not fit in the regular
> +.I config
> +field.
>  Raw OFFCORE_EVENTS on Nehalem/Westmere/SandyBridge use this field
>  on 3.3 and later kernels.
>
> @@ -975,28 +979,28 @@ It can have one of the following values:
>  .RS
>  .TP
>  .B PERF_SAMPLE_BRANCH_USER
> -Branch target is in user space
> +Branch target is in user space.
>  .TP
>  .B PERF_SAMPLE_BRANCH_KERNEL
> -Branch target is in kernel space
> +Branch target is in kernel space.
>  .TP
>  .B PERF_SAMPLE_BRANCH_HV
> -Branch target is in hypervisor
> +Branch target is in hypervisor.
>  .TP
>  .B PERF_SAMPLE_BRANCH_ANY
>  Any branch type.
>  .TP
>  .B PERF_SAMPLE_BRANCH_ANY_CALL
> -Any call branch
> +Any call branch.
>  .TP
>  .B PERF_SAMPLE_BRANCH_ANY_RETURN
> -Any return branch
> +Any return branch.
>  .TP
>  .BR PERF_SAMPLE_BRANCH_IND_CALL
> -Indirect calls
> +Indirect calls.
>  .TP
>  .BR PERF_SAMPLE_BRANCH_PLM_ALL
> -User, kernel, and hv
> +User, kernel, and hv.
>  .RE
>
>  .TP
> @@ -1026,7 +1030,7 @@ structure at open time.
>  If you attempt to read into a buffer that is not big enough to hold the
>  data
>  .B ENOSPC
> -is returned
> +is returned.
>
>  Here is the layout of the data returned by a read:
>
> @@ -1095,7 +1099,8 @@ An unsigned 64-bit value containing the counter result.
>  .I id
>  A globally unique value for this particular event, only there if
>  .B PERF_FORMAT_ID
> -was specified in read_format.
> +was specified in
> +.IR read_format .
>
>  .RE
>  .RE
> @@ -1110,15 +1115,15 @@ in sampled mode, asynchronous events
>  (like counter overflow or
>  .B PROT_EXEC
>  mmap tracking)
> -are logged into a ring-buffer.
> -This ring-buffer is created and accessed through
> +are logged into a ring buffer.
> +This ring buffer is created and accessed through
>  .BR mmap (2).
>
>  The mmap size should be 1+2^n pages, where the first page is a
>  metadata page
> -.IR ( "struct perf_event_mmap_page" )
> +.RI ( "struct perf_event_mmap_page" )
>  that contains various
> -bits of information such as where the ring-buffer head is.
> +bits of information such as where the ring buffer head is.
>
>  Before kernel 2.6.39, there is a bug that means you must allocate a mmap
>  ring buffer when sampling even if you do not plan to access it.
> @@ -1190,7 +1195,7 @@ Time the event was running.
>
>  .TP
>  .I cap_usr_time
> -User time capability
> +User time capability.
>
>  .TP
>  .I cap_usr_rdpmc
> @@ -1256,7 +1261,9 @@ count += pmc;
>  If
>  .IR cap_usr_time ,
>  these fields can be used to compute the time
> -delta since time_enabled (in nanoseconds) using rdtsc or similar.
> +delta since
> +.I time_enabled
> +(in nanoseconds) using rdtsc or similar.
>  .nf
>
>      u64 quot, rem;
> @@ -1294,27 +1301,31 @@ The value continuously increases, it does not wrap.
>  The value needs to be manually wrapped by the size of the mmap buffer
>  before accessing the samples.
>
> -On SMP-capable platforms, after reading the data_head value,
> +On SMP-capable platforms, after reading the
> +.I data_head
> +value,
>  user-space should issue an rmb().
>
>  .TP
> -.I data_tail;
> +.I data_tail
>  When the mapping is
>  .BR PROT_WRITE ,
>  the
>  .I data_tail
>  value should be written by user space to reflect the last read data.
> -In this case the kernel will not over-write unread data.
> +In this case the kernel will not overwrite unread data.
>
>  .RE
>
>
> -The following 2^n ring-buffer pages have the layout described below.
> +The following 2^n ring buffer pages have the layout described below.
>
>  If
>  .I perf_event_attr.sample_id_all
>  is set, then all event types will
> -have the sample_type selected fields related to where/when (identity)
> +have the
> +.I sample_type
> +selected fields related to where/when (identity)
>  an event took place (TID, TIME, ID, CPU, STREAM_ID) described in
>  .B PERF_RECORD_SAMPLE
>  below, it will be stashed just after the
> @@ -1573,7 +1584,8 @@ the current sampling period is written.
>  .I v
>  If
>  .B PERF_SAMPLE_READ
> -is enabled, a structure of type read_format
> +is enabled, a structure of type
> +.I read_format
>  is included which has values for all events in the event group.
>  The values included depend on the
>  .I read_format
> @@ -1702,7 +1714,7 @@ The signal handler is set up using the
>  .BR select (2),
>  .BR epoll (2)
>  and
> -.BR fcntl (2),
> +.BR fcntl (2)
>  system calls.
>
>  To generate signals, sampling must be enabled
> @@ -1756,7 +1768,7 @@ to calculate event values can be found in that section.
>  .PP
>  Various ioctls act on
>  .BR perf_event_open ()
> -file descriptors
> +file descriptors.
>
>  .TP
>  .B PERF_EVENT_IOC_ENABLE
> @@ -1790,14 +1802,14 @@ A signal with
>  .B POLL_IN
>  set will happen on each overflow until the
>  count reaches 0; when that happens a signal with
> -POLL_HUP
> +.B POLL_HUP
>  set is sent and the event is disabled.
>  Using an argument of 0 is considered undefined behavior.
>
>  .TP
>  .B PERF_EVENT_IOC_RESET
>  Reset the event count specified by the
> -file descriptor argumentto zero.
> +file descriptor argument to zero.
>  This only resets the counts; there is no way to reset the
>  multiplexing
>  .I time_enabled
> @@ -1885,7 +1897,8 @@ The default value is
>  .TP
>  .I /proc/sys/kernel/perf_event_mlock_kb
>
> -Maximum number of pages an unprivileged user can mlock (2) .
> +Maximum number of pages an unprivileged user can
> +.BR mlock (2).
>  The default is 516 (kB).
>  .RE
>
> @@ -1903,7 +1916,9 @@ Each subdirectory corresponds to a different PMU.
>  .I /sys/bus/event_source/devices/*/type
>  This contains an integer that can be used in the
>  .I type
> -field of perf_event_attr to indicate you wish to use this PMU.
> +field of
> +.I perf_event_attr
> +to indicate you wish to use this PMU.
>
>  .TP
>  .I /sys/bus/event_source/devices/*/rdpmc
> @@ -1913,7 +1928,9 @@ field of perf_event_attr to indicate you wish to use this PMU.
>  .I /sys/bus/event_source/devices/*/format/
>  This sub-directory contains information on what bits in the
>  .I config
> -field of perf_event_attr correspond to.
> +field of
> +.I perf_event_attr
> +correspond to.
>
>  .TP
>  .I /sys/bus/event_source/devices/*/events/
> @@ -1953,18 +1970,18 @@ Linus did not like this, and this was changed to
>  is still returned if you try to read results into
>  too small of a buffer.
>
> -.SH VERSION
> +.SH VERSIONS
>
>  .BR perf_event_open ()
>  was introduced in Linux 2.6.31 but was called
> -.BR perf_counter_open () .
> +.BR perf_counter_open ().
>  It was renamed in Linux 2.6.32.
>
>  .SH CONFORMING TO
>
>  This
>  .BR perf_event_open ()
> -system call Linux- specific
> +system call is Linux-specific
>  and should not be used in programs intended to be portable.
>
>  .SH NOTES
> @@ -2002,8 +2019,9 @@ scheduled them in an improper counter slot.
>  Prior to Linux 2.6.34 there was a bug when multiplexing where the
>  wrong results could be returned.
>
> -Kernels from Linux 2.6.35 to Linux 2.6.39 can quickly crash the kernel if
> -"inherit" is enabled and many threads are started.
> +Kernels from Linux 2.6.35 to Linux 2.6.39 can quickly crash if
> +.I inherit
> +is enabled and many threads are started.
>
>  Prior to Linux 2.6.35,
>  .B PERF_FORMAT_GROUP
> @@ -2016,7 +2034,9 @@ This behavior is unsupported and should not be relied on.
>
>  There is a bug in the kernel code between
>  Linux 2.6.36 and Linux 3.0 that ignores the
> -"watermark" field and acts as if a wakeup_event
> +.I watermark
> +field and acts as if a
> +.I wakeup_event
>  was chosen if the union has a
>  non-zero value in it.
>
> --
> 1.7.10.4
>



-- 
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Author of "The Linux Programming Interface"; http://man7.org/tlpi/
--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Kernel Documentation]     [Netdev]     [Linux Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux