All of lore.kernel.org
 help / color / mirror / Atom feed
From: "David Prévot" <taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org
Cc: linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"David Prévot" <taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
Subject: [PATCH] perf_event_open.2: ffix and tfix
Date: Fri, 22 Feb 2013 12:47:14 -0400	[thread overview]
Message-ID: <1361551634-17115-1-git-send-email-taffit@debian.org> (raw)

---
 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

--
To unsubscribe from this list: send the line "unsubscribe linux-man" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

             reply	other threads:[~2013-02-22 16:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-02-22 16:47 David Prévot [this message]
     [not found] ` <1361551634-17115-1-git-send-email-taffit-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
2013-02-22 16:53   ` [PATCH] perf_event_open.2: ffix and tfix David Prévot
     [not found]     ` <5127A286.9010300-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org>
2013-02-25  5:25       ` Michael Kerrisk (man-pages)
2013-02-25  1:51   ` [PATCH] perf_event_open.2: ffix and wfix David Prévot
2013-02-25  4:54   ` [PATCH] perf_event_open.2: ffix and tfix Michael Kerrisk (man-pages)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1361551634-17115-1-git-send-email-taffit@debian.org \
    --to=taffit-8fiuurrzop0dnm+yrofe0a@public.gmane.org \
    --cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.