msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-07-15 16:08+0900\n"
+"POT-Creation-Date: 2013-09-28 04:06+0900\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgstr ""
#. type: SH
-#: build/C/man2/arch_prctl.2:82 build/C/man2/futex.2:209 build/C/man2/get_robust_list.2:77 build/C/man2/getunwind.2:81 build/C/man2/kexec_load.2:114 build/C/man2/lookup_dcookie.2:43 build/C/man2/modify_ldt.2:98 build/C/man2/nfsservctl.2:51 build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:1964 build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:57 build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:209 build/C/man2/ptrace.2:1714 build/C/man2/quotactl.2:419 build/C/man2/sendfile.2:108 build/C/man2/set_tid_address.2:88 build/C/man2/splice.2:127 build/C/man2/tee.2:85 build/C/man2/vm86.2:54 build/C/man2/vmsplice.2:113
+#: build/C/man2/arch_prctl.2:82 build/C/man2/futex.2:214 build/C/man2/get_robust_list.2:77 build/C/man2/getunwind.2:81 build/C/man2/kexec_load.2:114 build/C/man2/lookup_dcookie.2:43 build/C/man2/modify_ldt.2:98 build/C/man2/nfsservctl.2:53 build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:2116 build/C/man2/perfmonctl.2:190 build/C/man2/personality.2:57 build/C/man2/pivot_root.2:101 build/C/man2/process_vm_readv.2:209 build/C/man2/ptrace.2:1780 build/C/man2/quotactl.2:419 build/C/man2/sendfile.2:108 build/C/man2/set_tid_address.2:88 build/C/man2/splice.2:127 build/C/man2/tee.2:85 build/C/man2/vm86.2:54 build/C/man2/vmsplice.2:113
#, no-wrap
msgid "RETURN VALUE"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/arch_prctl.2:88 build/C/man2/futex.2:234 build/C/man2/get_robust_list.2:84 build/C/man2/getunwind.2:88 build/C/man2/kexec_load.2:121 build/C/man2/lookup_dcookie.2:50 build/C/man2/modify_ldt.2:108 build/C/man2/pciconfig_read.2:77 build/C/man2/perf_event_open.2:1970 build/C/man2/personality.2:64 build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:229 build/C/man2/ptrace.2:1728 build/C/man2/quotactl.2:427 build/C/man2/sendfile.2:115 build/C/man2/set_tid_address.2:91 build/C/man2/splice.2:142 build/C/man2/tee.2:100 build/C/man2/vm86.2:59 build/C/man2/vmsplice.2:122
+#: build/C/man2/arch_prctl.2:88 build/C/man2/futex.2:239 build/C/man2/get_robust_list.2:84 build/C/man2/getunwind.2:88 build/C/man2/kexec_load.2:121 build/C/man2/lookup_dcookie.2:50 build/C/man2/modify_ldt.2:108 build/C/man2/pciconfig_read.2:77 build/C/man2/perf_event_open.2:2122 build/C/man2/personality.2:64 build/C/man2/pivot_root.2:105 build/C/man2/process_vm_readv.2:229 build/C/man2/ptrace.2:1801 build/C/man2/quotactl.2:427 build/C/man2/sendfile.2:115 build/C/man2/set_tid_address.2:91 build/C/man2/splice.2:142 build/C/man2/tee.2:100 build/C/man2/vm86.2:59 build/C/man2/vmsplice.2:122
#, no-wrap
msgid "ERRORS"
msgstr ""
#. type: TP
-#: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:249 build/C/man2/get_robust_list.2:111 build/C/man2/lookup_dcookie.2:51 build/C/man2/modify_ldt.2:109 build/C/man2/process_vm_readv.2:251 build/C/man2/process_vm_readv.2:256 build/C/man2/ptrace.2:1732 build/C/man2/quotactl.2:428 build/C/man2/sendfile.2:125 build/C/man2/vm86.2:60
+#: build/C/man2/arch_prctl.2:89 build/C/man2/futex.2:254 build/C/man2/get_robust_list.2:111 build/C/man2/lookup_dcookie.2:51 build/C/man2/modify_ldt.2:109 build/C/man2/process_vm_readv.2:251 build/C/man2/process_vm_readv.2:256 build/C/man2/ptrace.2:1805 build/C/man2/quotactl.2:428 build/C/man2/sendfile.2:125 build/C/man2/vm86.2:60
#, no-wrap
msgid "B<EFAULT>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/arch_prctl.2:93 build/C/man2/futex.2:261 build/C/man2/get_robust_list.2:88 build/C/man2/kexec_load.2:126 build/C/man2/lookup_dcookie.2:54 build/C/man2/modify_ldt.2:113 build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:1971 build/C/man2/personality.2:65 build/C/man2/pivot_root.2:114 build/C/man2/process_vm_readv.2:230 build/C/man2/process_vm_readv.2:241 build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1743 build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501 build/C/man2/sendfile.2:128 build/C/man2/splice.2:147 build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127
+#: build/C/man2/arch_prctl.2:93 build/C/man2/futex.2:266 build/C/man2/get_robust_list.2:88 build/C/man2/kexec_load.2:126 build/C/man2/lookup_dcookie.2:54 build/C/man2/modify_ldt.2:113 build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:2123 build/C/man2/personality.2:65 build/C/man2/pivot_root.2:114 build/C/man2/process_vm_readv.2:230 build/C/man2/process_vm_readv.2:241 build/C/man2/process_vm_readv.2:245 build/C/man2/ptrace.2:1816 build/C/man2/quotactl.2:434 build/C/man2/quotactl.2:501 build/C/man2/sendfile.2:128 build/C/man2/splice.2:147 build/C/man2/tee.2:101 build/C/man2/vmsplice.2:127
#, no-wrap
msgid "B<EINVAL>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/arch_prctl.2:97 build/C/man2/get_robust_list.2:98 build/C/man2/kexec_load.2:133 build/C/man2/lookup_dcookie.2:65 build/C/man2/pciconfig_read.2:105 build/C/man2/pivot_root.2:120 build/C/man2/process_vm_readv.2:267 build/C/man2/ptrace.2:1753 build/C/man2/quotactl.2:456 build/C/man2/vm86.2:68
+#: build/C/man2/arch_prctl.2:97 build/C/man2/get_robust_list.2:98 build/C/man2/kexec_load.2:133 build/C/man2/lookup_dcookie.2:65 build/C/man2/pciconfig_read.2:105 build/C/man2/pivot_root.2:120 build/C/man2/process_vm_readv.2:267 build/C/man2/ptrace.2:1826 build/C/man2/quotactl.2:456 build/C/man2/vm86.2:68
#, no-wrap
msgid "B<EPERM>"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:296 build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:142 build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130 build/C/man2/nfsservctl.2:56 build/C/man2/outb.2:87 build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:1989 build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:68 build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:279 build/C/man2/ptrace.2:1771 build/C/man2/sendfile.2:148 build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:170 build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143
+#: build/C/man2/arch_prctl.2:103 build/C/man2/futex.2:301 build/C/man2/getunwind.2:96 build/C/man2/kexec_load.2:142 build/C/man2/lookup_dcookie.2:78 build/C/man2/modify_ldt.2:130 build/C/man2/nfsservctl.2:58 build/C/man2/outb.2:87 build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:2141 build/C/man2/perfmonctl.2:199 build/C/man2/personality.2:68 build/C/man2/pivot_root.2:128 build/C/man2/process_vm_readv.2:279 build/C/man2/ptrace.2:1844 build/C/man2/sendfile.2:148 build/C/man2/set_tid_address.2:97 build/C/man2/splice.2:170 build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143
#, no-wrap
msgid "CONFORMING TO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:298 build/C/man2/get_robust_list.2:119 build/C/man2/getunwind.2:99 build/C/man2/kexec_load.2:144 build/C/man2/lookup_dcookie.2:81 build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:1994 build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131 build/C/man2/process_vm_readv.2:281 build/C/man2/ptrace.2:1773 build/C/man2/sendfile.2:155 build/C/man2/splice.2:172 build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
+#: build/C/man2/arch_prctl.2:107 build/C/man2/futex.2:303 build/C/man2/get_robust_list.2:119 build/C/man2/getunwind.2:99 build/C/man2/kexec_load.2:144 build/C/man2/lookup_dcookie.2:81 build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2146 build/C/man2/perfmonctl.2:202 build/C/man2/pivot_root.2:131 build/C/man2/process_vm_readv.2:281 build/C/man2/ptrace.2:1846 build/C/man2/sendfile.2:155 build/C/man2/splice.2:172 build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
#, no-wrap
msgid "NOTES"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:312 build/C/man2/get_robust_list.2:128 build/C/man2/getunwind.2:111 build/C/man2/kexec_load.2:159 build/C/man2/modify_ldt.2:136 build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114 build/C/man2/perf_event_open.2:2108 build/C/man2/perfmonctl.2:205 build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:331 build/C/man2/ptrace.2:1927 build/C/man2/quotactl.2:507 build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:226 build/C/man2/tee.2:197 build/C/man2/vmsplice.2:154
+#: build/C/man2/arch_prctl.2:138 build/C/man2/futex.2:317 build/C/man2/get_robust_list.2:128 build/C/man2/getunwind.2:111 build/C/man2/kexec_load.2:159 build/C/man2/modify_ldt.2:136 build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114 build/C/man2/perf_event_open.2:2266 build/C/man2/perfmonctl.2:205 build/C/man2/pivot_root.2:143 build/C/man2/process_vm_readv.2:331 build/C/man2/ptrace.2:2000 build/C/man2/quotactl.2:507 build/C/man2/sendfile.2:197 build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:226 build/C/man2/tee.2:197 build/C/man2/vmsplice.2:154
#, no-wrap
msgid "SEE ALSO"
msgstr ""
msgstr ""
#. type: SH
-#: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:325 build/C/man2/get_robust_list.2:137 build/C/man2/getunwind.2:113 build/C/man2/kexec_load.2:162 build/C/man2/lookup_dcookie.2:88 build/C/man2/modify_ldt.2:138 build/C/man2/nfsservctl.2:58 build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116 build/C/man2/perf_event_open.2:2114 build/C/man2/perfmonctl.2:209 build/C/man2/personality.2:72 build/C/man2/pivot_root.2:149 build/C/man2/process_vm_readv.2:334 build/C/man2/ptrace.2:1941 build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203 build/C/man2/set_tid_address.2:102 build/C/man2/splice.2:230 build/C/man2/tee.2:200 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:157
+#: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:331 build/C/man2/get_robust_list.2:137 build/C/man2/getunwind.2:113 build/C/man2/kexec_load.2:162 build/C/man2/lookup_dcookie.2:88 build/C/man2/modify_ldt.2:138 build/C/man2/nfsservctl.2:60 build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116 build/C/man2/perf_event_open.2:2272 build/C/man2/perfmonctl.2:209 build/C/man2/personality.2:72 build/C/man2/pivot_root.2:149 build/C/man2/process_vm_readv.2:334 build/C/man2/ptrace.2:2014 build/C/man2/quotactl.2:512 build/C/man2/sendfile.2:203 build/C/man2/set_tid_address.2:102 build/C/man2/splice.2:230 build/C/man2/tee.2:200 build/C/man2/vm86.2:76 build/C/man2/vmsplice.2:157
#, no-wrap
msgid "COLOPHON"
msgstr ""
#. type: Plain text
-#: build/C/man2/arch_prctl.2:152 build/C/man2/futex.2:332 build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:120 build/C/man2/kexec_load.2:169 build/C/man2/lookup_dcookie.2:95 build/C/man2/modify_ldt.2:145 build/C/man2/nfsservctl.2:65 build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123 build/C/man2/perf_event_open.2:2121 build/C/man2/perfmonctl.2:216 build/C/man2/personality.2:79 build/C/man2/pivot_root.2:156 build/C/man2/process_vm_readv.2:341 build/C/man2/ptrace.2:1948 build/C/man2/quotactl.2:519 build/C/man2/sendfile.2:210 build/C/man2/set_tid_address.2:109 build/C/man2/splice.2:237 build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164
+#: build/C/man2/arch_prctl.2:152 build/C/man2/futex.2:338 build/C/man2/get_robust_list.2:144 build/C/man2/getunwind.2:120 build/C/man2/kexec_load.2:169 build/C/man2/lookup_dcookie.2:95 build/C/man2/modify_ldt.2:145 build/C/man2/nfsservctl.2:67 build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123 build/C/man2/perf_event_open.2:2279 build/C/man2/perfmonctl.2:216 build/C/man2/personality.2:79 build/C/man2/pivot_root.2:156 build/C/man2/process_vm_readv.2:341 build/C/man2/ptrace.2:2021 build/C/man2/quotactl.2:519 build/C/man2/sendfile.2:210 build/C/man2/set_tid_address.2:109 build/C/man2/splice.2:237 build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164
msgid ""
-"This page is part of release 3.52 of the Linux I<man-pages> project. A "
+"This page is part of release 3.54 of the Linux I<man-pages> project. A "
"description of the project, and information about reporting bugs, can be "
"found at \\%http://www.kernel.org/doc/man-pages/."
msgstr ""
#. type: TH
#: build/C/man2/futex.2:53
#, no-wrap
-msgid "2013-03-15"
+msgid "2013-09-04"
msgstr ""
#. type: Plain text
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:108 build/C/man2/futex.2:216
+#: build/C/man2/futex.2:108 build/C/man2/futex.2:221
#, no-wrap
msgid "B<FUTEX_WAIT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:126
+#: build/C/man2/futex.2:131
msgid ""
"This operation atomically verifies that the futex address I<uaddr> still "
"contains the value I<val>, and sleeps awaiting B<FUTEX_WAKE> on this futex "
-"address. If the I<timeout> argument is non-NULL, its contents describe the "
-"minimum duration of the wait, which is infinite otherwise. The arguments "
-"I<uaddr2> and I<val3> are ignored."
+"address. If the I<timeout> argument is non-NULL, its contents specify the "
+"duration of the wait. (This interval will be rounded up to the system clock "
+"granularity, and kernel scheduling delays mean that the blocking interval "
+"may overrun by a small amount.) If I<timeout> is NULL, the call blocks "
+"indefinitely. The arguments I<uaddr2> and I<val3> are ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:134
+#: build/C/man2/futex.2:139
msgid ""
"For B<futex>(7), this call is executed if decrementing the count gave a "
"negative value (indicating contention), and will sleep until another process "
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:134 build/C/man2/futex.2:222
+#: build/C/man2/futex.2:139 build/C/man2/futex.2:227
#, no-wrap
msgid "B<FUTEX_WAKE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:145
+#: build/C/man2/futex.2:150
msgid ""
"This operation wakes at most I<val> processes waiting on this futex address "
"(i.e., inside B<FUTEX_WAIT>). The arguments I<timeout>, I<uaddr2> and "
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:151
+#: build/C/man2/futex.2:156
msgid ""
"For B<futex>(7), this is executed if incrementing the count showed that "
"there were waiters, once the futex value has been set to 1 (indicating that "
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:151
+#: build/C/man2/futex.2:156
#, no-wrap
msgid "B<FUTEX_FD> (present up to and including Linux 2.6.25)"
msgstr ""
#. , suitable for .BR poll (2).
#. type: Plain text
-#: build/C/man2/futex.2:167
+#: build/C/man2/futex.2:172
msgid ""
"To support asynchronous wakeups, this operation associates a file descriptor "
"with a futex. If another process executes a B<FUTEX_WAKE>, the process will "
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:172
+#: build/C/man2/futex.2:177
msgid ""
"To prevent race conditions, the caller should test if the futex has been "
"upped after B<FUTEX_FD> returns."
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:176
+#: build/C/man2/futex.2:181
msgid ""
"Because it was inherently racy, B<FUTEX_FD> has been removed from Linux "
"2.6.26 onward."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:176
+#: build/C/man2/futex.2:181
#, no-wrap
msgid "B<FUTEX_REQUEUE> (since Linux 2.5.70)"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:191
+#: build/C/man2/futex.2:196
msgid ""
"This operation was introduced in order to avoid a \"thundering herd\" effect "
"when B<FUTEX_WAKE> is used and all processes woken up need to acquire "
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:191
+#: build/C/man2/futex.2:196
#, no-wrap
msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:209
+#: build/C/man2/futex.2:214
msgid ""
"There was a race in the intended use of B<FUTEX_REQUEUE>, so "
"B<FUTEX_CMP_REQUEUE> was introduced. This is similar to B<FUTEX_REQUEUE>, "
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:216
+#: build/C/man2/futex.2:221
msgid ""
"In the event of an error, all operations return -1, and set I<errno> to "
"indicate the error. The return value on success depends on the operation, "
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:222
+#: build/C/man2/futex.2:227
msgid ""
"Returns 0 if the process was woken by a B<FUTEX_WAKE> call. See ERRORS for "
"the various possible error returns."
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:225 build/C/man2/futex.2:231 build/C/man2/futex.2:234
+#: build/C/man2/futex.2:230 build/C/man2/futex.2:236 build/C/man2/futex.2:239
msgid "Returns the number of processes woken up."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:225
+#: build/C/man2/futex.2:230
#, no-wrap
msgid "B<FUTEX_FD>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:228
+#: build/C/man2/futex.2:233
msgid "Returns the new file descriptor associated with the futex."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:228
+#: build/C/man2/futex.2:233
#, no-wrap
msgid "B<FUTEX_REQUEUE>"
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:231
+#: build/C/man2/futex.2:236
#, no-wrap
msgid "B<FUTEX_CMP_REQUEUE>"
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:235 build/C/man2/quotactl.2:486
+#: build/C/man2/futex.2:240 build/C/man2/quotactl.2:486
#, no-wrap
msgid "B<EACCES>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:238
+#: build/C/man2/futex.2:243
msgid "No read access to futex memory."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:238 build/C/man2/sendfile.2:116
+#: build/C/man2/futex.2:243 build/C/man2/sendfile.2:116
#, no-wrap
msgid "B<EAGAIN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:249
+#: build/C/man2/futex.2:254
msgid ""
"B<FUTEX_CMP_REQUEUE> detected that the value pointed to by I<uaddr> is not "
"equal to the expected value I<val3>. (This probably indicates a race; use "
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:254
+#: build/C/man2/futex.2:259
msgid "Error retrieving I<timeout> information from user space."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:254
+#: build/C/man2/futex.2:259
#, no-wrap
msgid "B<EINTR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:261
+#: build/C/man2/futex.2:266
msgid ""
"A B<FUTEX_WAIT> operation was interrupted by a signal (see B<signal>(7)) or "
"a spurious wakeup."
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:264
+#: build/C/man2/futex.2:269
msgid "Invalid argument."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:264
+#: build/C/man2/futex.2:269
#, no-wrap
msgid "B<ENFILE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:267
+#: build/C/man2/futex.2:272
msgid "The system limit on the total number of open files has been reached."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:267 build/C/man2/modify_ldt.2:126 build/C/man2/pciconfig_read.2:93 build/C/man2/quotactl.2:447 build/C/man2/vm86.2:64
+#: build/C/man2/futex.2:272 build/C/man2/modify_ldt.2:126 build/C/man2/pciconfig_read.2:93 build/C/man2/quotactl.2:447 build/C/man2/vm86.2:64
#, no-wrap
msgid "B<ENOSYS>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:271
+#: build/C/man2/futex.2:276
msgid "Invalid operation specified in I<op>."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:271
+#: build/C/man2/futex.2:276
#, no-wrap
msgid "B<ETIMEDOUT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:276
+#: build/C/man2/futex.2:281
msgid "Timeout during the B<FUTEX_WAIT> operation."
msgstr ""
#. type: TP
-#: build/C/man2/futex.2:276
+#: build/C/man2/futex.2:281
#, no-wrap
msgid "B<EWOULDBLOCK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:286
+#: build/C/man2/futex.2:291
msgid ""
"I<op> was B<FUTEX_WAIT> and the value pointed to by I<uaddr> was not equal "
"to the expected value I<val> at the time of the call."
msgstr ""
#. type: SH
-#: build/C/man2/futex.2:286 build/C/man2/get_robust_list.2:115 build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:138 build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196 build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:276 build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94 build/C/man2/splice.2:165 build/C/man2/tee.2:114 build/C/man2/vmsplice.2:138
+#: build/C/man2/futex.2:291 build/C/man2/get_robust_list.2:115 build/C/man2/getunwind.2:94 build/C/man2/kexec_load.2:138 build/C/man2/lookup_dcookie.2:73 build/C/man2/perfmonctl.2:196 build/C/man2/pivot_root.2:125 build/C/man2/process_vm_readv.2:276 build/C/man2/sendfile.2:142 build/C/man2/set_tid_address.2:94 build/C/man2/splice.2:165 build/C/man2/tee.2:114 build/C/man2/vmsplice.2:138
#, no-wrap
msgid "VERSIONS"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:296
+#: build/C/man2/futex.2:301
msgid ""
"Initial futex support was merged in Linux 2.5.7 but with different semantics "
"from what was described above. A 4-argument system call with the semantics "
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:298 build/C/man2/kexec_load.2:144 build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:172 build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
+#: build/C/man2/futex.2:303 build/C/man2/kexec_load.2:144 build/C/man2/set_tid_address.2:99 build/C/man2/splice.2:172 build/C/man2/tee.2:121 build/C/man2/vmsplice.2:145
msgid "This system call is Linux-specific."
msgstr ""
#. and Rusty Russell (IBM Linux Technology Center).
#. This page written by bert hubert.
#. type: Plain text
-#: build/C/man2/futex.2:312
+#: build/C/man2/futex.2:317
msgid ""
"To reiterate, bare futexes are not intended as an easy-to-use abstraction "
"for end-users. (There is no wrapper function for this system call in "
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:314
-msgid "B<futex>(7)"
+#: build/C/man2/futex.2:320
+msgid "B<restart_syscall>(2), B<futex>(7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:317
+#: build/C/man2/futex.2:323
msgid ""
"I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
"of the Ottawa Linux Symposium 2002), online at"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:320
+#: build/C/man2/futex.2:326
msgid ""
"E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
"E<.UE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:322
+#: build/C/man2/futex.2:328
msgid "Futex example library, futex-*.tar.bz2 at"
msgstr ""
#. type: Plain text
-#: build/C/man2/futex.2:325
+#: build/C/man2/futex.2:331
msgid ""
"E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
"E<.UE>"
msgstr ""
#. type: TP
-#: build/C/man2/get_robust_list.2:106 build/C/man2/process_vm_readv.2:271 build/C/man2/ptrace.2:1766 build/C/man2/quotactl.2:461 build/C/man2/quotactl.2:504
+#: build/C/man2/get_robust_list.2:106 build/C/man2/process_vm_readv.2:271 build/C/man2/ptrace.2:1839 build/C/man2/quotactl.2:461 build/C/man2/quotactl.2:504
#, no-wrap
msgid "B<ESRCH>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110 build/C/man2/ptrace.2:1729 build/C/man2/quotactl.2:495
+#: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110 build/C/man2/ptrace.2:1802 build/C/man2/quotactl.2:495
#, no-wrap
msgid "B<EBUSY>"
msgstr ""
#. type: TH
#: build/C/man2/nfsservctl.2:8
#, no-wrap
-msgid "2012-03-05"
+msgid "2013-09-17"
msgstr ""
#. type: Plain text
msgstr ""
#. type: Plain text
-#: build/C/man2/nfsservctl.2:33
+#: build/C/man2/nfsservctl.2:35
#, no-wrap
msgid ""
"/*\n"
"#define NFSCTL_SVC 0 /* This is a server process. */\n"
"#define NFSCTL_ADDCLIENT 1 /* Add an NFS client. */\n"
"#define NFSCTL_DELCLIENT 2 /* Remove an NFS client. */\n"
-"#define NFSCTL_EXPORT 3 /* export a file system. */\n"
-"#define NFSCTL_UNEXPORT 4 /* unexport a file system. */\n"
-"#define NFSCTL_UGIDUPDATE 5 /* update a client's UID/GID map. */\n"
-"#define NFSCTL_GETFH 6 /* get an fh (used by mountd) */\n"
+"#define NFSCTL_EXPORT 3 /* Export a filesystem. */\n"
+"#define NFSCTL_UNEXPORT 4 /* Unexport a filesystem. */\n"
+"#define NFSCTL_UGIDUPDATE 5 /* Update a client's UID/GID map\n"
+" (only in Linux 2.4.x and earlier). */\n"
+"#define NFSCTL_GETFH 6 /* Get a file handle (used by mountd)\n"
+" (only in Linux 2.4.x and earlier). */\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/nfsservctl.2:45
+#: build/C/man2/nfsservctl.2:47
#, no-wrap
msgid ""
"struct nfsctl_arg {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/nfsservctl.2:50
+#: build/C/man2/nfsservctl.2:52
#, no-wrap
msgid ""
"union nfsctl_res {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/nfsservctl.2:56 build/C/man2/pivot_root.2:105 build/C/man2/vm86.2:59
+#: build/C/man2/nfsservctl.2:58 build/C/man2/pivot_root.2:105 build/C/man2/vm86.2:59
msgid ""
"On success, zero is returned. On error, -1 is returned, and I<errno> is set "
"appropriately."
msgstr ""
#. type: Plain text
-#: build/C/man2/nfsservctl.2:58
+#: build/C/man2/nfsservctl.2:60
msgid "This call is Linux-specific."
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1746 build/C/man2/sendfile.2:134
+#: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1819 build/C/man2/sendfile.2:134
#, no-wrap
msgid "B<EIO>"
msgstr ""
#. type: TH
#: build/C/man2/perf_event_open.2:27
#, no-wrap
-msgid "2013-07-02"
+msgid "2013-09-13"
msgstr ""
#. type: Plain text
msgid ""
"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...). In this mode, the event is measured only if the thread "
+"memory, etc.). In this mode, the event is measured only if the thread "
"running on the monitored CPU belongs to the designated container (cgroup). "
"The cgroup is identified by passing a file descriptor opened on its "
"directory in the cgroupfs filesystem. For instance, if the cgroup to "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:261 build/C/man2/perf_event_open.2:1297
+#: build/C/man2/perf_event_open.2:261 build/C/man2/perf_event_open.2:1379
#, no-wrap
msgid "I<type>"
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:316 build/C/man2/perf_event_open.2:1734
+#: build/C/man2/perf_event_open.2:316 build/C/man2/perf_event_open.2:1327
#, no-wrap
msgid "I<size>"
msgstr ""
#. type: Plain text
#: build/C/man2/perf_event_open.2:383
-msgid "Total cycles. Be wary of what happens during CPU frequency scaling"
+msgid "Total cycles. Be wary of what happens during CPU frequency scaling."
msgstr ""
#. type: TP
#: build/C/man2/perf_event_open.2:388
msgid ""
"Retired instructions. Be careful, these can be affected by various issues, "
-"most notably hardware interrupt counts"
+"most notably hardware interrupt counts."
msgstr ""
#. type: TP
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:659
-msgid "Records the branch stack. See branch_sample_type."
+#: build/C/man2/perf_event_open.2:660
+msgid ""
+"This provides a record of recent branches, as provided by CPU branch "
+"sampling hardware (such as Intel Last Branch Record). Not all hardware "
+"supports this feature."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:664
+msgid ""
+"See the I<branch_sample_type> field for how to filter which branches are "
+"reported."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:659
+#: build/C/man2/perf_event_open.2:664
#, no-wrap
msgid "B<PERF_SAMPLE_REGS_USER> (Since Linux 3.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:663
+#: build/C/man2/perf_event_open.2:668
msgid ""
"Records the current user-level CPU register state (the values in the process "
"before the kernel was called)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:663
+#: build/C/man2/perf_event_open.2:668
#, no-wrap
msgid "B<PERF_SAMPLE_STACK_USER> (Since Linux 3.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:666
+#: build/C/man2/perf_event_open.2:671
msgid "Records the user level stack, allowing stack unwinding."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:666
+#: build/C/man2/perf_event_open.2:671
#, no-wrap
msgid "B<PERF_SAMPLE_WEIGHT> (Since Linux 3.10)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:672
+#: build/C/man2/perf_event_open.2:677
msgid ""
"Records a hardware provided weight value that expresses how costly the "
"sampled event was. This allows the hardware to highlight expensive events "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:672
+#: build/C/man2/perf_event_open.2:677
#, no-wrap
msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:678
+#: build/C/man2/perf_event_open.2:683
msgid ""
"Records the data source: where in the memory hierarchy the data associated "
"with the sampled instruction came from. This is only available if the "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:679
+#: build/C/man2/perf_event_open.2:684
#, no-wrap
msgid "I<read_format>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:686
+#: build/C/man2/perf_event_open.2:691
msgid ""
"This field specifies the format of the data returned by B<read>(2) on a "
"B<perf_event_open>() file descriptor."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:687
+#: build/C/man2/perf_event_open.2:692
#, no-wrap
msgid "B<PERF_FORMAT_TOTAL_TIME_ENABLED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:694
+#: build/C/man2/perf_event_open.2:699
msgid ""
"Adds the 64-bit I<time_enabled> field. This can be used to calculate "
"estimated totals if the PMU is overcommitted and multiplexing is happening."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:694
+#: build/C/man2/perf_event_open.2:699
#, no-wrap
msgid "B<PERF_FORMAT_TOTAL_TIME_RUNNING>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:701
+#: build/C/man2/perf_event_open.2:706
msgid ""
"Adds the 64-bit I<time_running> field. This can be used to calculate "
"estimated totals if the PMU is overcommitted and multiplexing is happening."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:701
+#: build/C/man2/perf_event_open.2:706
#, no-wrap
msgid "B<PERF_FORMAT_ID>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:704
+#: build/C/man2/perf_event_open.2:709
msgid "Adds a 64-bit unique value that corresponds to the event group."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:704
+#: build/C/man2/perf_event_open.2:709
#, no-wrap
msgid "B<PERF_FORMAT_GROUP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:707
+#: build/C/man2/perf_event_open.2:712
msgid "Allows all counter values in an event group to be read with one read."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:708
+#: build/C/man2/perf_event_open.2:713
#, no-wrap
msgid "I<disabled>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:718
+#: build/C/man2/perf_event_open.2:723
msgid ""
"The I<disabled> bit specifies whether the counter starts out disabled or "
"enabled. If disabled, the event can later be enabled by B<ioctl>(2), "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:718
+#: build/C/man2/perf_event_open.2:723
#, no-wrap
msgid "I<inherit>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:727
+#: build/C/man2/perf_event_open.2:732
msgid ""
"The I<inherit> bit specifies that this counter should count events of child "
"tasks as well as the task specified. This applies only to new children, not "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:732
+#: build/C/man2/perf_event_open.2:737
msgid ""
"Inherit does not work for some combinations of I<read_format>s, such as "
"B<PERF_FORMAT_GROUP>."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:732
+#: build/C/man2/perf_event_open.2:737
#, no-wrap
msgid "I<pinned>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:745
+#: build/C/man2/perf_event_open.2:750
msgid ""
"The I<pinned> bit specifies that the counter should always be on the CPU if "
"at all possible. It applies only to hardware counters and only to group "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:745
+#: build/C/man2/perf_event_open.2:750
#, no-wrap
msgid "I<exclusive>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:754
+#: build/C/man2/perf_event_open.2:759
msgid ""
"The I<exclusive> bit specifies that when this counter's group is on the CPU, "
"it should be the only group using the CPU's counters. In the future this "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:754
+#: build/C/man2/perf_event_open.2:759
#, no-wrap
msgid "I<exclude_user>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:757
+#: build/C/man2/perf_event_open.2:762
msgid "If this bit is set, the count excludes events that happen in user space."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:757
+#: build/C/man2/perf_event_open.2:762
#, no-wrap
msgid "I<exclude_kernel>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:760
+#: build/C/man2/perf_event_open.2:765
msgid "If this bit is set, the count excludes events that happen in kernel-space."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:760
+#: build/C/man2/perf_event_open.2:765
#, no-wrap
msgid "I<exclude_hv>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:768
+#: build/C/man2/perf_event_open.2:773
msgid ""
"If this bit is set, the count excludes events that happen in the "
"hypervisor. This is mainly for PMUs that have built-in support for handling "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:768
+#: build/C/man2/perf_event_open.2:773
#, no-wrap
msgid "I<exclude_idle>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:771
+#: build/C/man2/perf_event_open.2:776
msgid "If set, don't count when the CPU is idle."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:771
+#: build/C/man2/perf_event_open.2:776
#, no-wrap
msgid "I<mmap>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:776
+#: build/C/man2/perf_event_open.2:781
msgid "The I<mmap> bit enables recording of exec mmap events."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:776
+#: build/C/man2/perf_event_open.2:781
#, no-wrap
msgid "I<comm>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:787
+#: build/C/man2/perf_event_open.2:792
msgid ""
"The I<comm> bit enables tracking of process command name as modified by the "
"I<exec>(2) and I<prctl>(PR_SET_NAME) system calls. Unfortunately for "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:787
+#: build/C/man2/perf_event_open.2:792
#, no-wrap
msgid "I<freq>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:794
+#: build/C/man2/perf_event_open.2:799
msgid ""
"If this bit is set, then I<sample_frequency> not I<sample_period> is used "
"when setting up the sampling interval."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:794
+#: build/C/man2/perf_event_open.2:799
#, no-wrap
msgid "I<inherit_stat>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:801
+#: build/C/man2/perf_event_open.2:806
msgid ""
"This bit enables saving of event counts on context switch for inherited "
"tasks. This is meaningful only if the I<inherit> field is set."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:801
+#: build/C/man2/perf_event_open.2:806
#, no-wrap
msgid "I<enable_on_exec>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:806
+#: build/C/man2/perf_event_open.2:811
msgid ""
"If this bit is set, a counter is automatically enabled after a call to "
"B<exec>(2)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:806
+#: build/C/man2/perf_event_open.2:811
#, no-wrap
msgid "I<task>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:810
+#: build/C/man2/perf_event_open.2:815
msgid ""
"If this bit is set, then fork/exit notifications are included in the ring "
"buffer."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:810
+#: build/C/man2/perf_event_open.2:815
#, no-wrap
msgid "I<watermark>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:818
+#: build/C/man2/perf_event_open.2:823
msgid ""
"If set, have a sampling interrupt happen when we cross the "
"I<wakeup_watermark> boundary. Otherwise interrupts happen after "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:818
+#: build/C/man2/perf_event_open.2:823
#, no-wrap
msgid "I<precise_ip> (Since Linux 2.6.35)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:828
+#: build/C/man2/perf_event_open.2:833
msgid ""
"This controls the amount of skid. Skid is how many instructions execute "
"between an event of interest happening and the kernel being able to stop and "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:830
+#: build/C/man2/perf_event_open.2:835
msgid "The values of this are the following:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:831
+#: build/C/man2/perf_event_open.2:836
#, no-wrap
msgid "0 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:835
-msgid "B<SAMPLE_IP> can have arbitrary skid"
+#: build/C/man2/perf_event_open.2:840
+msgid "B<SAMPLE_IP> can have arbitrary skid."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:835
+#: build/C/man2/perf_event_open.2:840
#, no-wrap
msgid "1 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:839
-msgid "B<SAMPLE_IP> must have constant skid"
+#: build/C/man2/perf_event_open.2:844
+msgid "B<SAMPLE_IP> must have constant skid."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:839
+#: build/C/man2/perf_event_open.2:844
#, no-wrap
msgid "2 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:843
-msgid "B<SAMPLE_IP> requested to have 0 skid"
+#: build/C/man2/perf_event_open.2:848
+msgid "B<SAMPLE_IP> requested to have 0 skid."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:843
+#: build/C/man2/perf_event_open.2:848
#, no-wrap
msgid "3 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:849
+#: build/C/man2/perf_event_open.2:854
msgid "B<SAMPLE_IP> must have 0 skid. See also B<PERF_RECORD_MISC_EXACT_IP>."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:850
+#: build/C/man2/perf_event_open.2:855
#, no-wrap
msgid "I<mmap_data> (Since Linux 2.6.36)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:856
+#: build/C/man2/perf_event_open.2:861
msgid ""
"The counterpart of the I<mmap> field, but enables including data mmap events "
"in the ring-buffer."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:856
+#: build/C/man2/perf_event_open.2:861
#, no-wrap
msgid "I<sample_id_all> (Since Linux 2.6.38)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:864
+#: build/C/man2/perf_event_open.2:869
msgid ""
"If set, then TID, TIME, ID, CPU, and STREAM_ID can additionally be included "
"in non-B<PERF_RECORD_SAMPLE>s if the corresponding I<sample_type> is "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:864
+#: build/C/man2/perf_event_open.2:869
#, no-wrap
msgid "I<exclude_host> (Since Linux 3.2)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:867
-msgid "Do not measure time spent in VM host"
+#: build/C/man2/perf_event_open.2:872
+msgid "Do not measure time spent in VM host."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:867
+#: build/C/man2/perf_event_open.2:872
#, no-wrap
msgid "I<exclude_guest> (Since Linux 3.2)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:870
-msgid "Do not measure time spent in VM guest"
+#: build/C/man2/perf_event_open.2:875
+msgid "Do not measure time spent in VM guest."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:870
+#: build/C/man2/perf_event_open.2:875
#, no-wrap
msgid "I<exclude_callchain_kernel> (Since Linux 3.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:873
+#: build/C/man2/perf_event_open.2:878
msgid "Do not include kernel callchains."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:873
+#: build/C/man2/perf_event_open.2:878
#, no-wrap
msgid "I<exclude_callchain_user> (Since Linux 3.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:876
+#: build/C/man2/perf_event_open.2:881
msgid "Do not include user callchains."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:876
+#: build/C/man2/perf_event_open.2:881
#, no-wrap
msgid "I<wakeup_events>, I<wakeup_watermark>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:886
+#: build/C/man2/perf_event_open.2:891
msgid ""
"This union sets how many samples (I<wakeup_events>) or bytes "
"(I<wakeup_watermark>) happen before an overflow signal happens. Which one "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:896
+#: build/C/man2/perf_event_open.2:901
msgid ""
"I<wakeup_events> only counts B<PERF_RECORD_SAMPLE> record types. To receive "
"a signal for every incoming B<PERF_RECORD> type set I<wakeup_watermark> to "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:896
+#: build/C/man2/perf_event_open.2:901
#, no-wrap
msgid "I<bp_type> (Since Linux 2.6.33)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:900
+#: build/C/man2/perf_event_open.2:905
msgid "This chooses the breakpoint type. It is one of:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:901
+#: build/C/man2/perf_event_open.2:906
#, no-wrap
msgid "B<HW_BREAKPOINT_EMPTY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:904
-msgid "no breakpoint"
+#: build/C/man2/perf_event_open.2:909
+msgid "No breakpoint."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:904
+#: build/C/man2/perf_event_open.2:909
#, no-wrap
msgid "B<HW_BREAKPOINT_R>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:907
-msgid "count when we read the memory location"
+#: build/C/man2/perf_event_open.2:912
+msgid "Count when we read the memory location."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:907
+#: build/C/man2/perf_event_open.2:912
#, no-wrap
msgid "B<HW_BREAKPOINT_W>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:910
-msgid "count when we write the memory location"
+#: build/C/man2/perf_event_open.2:915
+msgid "Count when we write the memory location."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:910
+#: build/C/man2/perf_event_open.2:915
#, no-wrap
msgid "B<HW_BREAKPOINT_RW>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:913
-msgid "count when we read or write the memory location"
+#: build/C/man2/perf_event_open.2:918
+msgid "Count when we read or write the memory location."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:913
+#: build/C/man2/perf_event_open.2:918
#, no-wrap
msgid "B<HW_BREAKPOINT_X>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:916
-msgid "count when we execute code at the memory location"
+#: build/C/man2/perf_event_open.2:921
+msgid "Count when we execute code at the memory location."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:925
+#: build/C/man2/perf_event_open.2:930
msgid ""
"The values can be combined via a bitwise or, but the combination of "
"B<HW_BREAKPOINT_R> or B<HW_BREAKPOINT_W> with B<HW_BREAKPOINT_X> is not "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:926
+#: build/C/man2/perf_event_open.2:931
#, no-wrap
msgid "I<bp_addr> (Since Linux 2.6.33)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:933
+#: build/C/man2/perf_event_open.2:938
msgid ""
"I<bp_addr> address of the breakpoint. For execution breakpoints this is the "
"memory address of the instruction of interest; for read and write "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:933
+#: build/C/man2/perf_event_open.2:938
#, no-wrap
msgid "I<config1> (Since Linux 2.6.39)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:940
+#: build/C/man2/perf_event_open.2:945
msgid ""
"I<config1> is used for setting events that need an extra register or "
"otherwise do not fit in the regular config field. Raw OFFCORE_EVENTS on "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:940
+#: build/C/man2/perf_event_open.2:945
#, no-wrap
msgid "I<bp_len> (Since Linux 2.6.33)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:954
+#: build/C/man2/perf_event_open.2:959
msgid ""
"I<bp_len> is the length of the breakpoint being measured if I<type> is "
"B<PERF_TYPE_BREAKPOINT>. Options are B<HW_BREAKPOINT_LEN_1>, "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:954
+#: build/C/man2/perf_event_open.2:959
#, no-wrap
msgid "I<config2> (Since Linux 2.6.39)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:961
+#: build/C/man2/perf_event_open.2:966
msgid "I<config2> is a further extension of the I<config1> field."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:961
+#: build/C/man2/perf_event_open.2:966
#, no-wrap
msgid "I<branch_sample_type> (Since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:965
+#: build/C/man2/perf_event_open.2:972
msgid ""
-"This is used with the CPUs hardware branch sampling, if available. It can "
-"have one of the following values:"
+"If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then this specifies what branches "
+"to include in the branch record."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:978
+msgid ""
+"The first part of the value is the privilege level, which is a combination "
+"of one of the following values. If the user does not set privilege level "
+"explicitly, the kernel will use the event's privilege level. Event and "
+"branch privilege levels do not have to match."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:966
+#: build/C/man2/perf_event_open.2:979
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_USER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:969
-msgid "Branch target is in user space"
+#: build/C/man2/perf_event_open.2:982
+msgid "Branch target is in user space."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:969
+#: build/C/man2/perf_event_open.2:982
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_KERNEL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:972
-msgid "Branch target is in kernel space"
+#: build/C/man2/perf_event_open.2:985
+msgid "Branch target is in kernel space."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:972
+#: build/C/man2/perf_event_open.2:985
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_HV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:975
-msgid "Branch target is in hypervisor"
+#: build/C/man2/perf_event_open.2:988
+msgid "Branch target is in hypervisor."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:988
+#, no-wrap
+msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:991
+msgid "A convenience value that is the three preceding values ORed together."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:995
+msgid ""
+"In addition to the privilege value, at least one or more of the following "
+"bits must be set."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:975
+#: build/C/man2/perf_event_open.2:996
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_ANY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:978
+#: build/C/man2/perf_event_open.2:999
msgid "Any branch type."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:978
+#: build/C/man2/perf_event_open.2:999
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_ANY_CALL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:981
-msgid "Any call branch"
+#: build/C/man2/perf_event_open.2:1002
+msgid "Any call branch."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:981
+#: build/C/man2/perf_event_open.2:1002
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_ANY_RETURN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:984
-msgid "Any return branch"
+#: build/C/man2/perf_event_open.2:1005
+msgid "Any return branch."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:984
+#: build/C/man2/perf_event_open.2:1005
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_IND_CALL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:987
-msgid "Indirect calls"
+#: build/C/man2/perf_event_open.2:1008
+msgid "Indirect calls."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:987
+#: build/C/man2/perf_event_open.2:1008
#, no-wrap
-msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
+msgid "B<PERF_SAMPLE_BRANCH_ABORT_TX> (Since Linux 3.11)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:990
-msgid "User, kernel, and hv"
+#: build/C/man2/perf_event_open.2:1011
+msgid "Transactional memory aborts."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:991
+#: build/C/man2/perf_event_open.2:1011
+#, no-wrap
+msgid "B<PERF_SAMPLE_BRANCH_IN_TX> (Since Linux 3.11)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1014
+msgid "Branch in transactional memory transaction."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1014
+#, no-wrap
+msgid "B<PERF_SAMPLE_BRANCH_NO_TX> (Since Linux 3.11)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1017
+msgid "Branch not in transactional memory transaction."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1019
#, no-wrap
msgid "I<sample_regs_user> (Since Linux 3.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:997
+#: build/C/man2/perf_event_open.2:1025
msgid ""
"This bitmask defines the set of user CPU registers to dump on samples. The "
"layout of the register mask is architecture specific and described in the "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:997
+#: build/C/man2/perf_event_open.2:1025
#, no-wrap
msgid "I<sample_stack_user> (Since Linux 3.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1002
+#: build/C/man2/perf_event_open.2:1030
msgid ""
"This defines the size of the user stack to dump if B<PERF_SAMPLE_STACK_USER> "
"is specified."
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1002
+#: build/C/man2/perf_event_open.2:1030
#, no-wrap
msgid "Reading results"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1012
+#: build/C/man2/perf_event_open.2:1040
msgid ""
"Once a B<perf_event_open>() file descriptor has been opened, the values of "
"the events can be read from the file descriptor. The values that are there "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1017
+#: build/C/man2/perf_event_open.2:1045
msgid ""
"If you attempt to read into a buffer that is not big enough to hold the data "
"B<ENOSPC> is returned"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1019
+#: build/C/man2/perf_event_open.2:1047
msgid "Here is the layout of the data returned by a read:"
msgstr ""
#. type: IP
-#: build/C/man2/perf_event_open.2:1019 build/C/man2/perf_event_open.2:1037 build/C/man2/ptrace.2:1553 build/C/man2/ptrace.2:1563 build/C/man2/ptrace.2:1571 build/C/man2/ptrace.2:1577 build/C/man2/ptrace.2:1706
+#: build/C/man2/perf_event_open.2:1047 build/C/man2/perf_event_open.2:1065 build/C/man2/ptrace.2:1619 build/C/man2/ptrace.2:1629 build/C/man2/ptrace.2:1637 build/C/man2/ptrace.2:1643 build/C/man2/ptrace.2:1772
#, no-wrap
msgid "*"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1023
+#: build/C/man2/perf_event_open.2:1051
msgid ""
"If B<PERF_FORMAT_GROUP> was specified to allow reading all events in a group "
"at once:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1035
+#: build/C/man2/perf_event_open.2:1063
#, no-wrap
msgid ""
"struct read_format {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1043
+#: build/C/man2/perf_event_open.2:1071
msgid "If B<PERF_FORMAT_GROUP> was I<not> specified:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1052
+#: build/C/man2/perf_event_open.2:1080
#, no-wrap
msgid ""
"struct read_format {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1056
+#: build/C/man2/perf_event_open.2:1084
msgid "The values read are as follows:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1056
+#: build/C/man2/perf_event_open.2:1084
#, no-wrap
msgid "I<nr>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1062
+#: build/C/man2/perf_event_open.2:1090
msgid ""
"The number of events in this file descriptor. Only available if "
"B<PERF_FORMAT_GROUP> was specified."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1062
+#: build/C/man2/perf_event_open.2:1090
#, no-wrap
msgid "I<time_enabled>, I<time_running>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1074
+#: build/C/man2/perf_event_open.2:1102
msgid ""
"Total time the event was enabled and running. Normally these are the same. "
"If more events are started than available counter slots on the PMU, then "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1074
+#: build/C/man2/perf_event_open.2:1102
#, no-wrap
msgid "I<value>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1077
+#: build/C/man2/perf_event_open.2:1105
msgid "An unsigned 64-bit value containing the counter result."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1077 build/C/man2/perf_event_open.2:1341 build/C/man2/perf_event_open.2:1478
+#: build/C/man2/perf_event_open.2:1105 build/C/man2/perf_event_open.2:1423 build/C/man2/perf_event_open.2:1560
#, no-wrap
msgid "I<id>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1083
+#: build/C/man2/perf_event_open.2:1111
msgid ""
"A globally unique value for this particular event, only there if "
"B<PERF_FORMAT_ID> was specified in I<read_format>."
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1083
+#: build/C/man2/perf_event_open.2:1111
#, no-wrap
msgid "MMAP layout"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1093
+#: build/C/man2/perf_event_open.2:1121
msgid ""
"When using B<perf_event_open>() in sampled mode, asynchronous events (like "
"counter overflow or B<PROT_EXEC> mmap tracking) are logged into a "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1099
+#: build/C/man2/perf_event_open.2:1127
msgid ""
"The mmap size should be 1+2^n pages, where the first page is a metadata page "
"(I<struct perf_event_mmap_page>) that contains various bits of information "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1102
+#: build/C/man2/perf_event_open.2:1130
msgid ""
"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."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1104
+#: build/C/man2/perf_event_open.2:1132
msgid "The structure of the first metadata mmap page is as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1128
+#: build/C/man2/perf_event_open.2:1156
#, no-wrap
msgid ""
"struct perf_event_mmap_page {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1134
+#: build/C/man2/perf_event_open.2:1162
msgid ""
"The following looks at the fields in the I<perf_event_mmap_page> structure "
"in more detail:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1134
+#: build/C/man2/perf_event_open.2:1162
#, no-wrap
msgid "I<version>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1137
+#: build/C/man2/perf_event_open.2:1165
msgid "Version number of this structure."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1137
+#: build/C/man2/perf_event_open.2:1165
#, no-wrap
msgid "I<compat_version>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1140
+#: build/C/man2/perf_event_open.2:1168
msgid "The lowest version this is compatible with."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1140
+#: build/C/man2/perf_event_open.2:1168
#, no-wrap
msgid "I<lock>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1143
+#: build/C/man2/perf_event_open.2:1171
msgid "A seqlock for synchronization."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1143
+#: build/C/man2/perf_event_open.2:1171
#, no-wrap
msgid "I<index>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1146
+#: build/C/man2/perf_event_open.2:1174
msgid "A unique hardware counter identifier."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1146
+#: build/C/man2/perf_event_open.2:1174
#, no-wrap
msgid "I<offset>"
msgstr ""
#. FIXME clarify
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1150
+#: build/C/man2/perf_event_open.2:1178
msgid "Add this to hardware counter value??"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1150
+#: build/C/man2/perf_event_open.2:1178
#, no-wrap
msgid "I<time_enabled>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1153
+#: build/C/man2/perf_event_open.2:1181
msgid "Time the event was active."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1153
+#: build/C/man2/perf_event_open.2:1181
#, no-wrap
msgid "I<time_running>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1156
+#: build/C/man2/perf_event_open.2:1184
msgid "Time the event was running."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1156
+#: build/C/man2/perf_event_open.2:1184
#, no-wrap
msgid "I<cap_usr_time>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1159
-msgid "User time capability"
+#: build/C/man2/perf_event_open.2:1187
+msgid "User time capability."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1159
+#: build/C/man2/perf_event_open.2:1187
#, no-wrap
msgid "I<cap_usr_rdpmc>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1164
+#: build/C/man2/perf_event_open.2:1192
msgid ""
"If the hardware supports user-space read of performance counters without "
"syscall (this is the \"rdpmc\" instruction on x86), then the following code "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1171
+#: build/C/man2/perf_event_open.2:1199
#, no-wrap
msgid ""
"u32 seq, time_mult, time_shift, idx, width;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1177
+#: build/C/man2/perf_event_open.2:1205
#, no-wrap
msgid ""
"do {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1184
+#: build/C/man2/perf_event_open.2:1212
#, no-wrap
msgid ""
" if (pc-E<gt>cap_usr_time && enabled != running) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1187
+#: build/C/man2/perf_event_open.2:1215
#, no-wrap
msgid ""
" idx = pc-E<gt>index;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1192
+#: build/C/man2/perf_event_open.2:1220
#, no-wrap
msgid ""
" if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1195
+#: build/C/man2/perf_event_open.2:1223
#, no-wrap
msgid ""
" barrier();\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1197
+#: build/C/man2/perf_event_open.2:1225
#, no-wrap
msgid "I<pmc_width>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1204
+#: build/C/man2/perf_event_open.2:1232
msgid ""
"If I<cap_usr_rdpmc>, this field provides the bit-width of the value read "
"using the rdpmc or equivalent instruction. This can be used to sign extend "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1210
+#: build/C/man2/perf_event_open.2:1238
#, no-wrap
msgid ""
"pmc E<lt>E<lt>= 64 - pmc_width;\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1212
+#: build/C/man2/perf_event_open.2:1240
#, no-wrap
msgid "I<time_shift>, I<time_mult>, I<time_offset>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1219
+#: build/C/man2/perf_event_open.2:1247
msgid ""
"If I<cap_usr_time>, these fields can be used to compute the time delta since "
"time_enabled (in nanoseconds) using rdtsc or similar."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1227
+#: build/C/man2/perf_event_open.2:1255
#, no-wrap
msgid ""
" u64 quot, rem;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1239
+#: build/C/man2/perf_event_open.2:1267
msgid ""
"Where I<time_offset>, I<time_mult>, I<time_shift>, and I<cyc> are read in "
"the seqcount loop described above. This delta can then be added to enabled "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1247
+#: build/C/man2/perf_event_open.2:1275
#, no-wrap
msgid ""
" enabled += delta;\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1248
+#: build/C/man2/perf_event_open.2:1276
#, no-wrap
msgid "I<data_head>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1254
+#: build/C/man2/perf_event_open.2:1282
msgid ""
"This points to the head of the data section. The value continuously "
"increases, it does not wrap. The value needs to be manually wrapped by the "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1257
+#: build/C/man2/perf_event_open.2:1285
msgid ""
"On SMP-capable platforms, after reading the data_head value, user space "
"should issue an rmb()."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1257
+#: build/C/man2/perf_event_open.2:1285
#, no-wrap
msgid "I<data_tail;>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1265
+#: build/C/man2/perf_event_open.2:1293
msgid ""
"When the mapping is B<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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1267
+#: build/C/man2/perf_event_open.2:1295
msgid "The following 2^n ring-buffer pages have the layout described below."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1281
+#: build/C/man2/perf_event_open.2:1309
msgid ""
"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) an event "
"took place (TID, TIME, ID, CPU, STREAM_ID) described in "
"B<PERF_RECORD_SAMPLE> below, it will be stashed just after the "
"I<perf_event_header> and the fields already present for the existing fields, "
-"i.e., at the end of the payload. That way a newer perf.data file will be "
+"that is, at the end of the payload. That way a newer perf.data file will be "
"supported by older perf tools, with these new optional fields being ignored."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1283
+#: build/C/man2/perf_event_open.2:1311
msgid "The mmap values start with a header:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1291
+#: build/C/man2/perf_event_open.2:1319
#, no-wrap
msgid ""
"struct perf_event_header {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1297
-msgid "Below, we describe the I<perf_event_header> fields in more detail."
+#: build/C/man2/perf_event_open.2:1327
+msgid ""
+"Below, we describe the I<perf_event_header> fields in more detail. For ease "
+"of reading, the fields with shorter descriptions are presented first."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1330
+msgid "This indicates the size of the record."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1330
+#, no-wrap
+msgid "I<misc>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1335
+msgid "The I<misc> field contains additional information about the sample."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1340
+msgid ""
+"The CPU mode can be determined from this value by masking with "
+"B<PERF_RECORD_MISC_CPUMODE_MASK> and looking for one of the following (note "
+"these are not bit masks, only one can be set at a time):"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1341
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1344
+msgid "Unknown CPU mode."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1344
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_KERNEL>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1347
+msgid "Sample happened in the kernel."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1347
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_USER>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1350
+msgid "Sample happened in user code."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1350
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1353
+msgid "Sample happened in the hypervisor."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1353
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1356
+msgid "Sample happened in the guest kernel."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1356
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_GUEST_USER>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1359
+msgid "Sample happened in guest user code."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1363
+msgid "In addition, one of the following bits can be set:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1363
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1367
+msgid ""
+"This is set when the mapping is not executable; otherwise the mapping is "
+"executable."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1367
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_EXACT_IP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1306
+#: build/C/man2/perf_event_open.2:1375
+msgid ""
+"This indicates that the content of B<PERF_SAMPLE_IP> points to the actual "
+"instruction that triggered the event. See also "
+"I<perf_event_attr.precise_ip>."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1375
+#, no-wrap
+msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1378
+msgid "This indicates there is extended data available (currently not used)."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1388
msgid ""
"The I<type> value is one of the below. The values in the corresponding "
"record (that follows the header) depend on the I<type> selected as shown."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1307
+#: build/C/man2/perf_event_open.2:1389
#, no-wrap
msgid "B<PERF_RECORD_MMAP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1314
+#: build/C/man2/perf_event_open.2:1396
msgid ""
"The MMAP events record the B<PROT_EXEC> mappings so that we can correlate "
"user-space IPs to code. They have the following structure:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1325
+#: build/C/man2/perf_event_open.2:1407
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1327
+#: build/C/man2/perf_event_open.2:1409
#, no-wrap
msgid "B<PERF_RECORD_LOST>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1330
+#: build/C/man2/perf_event_open.2:1412
msgid "This record indicates when events are lost."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1338
+#: build/C/man2/perf_event_open.2:1420
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1344
+#: build/C/man2/perf_event_open.2:1426
msgid "is the unique event ID for the samples that were lost."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1344
+#: build/C/man2/perf_event_open.2:1426
#, no-wrap
msgid "I<lost>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1347
+#: build/C/man2/perf_event_open.2:1429
msgid "is the number of events that were lost."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1348
+#: build/C/man2/perf_event_open.2:1430
#, no-wrap
msgid "B<PERF_RECORD_COMM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1351
+#: build/C/man2/perf_event_open.2:1433
msgid "This record indicates a change in the process name."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1359
+#: build/C/man2/perf_event_open.2:1441
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1361
+#: build/C/man2/perf_event_open.2:1443
#, no-wrap
msgid "B<PERF_RECORD_EXIT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1364
+#: build/C/man2/perf_event_open.2:1446
msgid "This record indicates a process exit event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1373 build/C/man2/perf_event_open.2:1401
+#: build/C/man2/perf_event_open.2:1455 build/C/man2/perf_event_open.2:1483
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1375
+#: build/C/man2/perf_event_open.2:1457
#, no-wrap
msgid "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1378
+#: build/C/man2/perf_event_open.2:1460
msgid "This record indicates a throttle/unthrottle event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1387
+#: build/C/man2/perf_event_open.2:1469
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1389
+#: build/C/man2/perf_event_open.2:1471
#, no-wrap
msgid "B<PERF_RECORD_FORK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1392
+#: build/C/man2/perf_event_open.2:1474
msgid "This record indicates a fork event."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1403
+#: build/C/man2/perf_event_open.2:1485
#, no-wrap
msgid "B<PERF_RECORD_READ>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1406
+#: build/C/man2/perf_event_open.2:1488
msgid "This record indicates a read event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1414
+#: build/C/man2/perf_event_open.2:1496
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1416
+#: build/C/man2/perf_event_open.2:1498
#, no-wrap
msgid "B<PERF_RECORD_SAMPLE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1419
+#: build/C/man2/perf_event_open.2:1501
msgid "This record indicates a sample."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1449
+#: build/C/man2/perf_event_open.2:1531
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1451
+#: build/C/man2/perf_event_open.2:1533
#, no-wrap
msgid "I<ip>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1457
+#: build/C/man2/perf_event_open.2:1539
msgid ""
"If B<PERF_SAMPLE_IP> is enabled, then a 64-bit instruction pointer value is "
"included."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1457
+#: build/C/man2/perf_event_open.2:1539
#, no-wrap
msgid "I<pid>, I<tid>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1463
+#: build/C/man2/perf_event_open.2:1545
msgid ""
"If B<PERF_SAMPLE_TID> is enabled, then a 32-bit process ID and 32-bit thread "
"ID are included."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1463
+#: build/C/man2/perf_event_open.2:1545
#, no-wrap
msgid "I<time>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1471
+#: build/C/man2/perf_event_open.2:1553
msgid ""
"If B<PERF_SAMPLE_TIME> is enabled, then a 64-bit timestamp is included. "
"This is obtained via local_clock() which is a hardware timestamp if "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1471
+#: build/C/man2/perf_event_open.2:1553
#, no-wrap
msgid "I<addr>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1478
+#: build/C/man2/perf_event_open.2:1560
msgid ""
"If B<PERF_SAMPLE_ADDR> is enabled, then a 64-bit address is included. This "
"is usually the address of a tracepoint, breakpoint, or software event; "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1486
+#: build/C/man2/perf_event_open.2:1568
msgid ""
"If B<PERF_SAMPLE_ID> is enabled, a 64-bit unique ID is included. If the "
"event is a member of an event group, the group leader ID is returned. This "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1486
+#: build/C/man2/perf_event_open.2:1568
#, no-wrap
msgid "I<stream_id>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1496
+#: build/C/man2/perf_event_open.2:1578
msgid ""
"If B<PERF_SAMPLE_STREAM_ID> is enabled, a 64-bit unique ID is included. "
"Unlike B<PERF_SAMPLE_ID> the actual ID is returned, not the group leader. "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1496
+#: build/C/man2/perf_event_open.2:1578
#, no-wrap
msgid "I<cpu>, I<res>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1503
+#: build/C/man2/perf_event_open.2:1585
msgid ""
"If B<PERF_SAMPLE_CPU> is enabled, this is a 32-bit value indicating which "
"CPU was being used, in addition to a reserved (unused) 32-bit value."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1503
+#: build/C/man2/perf_event_open.2:1585
#, no-wrap
msgid "I<period>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1509
+#: build/C/man2/perf_event_open.2:1591
msgid ""
"If B<PERF_SAMPLE_PERIOD> is enabled, a 64-bit value indicating the current "
"sampling period is written."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1509
+#: build/C/man2/perf_event_open.2:1591
#, no-wrap
msgid "I<v>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1520
+#: build/C/man2/perf_event_open.2:1602
msgid ""
"If B<PERF_SAMPLE_READ> is enabled, a structure of type read_format is "
"included which has values for all events in the event group. The values "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1520
+#: build/C/man2/perf_event_open.2:1602
#, no-wrap
msgid "I<nr>, I<ips[nr]>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1528
+#: build/C/man2/perf_event_open.2:1610
msgid ""
"If B<PERF_SAMPLE_CALLCHAIN> is enabled, then a 64-bit number is included "
"which indicates how many following 64-bit instruction pointers will follow. "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1528
+#: build/C/man2/perf_event_open.2:1610
#, no-wrap
msgid "I<size>, I<data[size]>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1535
+#: build/C/man2/perf_event_open.2:1617
msgid ""
"If B<PERF_SAMPLE_RAW> is enabled, then a 32-bit value indicating size is "
"included followed by an array of 8-bit values of length size. The values "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1540
+#: build/C/man2/perf_event_open.2:1622
msgid ""
"This RAW record data is opaque with respect to the ABI. The ABI doesn't "
"make any promises with respect to the stability of its content, it may vary "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1540
+#: build/C/man2/perf_event_open.2:1622
#, no-wrap
msgid "I<bnr>, I<lbr[bnr]>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1551
+#: build/C/man2/perf_event_open.2:1631
msgid ""
"If B<PERF_SAMPLE_BRANCH_STACK> is enabled, then a 64-bit value indicating "
"the number of records is included, followed by I<bnr> I<perf_branch_entry> "
-"structures. These structures have from, to, and flags values indicating the "
-"from and to addresses from the branches on the callstack."
+"structures which each include the fields:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1632
+#, no-wrap
+msgid "I<from>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1635
+msgid "This indicates the source instruction (may not be a branch)."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1635
+#, no-wrap
+msgid "I<to>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1638
+msgid "The branch target."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1638
+#, no-wrap
+msgid "I<mispred>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1641
+msgid "The branch target was mispredicted."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1641
+#, no-wrap
+msgid "I<predicted>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1644
+msgid "The branch target was predicted."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1644
+#, no-wrap
+msgid "I<in_tx> (Since Linux 3.11)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1647
+msgid "The branch was in a transactional memory transaction."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1647
+#, no-wrap
+msgid "I<abort> (Since Linux 3.11)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1650
+msgid "The branch was in an aborted transactional memory transaction."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1654
+msgid ""
+"The entries are from most to least recent, so the first entry has the most "
+"recent branch."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1661
+msgid ""
+"Support for I<mispred> and I<predicted> is optional; if not supported, both "
+"values will be 0."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1665
+msgid ""
+"The type of branches recorded is specified by the I<branch_sample_type> "
+"field."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1667
+#, no-wrap
+msgid "I<abi>, I<regs[weight(mask)]>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1672
+msgid ""
+"If B<PERF_SAMPLE_REGS_USER> is enabled, then the user CPU registers are "
+"recorded."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1678
+msgid ""
+"The I<abi> field is one of B<PERF_SAMPLE_REGS_ABI_NONE>, "
+"B<PERF_SAMPLE_REGS_ABI_32> or B<PERF_SAMPLE_REGS_ABI_64>."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1688
+msgid ""
+"The I<regs> field is an array of the CPU registers that were specified by "
+"the I<sample_regs_user> attr field. The number of values is the number of "
+"bits set in the I<sample_regs_user> bitmask."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1688
+#, no-wrap
+msgid "I<size>, I<data[size]>, I<dyn_size>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1702
+msgid ""
+"If B<PERF_SAMPLE_STACK_USER> is enabled, then record the user stack to "
+"enable backtracing. I<size> is the size requested by the user in "
+"I<stack_user_size> or else the maximum record size. I<data> is the stack "
+"data. I<dyn_size> is the amount of data actually dumped (can be less than "
+"I<size>)."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1702
+#, no-wrap
+msgid "I<weight>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1710
+msgid ""
+"If B<PERF_SAMPLE_WEIGHT> is enabled, then a 64 bit value provided by the "
+"hardware is recorded that indicates how costly the event was. This allows "
+"expensive events to stand out more clearly in profiles."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1710
+#, no-wrap
+msgid "I<data_src>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1716
+msgid ""
+"If B<PERF_SAMPLE_DATA_SRC> is enabled, then a 64 bit value is recorded that "
+"is made up of the following fields:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1717
+#, no-wrap
+msgid "I<mem_op>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1720
+msgid "Type of opcode, a bitwise combination of:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1723
+#, no-wrap
+msgid "B<PERF_MEM_OP_NA>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1726 build/C/man2/perf_event_open.2:1749 build/C/man2/perf_event_open.2:1799 build/C/man2/perf_event_open.2:1822 build/C/man2/perf_event_open.2:1836
+msgid "Not available"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1726
+#, no-wrap
+msgid "B<PERF_MEM_OP_LOAD>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1729
+msgid "Load instruction"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1729
+#, no-wrap
+msgid "B<PERF_MEM_OP_STORE>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1732
+msgid "Store instruction"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1732
+#, no-wrap
+msgid "B<PERF_MEM_OP_PFETCH>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1735
+msgid "Prefetch"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1735
+#, no-wrap
+msgid "B<PERF_MEM_OP_EXEC>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1738
+msgid "Executable code"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1740
+#, no-wrap
+msgid "I<mem_lvl>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1743
+msgid "Memory hierarchy level hit or miss, a bitwise combination of:"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1746
+#, no-wrap
+msgid "B<PERF_MEM_LVL_NA>"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1749
+#, no-wrap
+msgid "B<PERF_MEM_LVL_HIT>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1752 build/C/man2/perf_event_open.2:1839
+msgid "Hit"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1752
+#, no-wrap
+msgid "B<PERF_MEM_LVL_MISS>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1755 build/C/man2/perf_event_open.2:1842
+msgid "Miss"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1755
+#, no-wrap
+msgid "B<PERF_MEM_LVL_L1>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1758
+msgid "Level 1 cache"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1758
+#, no-wrap
+msgid "B<PERF_MEM_LVL_LFB>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1761
+msgid "Line fill buffer"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1761
+#, no-wrap
+msgid "B<PERF_MEM_LVL_L2>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1764
+msgid "Level 2 cache"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1764
+#, no-wrap
+msgid "B<PERF_MEM_LVL_L3>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1767
+msgid "Level 3 cache"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1551
+#: build/C/man2/perf_event_open.2:1767
#, no-wrap
-msgid "I<abi>, I<regs[weight(mask)]>"
+msgid "B<PERF_MEM_LVL_LOC_RAM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1556
-msgid ""
-"If B<PERF_SAMPLE_REGS_USER> is enabled, then the user CPU registers are "
-"recorded."
+#: build/C/man2/perf_event_open.2:1770
+msgid "Local DRAM"
msgstr ""
-#. type: Plain text
-#: build/C/man2/perf_event_open.2:1562
-msgid ""
-"The I<abi> field is one of B<PERF_SAMPLE_REGS_ABI_NONE>, "
-"B<PERF_SAMPLE_REGS_ABI_32> or B<PERF_SAMPLE_REGS_ABI_64>."
+#. type: TP
+#: build/C/man2/perf_event_open.2:1770
+#, no-wrap
+msgid "B<PERF_MEM_LVL_REM_RAM1>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1572
-msgid ""
-"The I<regs> field is an array of the CPU registers that were specified by "
-"the I<sample_regs_user> attr field. The number of values is the number of "
-"bits set in the I<sample_regs_user> bitmask."
+#: build/C/man2/perf_event_open.2:1773
+msgid "Remote DRAM 1 hop"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1572
+#: build/C/man2/perf_event_open.2:1773
#, no-wrap
-msgid "I<size>, I<data[size]>, I<dyn_size>"
+msgid "B<PERF_MEM_LVL_REM_RAM2>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1587
-msgid ""
-"If B<PERF_SAMPLE_STACK_USER> is enabled, then record the user stack to "
-"enable backtracing. I<size> is the size requested by the user in "
-"I<stack_user_size> or else the maximum record size. I<data> is the stack "
-"data. I<dyn_size> is the amount of data actually dumped (can be less than "
-"I<size> )."
+#: build/C/man2/perf_event_open.2:1776
+msgid "Remote DRAM 2 hops"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1587
+#: build/C/man2/perf_event_open.2:1776
#, no-wrap
-msgid "I<weight>"
+msgid "B<PERF_MEM_LVL_REM_CCE1>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1595
-msgid ""
-"If B<PERF_SAMPLE_WEIGHT> is enabled, then a 64 bit value provided by the "
-"hardwre is recorded that indicates how costly the event was. This allows "
-"expensive events to stand out more clearly in profiles."
+#: build/C/man2/perf_event_open.2:1779
+msgid "Remote cache 1 hop"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1595
+#: build/C/man2/perf_event_open.2:1779
#, no-wrap
-msgid "I<data_src>"
+msgid "B<PERF_MEM_LVL_REM_CCE2>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1601
-msgid ""
-"If B<PERF_SAMPLE_DATA_SRC> is enabled, then a 64 bit value is recorded that "
-"is made up of the following fields:"
+#: build/C/man2/perf_event_open.2:1782
+msgid "Remote cache 2 hops"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1602
+#: build/C/man2/perf_event_open.2:1782
#, no-wrap
-msgid "I<mem_op>"
+msgid "B<PERF_MEM_LVL_IO>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1615
-msgid ""
-"type of opcode, a bitwise combination of B<PERF_MEM_OP_NA> (not available), "
-"B<PERF_MEM_OP_LOAD> (load instruction), B<PERF_MEM_OP_STORE> (store "
-"instruction), B<PERF_MEM_OP_PFETCH> (prefetch), and B<PERF_MEM_OP_EXEC> "
-"(executable code)."
+#: build/C/man2/perf_event_open.2:1785
+msgid "I/O memory"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1615
+#: build/C/man2/perf_event_open.2:1785
#, no-wrap
-msgid "I<mem_lvl>"
+msgid "B<PERF_MEM_LVL_UNC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1646
-msgid ""
-"memory hierarchy level hit or miss, a bitwise combination of "
-"B<PERF_MEM_LVL_NA> (not available), B<PERF_MEM_LVL_HIT> (hit), "
-"B<PERF_MEM_LVL_MISS> (miss), B<PERF_MEM_LVL_L1> (level 1 cache), "
-"B<PERF_MEM_LVL_LFB> (line fill buffer), B<PERF_MEM_LVL_L2> (level 2 cache), "
-"B<PERF_MEM_LVL_L3> (level 3 cache), B<PERF_MEM_LVL_LOC_RAM> (local DRAM), "
-"B<PERF_MEM_LVL_REM_RAM1> (remote DRAM 1 hop), B<PERF_MEM_LVL_REM_RAM2> "
-"(remote DRAM 2 hops), B<PERF_MEM_LVL_REM_CCE1> (remote cache 1 hop), "
-"B<PERF_MEM_LVL_REM_CCE2> (remote Cache 2 hops), B<PERF_MEM_LVL_IO> (I/O "
-"memory), and B<PERF_MEM_LVL_UNC> (uncached memory)."
+#: build/C/man2/perf_event_open.2:1788
+msgid "Uncached memory"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1646
+#: build/C/man2/perf_event_open.2:1790
#, no-wrap
msgid "I<mem_snoop>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1659
-msgid ""
-"snoop mode, a bitwise combination of B<PERF_MEM_SNOOP_NA> (not available), "
-"B<PERF_MEM_SNOOP_NONE> (no snoop), B<PERF_MEM_SNOOP_HIT> (snoop hit), "
-"B<PERF_MEM_SNOOP_MISS> (snoop miss), and B<PERF_MEM_SNOOP_HITM> (snoop hit "
-"modified)."
+#: build/C/man2/perf_event_open.2:1793
+msgid "Snoop mode, a bitwise combination of:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1659
+#: build/C/man2/perf_event_open.2:1796
#, no-wrap
-msgid "I<mem_lock>"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/perf_event_open.2:1666
-msgid ""
-"lock instruction, a bitwise combination of B<PERF_MEM_LOCK_NA> (not "
-"available) and B<PERF_MEM_LOCK_LOCKED> (locked transaction)."
+msgid "B<PERF_MEM_SNOOP_NA>"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1666
+#: build/C/man2/perf_event_open.2:1799
#, no-wrap
-msgid "I<mem_dtlb>"
+msgid "B<PERF_MEM_SNOOP_NONE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1683
-msgid ""
-"tlb access hit or miss, a bitwise combination of B<PERF_MEM_TLB_NA> (not "
-"available), B<PERF_MEM_TLB_HIT> (hit), B<PERF_MEM_TLB_MISS> (miss), "
-"B<PERF_MEM_TLB_L1> (level 1 TLB), B<PERF_MEM_TLB_L2> (level 2 TLB), "
-"B<PERF_MEM_TLB_WK> (hardware walker), and B<PERF_MEM_TLB_OS> (OS fault "
-"handler)."
+#: build/C/man2/perf_event_open.2:1802
+msgid "No snoop"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1686
+#: build/C/man2/perf_event_open.2:1802
#, no-wrap
-msgid "I<misc>"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/perf_event_open.2:1691
-msgid "The I<misc> field contains additional information about the sample."
+msgid "B<PERF_MEM_SNOOP_HIT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1696
-msgid ""
-"The CPU mode can be determined from this value by masking with "
-"B<PERF_RECORD_MISC_CPUMODE_MASK> and looking for one of the following (note "
-"these are not bit masks, only one can be set at a time):"
+#: build/C/man2/perf_event_open.2:1805
+msgid "Snoop hit"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1697
+#: build/C/man2/perf_event_open.2:1805
#, no-wrap
-msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
+msgid "B<PERF_MEM_SNOOP_MISS>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1700
-msgid "Unknown CPU mode."
+#: build/C/man2/perf_event_open.2:1808
+msgid "Snoop miss"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1700
+#: build/C/man2/perf_event_open.2:1808
#, no-wrap
-msgid "B<PERF_RECORD_MISC_KERNEL>"
+msgid "B<PERF_MEM_SNOOP_HITM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1703
-msgid "Sample happened in the kernel."
+#: build/C/man2/perf_event_open.2:1811
+msgid "Snoop hit modified"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1703
+#: build/C/man2/perf_event_open.2:1813
#, no-wrap
-msgid "B<PERF_RECORD_MISC_USER>"
+msgid "I<mem_lock>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1706
-msgid "Sample happened in user code."
+#: build/C/man2/perf_event_open.2:1816
+msgid "Lock instruction, a bitwise combination of:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1706
+#: build/C/man2/perf_event_open.2:1819
#, no-wrap
-msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
+msgid "B<PERF_MEM_LOCK_NA>"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1822
+#, no-wrap
+msgid "B<PERF_MEM_LOCK_LOCKED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1709
-msgid "Sample happened in the hypervisor."
+#: build/C/man2/perf_event_open.2:1825
+msgid "Locked transaction"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1709
+#: build/C/man2/perf_event_open.2:1827
#, no-wrap
-msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
+msgid "I<mem_dtlb>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1712
-msgid "Sample happened in the guest kernel."
+#: build/C/man2/perf_event_open.2:1830
+msgid "TLB access hit or miss, a bitwise combination of:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1712
+#: build/C/man2/perf_event_open.2:1833
#, no-wrap
-msgid "B<PERF_RECORD_MISC_GUEST_USER>"
+msgid "B<PERF_MEM_TLB_NA>"
msgstr ""
-#. type: Plain text
-#: build/C/man2/perf_event_open.2:1715
-msgid "Sample happened in guest user code."
+#. type: TP
+#: build/C/man2/perf_event_open.2:1836
+#, no-wrap
+msgid "B<PERF_MEM_TLB_HIT>"
msgstr ""
-#. type: Plain text
-#: build/C/man2/perf_event_open.2:1718
-msgid "In addition, one of the following bits can be set:"
+#. type: TP
+#: build/C/man2/perf_event_open.2:1839
+#, no-wrap
+msgid "B<PERF_MEM_TLB_MISS>"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1719
+#: build/C/man2/perf_event_open.2:1842
#, no-wrap
-msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
+msgid "B<PERF_MEM_TLB_L1>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1723
-msgid ""
-"This is set when the mapping is not executable; otherwise the mapping is "
-"executable."
+#: build/C/man2/perf_event_open.2:1845
+msgid "Level 1 TLB"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1723
+#: build/C/man2/perf_event_open.2:1845
#, no-wrap
-msgid "B<PERF_RECORD_MISC_EXACT_IP>"
+msgid "B<PERF_MEM_TLB_L2>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1731
-msgid ""
-"This indicates that the content of B<PERF_SAMPLE_IP> points to the actual "
-"instruction that triggered the event. See also "
-"I<perf_event_attr.precise_ip>."
+#: build/C/man2/perf_event_open.2:1848
+msgid "Level 2 TLB"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1731
+#: build/C/man2/perf_event_open.2:1848
#, no-wrap
-msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
+msgid "B<PERF_MEM_TLB_WK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1734
-msgid "This indicates there is extended data available (currently not used)."
+#: build/C/man2/perf_event_open.2:1851
+msgid "Hardware walker"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1851
+#, no-wrap
+msgid "B<PERF_MEM_TLB_OS>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1737
-msgid "This indicates the size of the record."
+#: build/C/man2/perf_event_open.2:1854
+msgid "OS fault handler"
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1738
+#: build/C/man2/perf_event_open.2:1860
#, no-wrap
msgid "Signal overflow"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1747
+#: build/C/man2/perf_event_open.2:1869
msgid ""
"Events can be set to deliver a signal when a threshold is crossed. The "
"signal handler is set up using the B<poll>(2), B<select>(2), B<epoll>(2) "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1751
+#: build/C/man2/perf_event_open.2:1873
msgid ""
"To generate signals, sampling must be enabled (I<sample_period> must have a "
"non-zero value)."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1753
+#: build/C/man2/perf_event_open.2:1875
msgid "There are two ways to generate signals."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1763
+#: build/C/man2/perf_event_open.2:1885
msgid ""
"The first is to set a I<wakeup_events> or I<wakeup_watermark> value that "
"will generate a signal if a certain number of samples or bytes have been "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1775
+#: build/C/man2/perf_event_open.2:1897
msgid ""
"The other way is by use of the B<PERF_EVENT_IOC_REFRESH> ioctl. This ioctl "
"adds to a counter that decrements each time the event overflows. When "
#. FIXME(Vince) : Find out when this was introduced
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1781
+#: build/C/man2/perf_event_open.2:1903
msgid ""
"Note: on newer kernels (definitely noticed with 3.2) a signal is provided "
"for every overflow, even if I<wakeup_events> is not set."
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1781
+#: build/C/man2/perf_event_open.2:1903
#, no-wrap
msgid "rdpmc instruction"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1788
+#: build/C/man2/perf_event_open.2:1910
msgid ""
"Starting with Linux 3.4 on x86, you can use the I<rdpmc> instruction to get "
"low-latency reads without having to enter the kernel. Note that using "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1793
+#: build/C/man2/perf_event_open.2:1915
msgid ""
"Support for this can be detected with the I<cap_usr_rdpmc> field in the mmap "
"page; documentation on how to calculate event values can be found in that "
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1793
+#: build/C/man2/perf_event_open.2:1915
#, no-wrap
msgid "perf_event ioctl calls"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1798
+#: build/C/man2/perf_event_open.2:1920
msgid "Various ioctls act on B<perf_event_open>() file descriptors"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1798
+#: build/C/man2/perf_event_open.2:1920
#, no-wrap
msgid "B<PERF_EVENT_IOC_ENABLE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1802
+#: build/C/man2/perf_event_open.2:1924
msgid ""
"Enables the individual event or event group specified by the file descriptor "
"argument."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1807
+#: build/C/man2/perf_event_open.2:1930
msgid ""
"If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
"events in a group are enabled, even if the event specified is not the group "
-"leader."
+"leader (but see BUGS)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1807
+#: build/C/man2/perf_event_open.2:1930
#, no-wrap
msgid "B<PERF_EVENT_IOC_DISABLE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1811
+#: build/C/man2/perf_event_open.2:1934
msgid ""
"Disables the individual counter or event group specified by the file "
"descriptor argument."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1818
+#: build/C/man2/perf_event_open.2:1941
msgid ""
"Enabling or disabling the leader of a group enables or disables the entire "
"group; that is, while the group leader is disabled, none of the counters in "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1823
+#: build/C/man2/perf_event_open.2:1947
msgid ""
"If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
"events in a group are disabled, even if the event specified is not the group "
-"leader."
+"leader (but see BUGS)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1823
+#: build/C/man2/perf_event_open.2:1947
#, no-wrap
msgid "B<PERF_EVENT_IOC_REFRESH>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1837
+#: build/C/man2/perf_event_open.2:1961
msgid ""
"Non-inherited overflow counters can use this to enable a counter for a "
"number of overflows specified by the argument, after which it is disabled. "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1837
+#: build/C/man2/perf_event_open.2:1961
#, no-wrap
msgid "B<PERF_EVENT_IOC_RESET>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1847
+#: build/C/man2/perf_event_open.2:1971
msgid ""
-"Reset the event count specified by the file descriptor argumentto zero. "
+"Reset the event count specified by the file descriptor argument to zero. "
"This resets only the counts; there is no way to reset the multiplexing "
"I<time_enabled> or I<time_running> values."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1852
+#: build/C/man2/perf_event_open.2:1977
msgid ""
"If the B<PERF_IOC_FLAG_GROUP> bit is set in the ioctl argument, then all "
"events in a group are reset, even if the event specified is not the group "
-"leader."
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/perf_event_open.2:1859
-msgid ""
-"If the B<PERF_IOC_FLAG_GROUP> bit is not set, then the behavior is somwhat "
-"unexpected: when sent to a group leader only the leader is reset (children "
-"are left alone); when sent to a child all events in a group are reset."
+"leader (but see BUGS)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1859
+#: build/C/man2/perf_event_open.2:1977
#, no-wrap
msgid "B<PERF_EVENT_IOC_PERIOD>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1863
+#: build/C/man2/perf_event_open.2:1981
msgid ""
"IOC_PERIOD is the command to update the period; it does not update the "
"current period but instead defers until next."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1866
+#: build/C/man2/perf_event_open.2:1984
msgid ""
"The argument is a pointer to a 64-bit value containing the desired new "
"period."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1866
+#: build/C/man2/perf_event_open.2:1984
#, no-wrap
msgid "B<PERF_EVENT_IOC_SET_OUTPUT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1871
+#: build/C/man2/perf_event_open.2:1989
msgid ""
"This tells the kernel to report event notifications to the specified file "
"descriptor rather than the default one. The file descriptors must all be on "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1874
+#: build/C/man2/perf_event_open.2:1992
msgid ""
"The argument specifies the desired file descriptor, or -1 if output should "
"be ignored."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1874
+#: build/C/man2/perf_event_open.2:1992
#, no-wrap
msgid "B<PERF_EVENT_IOC_SET_FILTER> (Since Linux 2.6.33)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1877
+#: build/C/man2/perf_event_open.2:1995
msgid "This adds an ftrace filter to this event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1879
+#: build/C/man2/perf_event_open.2:1997
msgid "The argument is a pointer to the desired ftrace filter."
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1879
+#: build/C/man2/perf_event_open.2:1997
#, no-wrap
msgid "Using prctl"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1892
+#: build/C/man2/perf_event_open.2:2010
msgid ""
"A process can enable or disable all the event groups that are attached to it "
"using the B<prctl>(2) B<PR_TASK_PERF_EVENTS_ENABLE> and "
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1892
+#: build/C/man2/perf_event_open.2:2010
#, no-wrap
msgid "perf_event related configuration files"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1895
+#: build/C/man2/perf_event_open.2:2013
msgid "Files in I</proc/sys/kernel/>"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1896
+#: build/C/man2/perf_event_open.2:2014
#, no-wrap
msgid "I</proc/sys/kernel/perf_event_paranoid>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1902
+#: build/C/man2/perf_event_open.2:2020
msgid ""
"The I<perf_event_paranoid> file can be set to restrict access to the "
"performance counters."
msgstr ""
+#. type: IP
+#: build/C/man2/perf_event_open.2:2021
+#, no-wrap
+msgid "2"
+msgstr ""
+
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1904
-msgid "2 - only allow user-space measurements"
+#: build/C/man2/perf_event_open.2:2023
+msgid "only allow user-space measurements."
+msgstr ""
+
+#. type: IP
+#: build/C/man2/perf_event_open.2:2023
+#, no-wrap
+msgid "1"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1906
-msgid "1 - (default) allow both kernel and user measurements"
+#: build/C/man2/perf_event_open.2:2025
+msgid "allow both kernel and user measurements (default)."
+msgstr ""
+
+#. type: IP
+#: build/C/man2/perf_event_open.2:2025
+#, no-wrap
+msgid "0"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1908
-msgid "0 - allow access to CPU-specific data but not raw tracepoint samples"
+#: build/C/man2/perf_event_open.2:2027
+msgid "allow access to CPU-specific data but not raw tracepoint samples."
+msgstr ""
+
+#. type: IP
+#: build/C/man2/perf_event_open.2:2027
+#, no-wrap
+msgid "-1"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1910
-msgid "-1 - no restrictions"
+#: build/C/man2/perf_event_open.2:2029
+msgid "no restrictions."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1915
+#: build/C/man2/perf_event_open.2:2035
msgid ""
"The existence of the I<perf_event_paranoid> file is the official method for "
"determining if a kernel supports B<perf_event_open>()."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1915
+#: build/C/man2/perf_event_open.2:2035
#, no-wrap
msgid "I</proc/sys/kernel/perf_event_max_sample_rate>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1924
+#: build/C/man2/perf_event_open.2:2044
msgid ""
"This sets the maximum sample rate. Setting this too high can allow users to "
"sample at a rate that impacts overall machine performance and potentially "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1924
+#: build/C/man2/perf_event_open.2:2044
#, no-wrap
msgid "I</proc/sys/kernel/perf_event_mlock_kb>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1929
+#: build/C/man2/perf_event_open.2:2049
msgid ""
"Maximum number of pages an unprivileged user can mlock (2) . The default is "
"516 (kB)."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1932
+#: build/C/man2/perf_event_open.2:2053
msgid "Files in I</sys/bus/event_source/devices/>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1938
+#: build/C/man2/perf_event_open.2:2059
msgid ""
"Since Linux 2.6.34 the kernel supports having multiple PMUs available for "
"monitoring. Information on how to program these PMUs can be found under "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1938
+#: build/C/man2/perf_event_open.2:2059
#, no-wrap
-msgid "I</sys/bus/event_source/devices/*/type>"
+msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1943
+#: build/C/man2/perf_event_open.2:2064
msgid ""
"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."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1943
+#: build/C/man2/perf_event_open.2:2064
#, no-wrap
-msgid "I</sys/bus/event_source/devices/*/rdpmc>"
+msgid "I</sys/bus/event_source/devices/*/rdpmc> (Since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1946 build/C/man2/perf_event_open.2:1963
-msgid "[To be documented]"
+#: build/C/man2/perf_event_open.2:2069
+msgid ""
+"If this file is 1, then direct user-space access to the performance counter "
+"registers is allowed via the rdpmc instruction. This can be disabled by "
+"echoing 0 to the file."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1946
+#: build/C/man2/perf_event_open.2:2069
#, no-wrap
-msgid "I</sys/bus/event_source/devices/*/format/>"
+msgid "I</sys/bus/event_source/devices/*/format/> (Since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1951
+#: build/C/man2/perf_event_open.2:2075
msgid ""
-"This sub-directory contains information on what bits in the I<config> field "
-"of perf_event_attr correspond to."
+"This sub-directory contains information on the architecture-specific "
+"sub-fields available for programming the various I<config> fields in the "
+"perf_event_attr struct."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:2085
+msgid ""
+"The content of each file is the name of the config field, followed by a "
+"colon, followed by a series of integer bit ranges separated by commas. For "
+"example, the file I<event> may contain the value I<config1:1,6-10,44> which "
+"indicates that event is an attribute that occupies bits 1,6-10, and 44 of "
+"perf_event_attr::config1."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1951
+#: build/C/man2/perf_event_open.2:2085
#, no-wrap
-msgid "I</sys/bus/event_source/devices/*/events/>"
+msgid "I</sys/bus/event_source/devices/*/events/> (Since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1960
+#: build/C/man2/perf_event_open.2:2094
msgid ""
"This sub-directory contains files with pre-defined events. The contents are "
"strings describing the event settings expressed in terms of the fields found "
-"in the I<./format/> directory. These are not necessarily complete lists of "
-"all events supported by a PMU, but usually a subset of events deemed useful "
-"or interesting."
+"in the previously mentioned I<./format/> directory. These are not "
+"necessarily complete lists of all events supported by a PMU, but usually a "
+"subset of events deemed useful or interesting."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:2102
+msgid ""
+"The content of each file is a list of attribute names separated by commas. "
+"Each entry has an optional value (either hex or decimal). If no value is "
+"specified than it is assumed to be a single-bit field with a value of 1. An "
+"example entry may look like this: I<event=0x2,inv,ldlat=3>."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1960
+#: build/C/man2/perf_event_open.2:2102
#, no-wrap
msgid "I</sys/bus/event_source/devices/*/uevent>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1970
+#: build/C/man2/perf_event_open.2:2106
+msgid ""
+"This file is the standard kernel device interface for injecting hotplug "
+"events."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:2106
+#, no-wrap
+msgid "I</sys/bus/event_source/devices/*/cpumask> (Since Linux 3.7)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:2115
+msgid ""
+"The I<cpumask> file contains a comma-separated list of integers that "
+"indicate a representative CPU number for each socket (package) on the "
+"motherboard. This is needed when setting up uncore or northbridge events, "
+"as those PMUs present socket-wide events."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:2122
msgid ""
"B<perf_event_open>() returns the new file descriptor, or -1 if an error "
"occurred (in which case, I<errno> is set appropriately)."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1974
+#: build/C/man2/perf_event_open.2:2126
msgid "Returned if the specified event is not available."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1974
+#: build/C/man2/perf_event_open.2:2126
#, no-wrap
msgid "B<ENOSPC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1984
+#: build/C/man2/perf_event_open.2:2136
msgid ""
"Prior to Linux 3.3, if there was not enough room for the event, B<ENOSPC> "
"was returned. Linus did not like this, and this was changed to B<EINVAL>. "
msgstr ""
#. type: SH
-#: build/C/man2/perf_event_open.2:1984
+#: build/C/man2/perf_event_open.2:2136
#, no-wrap
msgid "VERSION"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1989
+#: build/C/man2/perf_event_open.2:2141
msgid ""
"B<perf_event_open>() was introduced in Linux 2.6.31 but was called "
"B<perf_counter_open>()B<.> It was renamed in Linux 2.6.32."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1994
+#: build/C/man2/perf_event_open.2:2146
msgid ""
"This B<perf_event_open>() system call Linux- specific and should not be "
"used in programs intended to be portable."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1998
+#: build/C/man2/perf_event_open.2:2150
msgid ""
"Glibc does not provide a wrapper for this system call; call it using "
"B<syscall>(2). See the example below."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2004
+#: build/C/man2/perf_event_open.2:2156
msgid ""
"The official way of knowing if B<perf_event_open>() support is enabled is "
"checking for the existence of the file "
msgstr ""
#. type: SH
-#: build/C/man2/perf_event_open.2:2004 build/C/man2/pivot_root.2:134 build/C/man2/ptrace.2:1811
+#: build/C/man2/perf_event_open.2:2156 build/C/man2/pivot_root.2:134 build/C/man2/ptrace.2:1884
#, no-wrap
msgid "BUGS"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2011
+#: build/C/man2/perf_event_open.2:2163
msgid ""
"The B<F_SETOWN_EX> option to B<fcntl>(2) is needed to properly get overflow "
"signals in threads. This was introduced in Linux 2.6.32."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2019
+#: build/C/man2/perf_event_open.2:2171
msgid ""
"Prior to Linux 2.6.33 (at least for x86) the kernel did not check if events "
"could be scheduled together until read time. The same happens on all known "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2023
+#: build/C/man2/perf_event_open.2:2175
msgid ""
"Prior to Linux 2.6.34 event constraints were not enforced by the kernel. In "
"that case, some events would silently return \"0\" if the kernel scheduled "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2026
+#: build/C/man2/perf_event_open.2:2178
msgid ""
"Prior to Linux 2.6.34 there was a bug when multiplexing where the wrong "
"results could be returned."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2029
+#: build/C/man2/perf_event_open.2:2181
msgid ""
"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."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2033
+#: build/C/man2/perf_event_open.2:2185
msgid ""
"Prior to Linux 2.6.35, B<PERF_FORMAT_GROUP> did not work with attached "
"processes."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2038
+#: build/C/man2/perf_event_open.2:2190
msgid ""
"In older Linux 2.6 versions, refreshing an event group leader refreshed all "
"siblings, and refreshing with a parameter of 0 enabled infinite refresh. "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2044
+#: build/C/man2/perf_event_open.2:2196
msgid ""
"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 was chosen if "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2049
+#: build/C/man2/perf_event_open.2:2202
+msgid ""
+"From Linux 2.6.31 to Linux 3.4, the B<PERF_IOC_FLAG_GROUP> ioctl argument "
+"was broken and would repeatedly operate on the event specified rather than "
+"iterating across all sibling events in a group."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:2207
msgid ""
"Always double-check your results! Various generalized events have had wrong "
"values. For example, retired branches measured the wrong thing on AMD "
msgstr ""
#. type: SH
-#: build/C/man2/perf_event_open.2:2049 build/C/man2/process_vm_readv.2:295 build/C/man2/splice.2:223 build/C/man2/tee.2:130
+#: build/C/man2/perf_event_open.2:2207 build/C/man2/process_vm_readv.2:295 build/C/man2/splice.2:223 build/C/man2/tee.2:130
#, no-wrap
msgid "EXAMPLE"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2053
+#: build/C/man2/perf_event_open.2:2211
msgid ""
"The following is a short example that measures the total instruction count "
"of a call to B<printf>(3)."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2062
+#: build/C/man2/perf_event_open.2:2220
#, no-wrap
msgid ""
"#include E<lt>stdlib.hE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2068
+#: build/C/man2/perf_event_open.2:2226
#, no-wrap
msgid ""
"long\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2073
+#: build/C/man2/perf_event_open.2:2231
#, no-wrap
msgid ""
" ret = syscall(__NR_perf_event_open, hw_event, pid, cpu,\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2080
+#: build/C/man2/perf_event_open.2:2238
#, no-wrap
msgid ""
"int\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2088
+#: build/C/man2/perf_event_open.2:2246
#, no-wrap
msgid ""
" memset(&pe, 0, sizeof(struct perf_event_attr));\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2094
+#: build/C/man2/perf_event_open.2:2252
#, no-wrap
msgid ""
" fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2097
+#: build/C/man2/perf_event_open.2:2255
#, no-wrap
msgid ""
" ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2099
+#: build/C/man2/perf_event_open.2:2257
#, no-wrap
msgid " printf(\"Measuring instruction count for this printf\\en\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2102
+#: build/C/man2/perf_event_open.2:2260
#, no-wrap
msgid ""
" ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2104
+#: build/C/man2/perf_event_open.2:2262
#, no-wrap
msgid " printf(\"Used %lld instructions\\en\", count);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2107
+#: build/C/man2/perf_event_open.2:2265
#, no-wrap
msgid ""
" close(fd);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:2114
+#: build/C/man2/perf_event_open.2:2272
msgid "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
msgstr ""
#. type: Plain text
#: build/C/man2/pivot_root.2:13
-msgid "pivot_root - change the root file system"
+msgid "pivot_root - change the root filesystem"
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man2/pivot_root.2:27
msgid ""
-"B<pivot_root>() moves the root file system of the calling process to the "
-"directory I<put_old> and makes I<new_root> the new root file system of the "
+"B<pivot_root>() moves the root filesystem of the calling process to the "
+"directory I<put_old> and makes I<new_root> the new root filesystem of the "
"calling process."
msgstr ""
#: build/C/man2/pivot_root.2:34
msgid ""
"The typical use of B<pivot_root>() is during system startup, when the "
-"system mounts a temporary root file system (e.g., an B<initrd>), then mounts "
-"the real root file system, and eventually turns the latter into the current "
+"system mounts a temporary root filesystem (e.g., an B<initrd>), then mounts "
+"the real root filesystem, and eventually turns the latter into the current "
"root of all relevant processes or threads."
msgstr ""
"or thread to I<new_root> if they point to the old root directory. This is "
"necessary in order to prevent kernel threads from keeping the old root "
"directory busy with their root and current working directory, even if they "
-"never access the file system in any way. In the future, there may be a "
-"mechanism for kernel threads to explicitly relinquish any access to the file "
-"system, such that this fairly intrusive mechanism can be removed from "
+"never access the filesystem in any way. In the future, there may be a "
+"mechanism for kernel threads to explicitly relinquish any access to the "
+"filesystem, such that this fairly intrusive mechanism can be removed from "
"B<pivot_root>()."
msgstr ""
#. type: Plain text
#: build/C/man2/pivot_root.2:79
msgid ""
-"I<new_root> and I<put_old> must not be on the same file system as the "
-"current root."
+"I<new_root> and I<put_old> must not be on the same filesystem as the current "
+"root."
msgstr ""
#. type: Plain text
#. type: Plain text
#: build/C/man2/pivot_root.2:85
-msgid "No other file system may be mounted on I<put_old>."
+msgid "No other filesystem may be mounted on I<put_old>."
msgstr ""
#. type: Plain text
msgid ""
"If the current root is not a mount point (e.g., after B<chroot>(2) or "
"B<pivot_root>(), see also below), not the old root directory, but the mount "
-"point of that file system is mounted on I<put_old>."
+"point of that filesystem is mounted on I<put_old>."
msgstr ""
#. type: Plain text
#: build/C/man2/pivot_root.2:101
msgid ""
"I<new_root> does not have to be a mount point. In this case, "
-"I</proc/mounts> will show the mount point of the file system containing "
+"I</proc/mounts> will show the mount point of the filesystem containing "
"I<new_root> as root (I</>)."
msgstr ""
#. type: Plain text
#: build/C/man2/pivot_root.2:114
msgid ""
-"I<new_root> or I<put_old> are on the current root file system, or a file "
-"system is already mounted on I<put_old>."
+"I<new_root> or I<put_old> are on the current root filesystem, or a "
+"filesystem is already mounted on I<put_old>."
msgstr ""
#. type: Plain text
#. type: TH
#: build/C/man2/ptrace.2:44
#, no-wrap
-msgid "2013-02-16"
+msgid "2013-07-11"
msgstr ""
#. type: Plain text
#. type: TP
#: build/C/man2/ptrace.2:257
#, no-wrap
-msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
-msgstr ""
-
-#. type: Plain text
-#: build/C/man2/ptrace.2:269
-msgid ""
-"Retrieve information about the signal that caused the stop. Copy a "
-"I<siginfo_t> structure (see B<sigaction>(2)) from the tracee to the address "
-"I<data> in the tracer. (I<addr> is ignored.)"
-msgstr ""
-
-#. type: TP
-#: build/C/man2/ptrace.2:269
-#, no-wrap
msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
msgstr ""
#. FIXME In the preceding sentence, which modifications are disallowed,
#. and when they are disallowed, how does user space discover that fact?
#. type: Plain text
-#: build/C/man2/ptrace.2:294
+#: build/C/man2/ptrace.2:282
msgid ""
"Modify the tracee's general-purpose or floating-point registers, "
"respectively, from the address I<data> in the tracer. As for "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:294
+#: build/C/man2/ptrace.2:282
#, no-wrap
msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:303
+#: build/C/man2/ptrace.2:291
msgid ""
"Modify the tracee's registers. The meaning of I<addr> and I<data> is "
"analogous to B<PTRACE_GETREGSET>."
msgstr ""
#. type: TP
+#: build/C/man2/ptrace.2:291
+#, no-wrap
+msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/ptrace.2:303
+msgid ""
+"Retrieve information about the signal that caused the stop. Copy a "
+"I<siginfo_t> structure (see B<sigaction>(2)) from the tracee to the address "
+"I<data> in the tracer. (I<addr> is ignored.)"
+msgstr ""
+
+#. type: TP
#: build/C/man2/ptrace.2:303
#, no-wrap
msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:349
+#: build/C/man2/ptrace.2:354
msgid ""
"Stop the tracee at the next B<clone>(2) and automatically start tracing the "
-"newly cloned process, which will start with a B<SIGSTOP>. A B<waitpid>(2) "
-"by the tracer will return a I<status> value such that"
+"newly cloned process, which will start with a B<SIGSTOP>, or "
+"B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used. A B<waitpid>(2) by the "
+"tracer will return a I<status> value such that"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:352
+#: build/C/man2/ptrace.2:357
#, no-wrap
msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_CLONEE<lt>E<lt>8))\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:356 build/C/man2/ptrace.2:437 build/C/man2/ptrace.2:465
+#: build/C/man2/ptrace.2:361 build/C/man2/ptrace.2:447 build/C/man2/ptrace.2:480
msgid "The PID of the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:377
+#: build/C/man2/ptrace.2:382
msgid ""
"This option may not catch B<clone>(2) calls in all cases. If the tracee "
"calls B<clone>(2) with the B<CLONE_VFORK> flag, B<PTRACE_EVENT_VFORK> will "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:377
+#: build/C/man2/ptrace.2:382
#, no-wrap
msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:386
+#: build/C/man2/ptrace.2:391
msgid ""
"Stop the tracee at the next B<execve>(2). A B<waitpid>(2) by the tracer "
"will return a I<status> value such that"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:389
+#: build/C/man2/ptrace.2:394
#, no-wrap
msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXECE<lt>E<lt>8))\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:395
+#: build/C/man2/ptrace.2:400
msgid ""
"If the execing thread is not a thread group leader, the thread ID is reset "
"to thread group leader's ID before this stop. Since Linux 3.0, the former "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:395
+#: build/C/man2/ptrace.2:400
#, no-wrap
msgid "B<PTRACE_O_TRACEEXIT> (since Linux 2.5.60)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:403
+#: build/C/man2/ptrace.2:408
msgid ""
"Stop the tracee at exit. A B<waitpid>(2) by the tracer will return a "
"I<status> value such that"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:406
+#: build/C/man2/ptrace.2:411
#, no-wrap
msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_EXITE<lt>E<lt>8))\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:410
+#: build/C/man2/ptrace.2:415
msgid "The tracee's exit status can be retrieved with B<PTRACE_GETEVENTMSG>."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:418
+#: build/C/man2/ptrace.2:423
msgid ""
"The tracee is stopped early during process exit, when registers are still "
"available, allowing the tracer to see where the exit occurred, whereas the "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:418
+#: build/C/man2/ptrace.2:423
#, no-wrap
msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:430
+#: build/C/man2/ptrace.2:440
msgid ""
"Stop the tracee at the next B<fork>(2) and automatically start tracing the "
-"newly forked process, which will start with a B<SIGSTOP>. A B<waitpid>(2) "
-"by the tracer will return a I<status> value such that"
+"newly forked process, which will start with a B<SIGSTOP>, or "
+"B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used. A B<waitpid>(2) by the "
+"tracer will return a I<status> value such that"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:433
+#: build/C/man2/ptrace.2:443
#, no-wrap
msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_FORKE<lt>E<lt>8))\n"
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:437
+#: build/C/man2/ptrace.2:447
#, no-wrap
msgid "B<PTRACE_O_TRACESYSGOOD> (since Linux 2.4.6)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:446
+#: build/C/man2/ptrace.2:456
msgid ""
"When delivering system call traps, set bit 7 in the signal number (i.e., "
"deliver I<SIGTRAP|0x80>). This makes it easy for the tracer to distinguish "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:446
+#: build/C/man2/ptrace.2:456
#, no-wrap
msgid "B<PTRACE_O_TRACEVFORK> (since Linux 2.5.46)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:458
+#: build/C/man2/ptrace.2:473
msgid ""
"Stop the tracee at the next B<vfork>(2) and automatically start tracing the "
-"newly vforked process, which will start with a B<SIGSTOP>. A B<waitpid>(2) "
-"by the tracer will return a I<status> value such that"
+"newly vforked process, which will start with a B<SIGSTOP>, or "
+"B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used. A B<waitpid>(2) by the "
+"tracer will return a I<status> value such that"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:461
+#: build/C/man2/ptrace.2:476
#, no-wrap
msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORKE<lt>E<lt>8))\n"
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:465
+#: build/C/man2/ptrace.2:480
#, no-wrap
msgid "B<PTRACE_O_TRACEVFORKDONE> (since Linux 2.5.60)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:474
+#: build/C/man2/ptrace.2:489
msgid ""
"Stop the tracee at the completion of the next B<vfork>(2). A B<waitpid>(2) "
"by the tracer will return a I<status> value such that"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:477
+#: build/C/man2/ptrace.2:492
#, no-wrap
msgid " statusE<gt>E<gt>8 == (SIGTRAP | (PTRACE_EVENT_VFORK_DONEE<lt>E<lt>8))\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:481
+#: build/C/man2/ptrace.2:496
msgid ""
"The PID of the new process can (since Linux 2.6.18) be retrieved with "
"B<PTRACE_GETEVENTMSG>."
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:482
+#: build/C/man2/ptrace.2:497
#, no-wrap
msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:502
+#: build/C/man2/ptrace.2:517
msgid ""
"Retrieve a message (as an I<unsigned long>) about the ptrace event that "
"just happened, placing it at the address I<data> in the tracer. For "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:502
+#: build/C/man2/ptrace.2:517
#, no-wrap
msgid "B<PTRACE_CONT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:514
+#: build/C/man2/ptrace.2:529
msgid ""
"Restart the stopped tracee process. If I<data> is nonzero, it is "
"interpreted as the number of a signal to be delivered to the tracee; "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:514
+#: build/C/man2/ptrace.2:529
#, no-wrap
msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:538
+#: build/C/man2/ptrace.2:553
msgid ""
"Restart the stopped tracee as for B<PTRACE_CONT>, but arrange for the tracee "
"to be stopped at the next entry to or exit from a system call, or after "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:538
+#: build/C/man2/ptrace.2:553
#, no-wrap
msgid "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (since Linux 2.6.14)"
msgstr ""
#. As at 3.7
#. type: Plain text
-#: build/C/man2/ptrace.2:559
+#: build/C/man2/ptrace.2:574
msgid ""
"For B<PTRACE_SYSEMU>, continue and stop on entry to the next system call, "
"which will not be executed. For B<PTRACE_SYSEMU_SINGLESTEP>, do the same "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:559
+#: build/C/man2/ptrace.2:574
#, no-wrap
msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:570
+#: build/C/man2/ptrace.2:585
msgid ""
"Restart the stopped tracee, but prevent it from executing. The resulting "
"state of the tracee is similar to a process which has been stopped by a "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:570
+#: build/C/man2/ptrace.2:585
#, no-wrap
msgid "B<PTRACE_KILL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:579
+#: build/C/man2/ptrace.2:594
msgid ""
"Send the tracee a B<SIGKILL> to terminate it. (I<addr> and I<data> are "
"ignored.)"
#. deprecation suggested by Oleg Nesterov. He prefers to deprecate it
#. instead of describing (and needing to support) PTRACE_KILL's quirks.]
#. type: Plain text
-#: build/C/man2/ptrace.2:598
+#: build/C/man2/ptrace.2:613
msgid ""
"I<This operation is deprecated; do not use it!> Instead, send a B<SIGKILL> "
"directly using B<kill>(2) or B<tgkill>(2). The problem with B<PTRACE_KILL> "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:598
+#: build/C/man2/ptrace.2:613
#, no-wrap
msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:612
+#: build/C/man2/ptrace.2:641
msgid ""
-"Stop a tracee. If the tracee is running, it will stop with "
-"B<PTRACE_EVENT_STOP>. If the tracee is already stopped by a signal, or "
-"receives a signal in parallel with B<PTRACE_INTERRUPT>, it may report a "
-"group-stop or a signal-delivery-stop instead of B<PTRACE_EVENT_STOP>. "
+"Stop a tracee. If the tracee is running or sleeping in kernel space and "
+"B<PTRACE_SYSCALL> is in effect, the system call is interrupted and "
+"syscall-exit-stop is reported. (The interrupted system call is restarted "
+"when the tracee is restarted.) If the tracee was already stopped by a "
+"signal and B<PTRACE_LISTEN> was sent to it, the tracee stops with "
+"B<PTRACE_EVENT_STOP> and I<WSTOPSIG(status)> returns the stop signal. If "
+"any other ptrace-stop is generated at the same time (for example, if a "
+"signal is sent to the tracee), this ptrace-stop happens. If none of the "
+"above applies (for example, if the tracee is running in userspace), it stops "
+"with B<PTRACE_EVENT_STOP> with I<WSTOPSIG(status)> == B<SIGTRAP>. "
"B<PTRACE_INTERRUPT> only works on tracees attached by B<PTRACE_SEIZE>."
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:612
+#: build/C/man2/ptrace.2:641
#, no-wrap
msgid "B<PTRACE_ATTACH>"
msgstr ""
#. .BR getppid (2)
#. by the tracee will still return the PID of the original parent.
#. type: Plain text
-#: build/C/man2/ptrace.2:640
+#: build/C/man2/ptrace.2:669
msgid ""
"Attach to the process specified in I<pid>, making it a tracee of the calling "
"process. The tracee is sent a B<SIGSTOP>, but will not necessarily have "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:640
+#: build/C/man2/ptrace.2:669
#, no-wrap
msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:660
+#: build/C/man2/ptrace.2:689
msgid ""
"Attach to the process specified in I<pid>, making it a tracee of the calling "
"process. Unlike B<PTRACE_ATTACH>, B<PTRACE_SEIZE> does not stop the "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:660
+#: build/C/man2/ptrace.2:689
#, no-wrap
msgid "B<PTRACE_DETACH>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:669
+#: build/C/man2/ptrace.2:698
msgid ""
"Restart the stopped tracee as for B<PTRACE_CONT>, but first detach from it. "
"Under Linux, a tracee can be detached in this way regardless of which method "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:669
+#: build/C/man2/ptrace.2:698
#, no-wrap
msgid "Death under ptrace"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:678
+#: build/C/man2/ptrace.2:707
msgid ""
"When a (possibly multithreaded) process receives a killing signal (one whose "
"disposition is set to B<SIG_DFL> and whose default action is to kill the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:687
+#: build/C/man2/ptrace.2:716
msgid ""
"Note that the killing signal will first cause signal-delivery-stop (on one "
"tracee only), and only after it is injected by the tracer (or after it was "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:699
+#: build/C/man2/ptrace.2:728
msgid ""
"B<SIGKILL> does not generate signal-delivery-stop and therefore the tracer "
"can't suppress it. B<SIGKILL> kills even within system calls "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:704
+#: build/C/man2/ptrace.2:733
msgid ""
"When the tracee calls B<_exit>(2), it reports its death to its tracer. "
"Other threads are not affected."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:708
+#: build/C/man2/ptrace.2:737
msgid ""
"When any thread executes B<exit_group>(2), every tracee in its thread group "
"reports its death to its tracer."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:722
+#: build/C/man2/ptrace.2:751
msgid ""
"If the B<PTRACE_O_TRACEEXIT> option is on, B<PTRACE_EVENT_EXIT> will happen "
"before actual death. This applies to exits via B<exit>(2), "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:747
+#: build/C/man2/ptrace.2:776
msgid ""
"The tracer cannot assume that the ptrace-stopped tracee exists. There are "
"many scenarios when the tracee may die while stopped (such as B<SIGKILL>). "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:761
+#: build/C/man2/ptrace.2:790
msgid ""
"The tracer can't assume that the tracee I<always> ends its life by reporting "
"I<WIFEXITED(status)> or I<WIFSIGNALED(status)>; there are cases where this "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:761
+#: build/C/man2/ptrace.2:790
#, no-wrap
msgid "Stopped states"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:763
-msgid "A tracee can be in two states: running or stopped."
+#: build/C/man2/ptrace.2:812
+msgid ""
+"A tracee can be in two states: running or stopped. For the purposes of "
+"ptrace, a tracee which is blocked in a system call (such as B<read>(2), "
+"B<pause>(2), etc.) is nevertheless considered to be running, even if the "
+"tracee is blocked for a long time. The state of the tracee after "
+"B<PTRACE_LISTEN> is somewhat of a gray area: it is not in any ptrace-stop "
+"(ptrace commands won't work on it, and it will deliver B<waitpid>(2) "
+"notifications), but it also may be considered \"stopped\" because it is not "
+"executing instructions (is not scheduled), and if it was in group-stop "
+"before B<PTRACE_LISTEN>, it will not respond to signals until B<SIGCONT> is "
+"received."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:767
+#: build/C/man2/ptrace.2:816
msgid ""
"There are many kinds of states when the tracee is stopped, and in ptrace "
"discussions they are often conflated. Therefore, it is important to use "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:778
+#: build/C/man2/ptrace.2:827
msgid ""
"In this manual page, any stopped state in which the tracee is ready to "
"accept ptrace commands from the tracer is called I<ptrace-stop>. "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:783
+#: build/C/man2/ptrace.2:832
msgid ""
"When the running tracee enters ptrace-stop, it notifies its tracer using "
"B<waitpid>(2) (or one of the other \"wait\" system calls). Most of this "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:785
+#: build/C/man2/ptrace.2:834
#, no-wrap
msgid " pid = waitpid(pid_or_minus_1, &status, __WALL);\n"
msgstr ""
#. rules different if user wants to use waitid? Will waitid require
#. WEXITED?
#. type: Plain text
-#: build/C/man2/ptrace.2:797
+#: build/C/man2/ptrace.2:846
msgid ""
"Ptrace-stopped tracees are reported as returns with I<pid> greater than 0 "
"and I<WIFSTOPPED(status)> true."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:805
+#: build/C/man2/ptrace.2:854
msgid ""
"The B<__WALL> flag does not include the B<WSTOPPED> and B<WEXITED> flags, "
"but implies their functionality."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:812
+#: build/C/man2/ptrace.2:861
msgid ""
"Setting the B<WCONTINUED> flag when calling B<waitpid>(2) is not "
"recommended: the \"continued\" state is per-process and consuming it can "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:820
+#: build/C/man2/ptrace.2:869
msgid ""
"Use of the B<WNOHANG> flag may cause B<waitpid>(2) to return 0 (\"no wait "
"results available yet\") even if the tracer knows there should be a "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:829
+#: build/C/man2/ptrace.2:878
#, no-wrap
msgid ""
" errno = 0;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:852
+#: build/C/man2/ptrace.2:901
msgid ""
"The following kinds of ptrace-stops exist: signal-delivery-stops, "
"group-stops, B<PTRACE_EVENT> stops, syscall-stops. They all are reported by "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:852
+#: build/C/man2/ptrace.2:901
#, no-wrap
msgid "Signal-delivery-stop"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:872
+#: build/C/man2/ptrace.2:921
msgid ""
"When a (possibly multithreaded) process receives any signal except "
"B<SIGKILL>, the kernel selects an arbitrary thread which handles the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:886
+#: build/C/man2/ptrace.2:935
msgid ""
"Signal-delivery-stop is observed by the tracer as B<waitpid>(2) returning "
"with I<WIFSTOPPED(status)> true, with the signal returned by "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:886
+#: build/C/man2/ptrace.2:935
#, no-wrap
msgid "Signal injection and suppression"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:889
+#: build/C/man2/ptrace.2:938
msgid ""
"After signal-delivery-stop is observed by the tracer, the tracer should "
"restart the tracee with the call"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:891
+#: build/C/man2/ptrace.2:940
#, no-wrap
msgid " ptrace(PTRACE_restart, pid, 0, sig)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:904
+#: build/C/man2/ptrace.2:953
msgid ""
"where B<PTRACE_restart> is one of the restarting ptrace requests. If I<sig> "
"is 0, then a signal is not delivered. Otherwise, the signal I<sig> is "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:910
+#: build/C/man2/ptrace.2:959
msgid ""
"The I<sig> value may be different from the I<WSTOPSIG(status)> value: the "
"tracer can cause a different signal to be injected."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:926
+#: build/C/man2/ptrace.2:975
msgid ""
"Note that a suppressed signal still causes system calls to return "
"prematurely. In this case system calls will be restarted: the tracer will "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:937
+#: build/C/man2/ptrace.2:986
msgid ""
"Restarting ptrace commands issued in ptrace-stops other than "
"signal-delivery-stop are not guaranteed to inject a signal, even if I<sig> "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:944
+#: build/C/man2/ptrace.2:993
msgid ""
"The fact that signal injection requests may be ignored when restarting the "
"tracee after ptrace stops that are not signal-delivery-stops is a cause of "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:946
+#: build/C/man2/ptrace.2:995
#, no-wrap
msgid " ptrace(PTRACE_restart, pid, 0, stopsig)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:952
+#: build/C/man2/ptrace.2:1001
msgid ""
"with the intention of injecting I<stopsig>, but I<stopsig> gets ignored and "
"the tracee continues to run."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:972
+#: build/C/man2/ptrace.2:1021
msgid ""
"The B<SIGCONT> signal has a side effect of waking up (all threads of) a "
"group-stopped process. This side effect happens before "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:976
+#: build/C/man2/ptrace.2:1025
msgid ""
"Stopping signals cause (all threads of) a process to enter group-stop. This "
"side effect happens after signal injection, and therefore can be suppressed "
#. if (signr == SIGSTOP)
#. continue;
#. type: Plain text
-#: build/C/man2/ptrace.2:986
+#: build/C/man2/ptrace.2:1035
msgid "In Linux 2.4 and earlier, the B<SIGSTOP> signal can't be injected."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1003
+#: build/C/man2/ptrace.2:1052
msgid ""
"B<PTRACE_GETSIGINFO> can be used to retrieve a I<siginfo_t> structure which "
"corresponds to the delivered signal. B<PTRACE_SETSIGINFO> may be used to "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1003
+#: build/C/man2/ptrace.2:1052
#, no-wrap
msgid "Group-stop"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1015
+#: build/C/man2/ptrace.2:1064
msgid ""
"When a (possibly multithreaded) process receives a stopping signal, all "
"threads stop. If some threads are traced, they enter a group-stop. Note "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1024
+#: build/C/man2/ptrace.2:1073
msgid ""
"Group-stop is observed by the tracer as B<waitpid>(2) returning with "
"I<WIFSTOPPED(status)> true, with the stopping signal available via "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1026
+#: build/C/man2/ptrace.2:1075
#, no-wrap
msgid " ptrace(PTRACE_GETSIGINFO, pid, 0, &siginfo)\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1047
+#: build/C/man2/ptrace.2:1096
msgid ""
"The call can be avoided if the signal is not B<SIGSTOP>, B<SIGTSTP>, "
"B<SIGTTIN>, or B<SIGTTOU>; only these four signals are stopping signals. If "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1056
+#: build/C/man2/ptrace.2:1106
+msgid ""
+"If tracee was attached using B<PTRACE_SEIZE>, group-stop is indicated by "
+"B<PTRACE_EVENT_STOP>: I<statusE<gt>E<gt>16 == PTRACE_EVENT_STOP>. This "
+"allows detection of group-stops without requiring an extra "
+"B<PTRACE_GETSIGINFO> call."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/ptrace.2:1115
msgid ""
"As of Linux 2.6.38, after the tracer sees the tracee ptrace-stop and until "
"it restarts or kills it, the tracee will not run, and will not send "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1070
+#: build/C/man2/ptrace.2:1129
msgid ""
"The kernel behavior described in the previous paragraph causes a problem "
"with transparent handling of stopping signals. If the tracer restarts the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1081
+#: build/C/man2/ptrace.2:1140
msgid ""
"Since Linux 3.4, there is a method to overcome this problem: instead of "
"B<PTRACE_CONT>, a B<PTRACE_LISTEN> command can be used to restart a tracee "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1081
+#: build/C/man2/ptrace.2:1140
#, no-wrap
msgid "PTRACE_EVENT stops"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1087
+#: build/C/man2/ptrace.2:1146
msgid ""
"If the tracer sets B<PTRACE_O_TRACE_*> options, the tracee will enter "
"ptrace-stops called B<PTRACE_EVENT> stops."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1101
+#: build/C/man2/ptrace.2:1160
msgid ""
"B<PTRACE_EVENT> stops are observed by the tracer as B<waitpid>(2) returning "
"with I<WIFSTOPPED(status)>, and I<WSTOPSIG(status)> returns B<SIGTRAP>. An "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1103
+#: build/C/man2/ptrace.2:1162
#, no-wrap
msgid " (SIGTRAP | PTRACE_EVENT_foo E<lt>E<lt> 8).\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1105
+#: build/C/man2/ptrace.2:1164
msgid "The following events exist:"
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1105
+#: build/C/man2/ptrace.2:1164
#, no-wrap
msgid "B<PTRACE_EVENT_VFORK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1118
+#: build/C/man2/ptrace.2:1177
msgid ""
"Stop before return from B<vfork>(2) or B<clone>(2) with the B<CLONE_VFORK> "
"flag. When the tracee is continued after this stop, it will wait for child "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1118
+#: build/C/man2/ptrace.2:1177
#, no-wrap
msgid "B<PTRACE_EVENT_FORK>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1126
+#: build/C/man2/ptrace.2:1185
msgid ""
"Stop before return from B<fork>(2) or B<clone>(2) with the exit signal set "
"to B<SIGCHLD>."
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1126
+#: build/C/man2/ptrace.2:1185
#, no-wrap
msgid "B<PTRACE_EVENT_CLONE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1130
+#: build/C/man2/ptrace.2:1189
msgid "Stop before return from B<clone>(2)."
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1130
+#: build/C/man2/ptrace.2:1189
#, no-wrap
msgid "B<PTRACE_EVENT_VFORK_DONE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1140
+#: build/C/man2/ptrace.2:1199
msgid ""
"Stop before return from B<vfork>(2) or B<clone>(2) with the B<CLONE_VFORK> "
"flag, but after the child unblocked this tracee by exiting or execing."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1146
+#: build/C/man2/ptrace.2:1205
msgid ""
"For all four stops described above, the stop occurs in the parent (i.e., the "
"tracee), not in the newly created thread. B<PTRACE_GETEVENTMSG> can be used "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1146
+#: build/C/man2/ptrace.2:1205
#, no-wrap
msgid "B<PTRACE_EVENT_EXEC>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1153
+#: build/C/man2/ptrace.2:1212
msgid ""
"Stop before return from B<execve>(2). Since Linux 3.0, "
"B<PTRACE_GETEVENTMSG> returns the former thread ID."
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1153
+#: build/C/man2/ptrace.2:1212
#, no-wrap
msgid "B<PTRACE_EVENT_EXIT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1169
+#: build/C/man2/ptrace.2:1228
msgid ""
"Stop before exit (including death from B<exit_group>(2)), signal death, or "
"exit caused by B<execve>(2) in a multithreaded process. "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1169
+#: build/C/man2/ptrace.2:1228
#, no-wrap
msgid "B<PTRACE_EVENT_STOP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1174
-msgid "Stop induced by B<PTRACE_INTERRUPT> command."
+#: build/C/man2/ptrace.2:1240
+msgid ""
+"Stop induced by B<PTRACE_INTERRUPT> command, or group-stop, or initial "
+"ptrace-stop when a new child is attached (only if attached using "
+"B<PTRACE_SEIZE>), or B<PTRACE_EVENT_STOP> if B<PTRACE_SEIZE> was used."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1186
+#: build/C/man2/ptrace.2:1252
msgid ""
"B<PTRACE_GETSIGINFO> on B<PTRACE_EVENT> stops returns B<SIGTRAP> in "
"I<si_signo>, with I<si_code> set to I<(eventE<lt>E<lt>8)\\ |\\ SIGTRAP>."
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1186
+#: build/C/man2/ptrace.2:1252
#, no-wrap
msgid "Syscall-stops"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1199
+#: build/C/man2/ptrace.2:1265
msgid ""
"If the tracee was restarted by B<PTRACE_SYSCALL>, the tracee enters "
"syscall-enter-stop just prior to entering any system call. If the tracer "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1213
+#: build/C/man2/ptrace.2:1279
msgid ""
"Other possibilities are that the tracee may stop in a B<PTRACE_EVENT> stop, "
"exit (if it entered B<_exit>(2) or B<exit_group>(2)), be killed by "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1228
+#: build/C/man2/ptrace.2:1294
msgid ""
"Syscall-enter-stop and syscall-exit-stop are observed by the tracer as "
"B<waitpid>(2) returning with I<WIFSTOPPED(status)> true, and "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1234
+#: build/C/man2/ptrace.2:1300
msgid ""
"Syscall-stops can be distinguished from signal-delivery-stop with B<SIGTRAP> "
"by querying B<PTRACE_GETSIGINFO> for the following cases:"
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1234
+#: build/C/man2/ptrace.2:1300
#, no-wrap
msgid "I<si_code> E<lt>= 0"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1246
+#: build/C/man2/ptrace.2:1312
msgid ""
"B<SIGTRAP> was delivered as a result of a user-space action, for example, a "
"system call (B<tgkill>(2), B<kill>(2), B<sigqueue>(3), etc.), expiration of "
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1246
+#: build/C/man2/ptrace.2:1312
#, no-wrap
msgid "I<si_code> == SI_KERNEL (0x80)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1250
+#: build/C/man2/ptrace.2:1316
msgid "B<SIGTRAP> was sent by the kernel."
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:1250
+#: build/C/man2/ptrace.2:1316
#, no-wrap
msgid "I<si_code> == SIGTRAP or I<si_code> == (SIGTRAP|0x80)"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1253
+#: build/C/man2/ptrace.2:1319
msgid "This is a syscall-stop."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1258
+#: build/C/man2/ptrace.2:1324
msgid ""
"However, syscall-stops happen very often (twice per system call), and "
"performing B<PTRACE_GETSIGINFO> for every syscall-stop may be somewhat "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1281
+#: build/C/man2/ptrace.2:1347
msgid ""
"Some architectures allow the cases to be distinguished by examining "
"registers. For example, on x86, I<rax> == -B<ENOSYS> in "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1287
+#: build/C/man2/ptrace.2:1353
msgid ""
"Using the B<PTRACE_O_TRACESYSGOOD> option is the recommended method to "
"distinguish syscall-stops from other kinds of ptrace-stops, since it is "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1298
+#: build/C/man2/ptrace.2:1364
msgid ""
"Syscall-enter-stop and syscall-exit-stop are indistinguishable from each "
"other by the tracer. The tracer needs to keep track of the sequence of "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1303
+#: build/C/man2/ptrace.2:1369
msgid ""
"If after syscall-enter-stop, the tracer uses a restarting command other than "
"B<PTRACE_SYSCALL>, syscall-exit-stop is not generated."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1315
+#: build/C/man2/ptrace.2:1381
msgid ""
"B<PTRACE_GETSIGINFO> on syscall-stops returns B<SIGTRAP> in I<si_signo>, "
"with I<si_code> set to B<SIGTRAP> or I<(SIGTRAP|0x80)>."
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1315
+#: build/C/man2/ptrace.2:1381
#, no-wrap
msgid "PTRACE_SINGLESTEP, PTRACE_SYSEMU, PTRACE_SYSEMU_SINGLESTEP stops"
msgstr ""
#. document stops occurring with PTRACE_SINGLESTEP, PTRACE_SYSEMU,
#. PTRACE_SYSEMU_SINGLESTEP
#. type: Plain text
-#: build/C/man2/ptrace.2:1321
+#: build/C/man2/ptrace.2:1387
msgid "[Details of these kinds of stops are yet to be documented.]"
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1321
+#: build/C/man2/ptrace.2:1387
#, no-wrap
msgid "Informational and restarting ptrace commands"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1331
+#: build/C/man2/ptrace.2:1397
msgid ""
"Most ptrace commands (all except B<PTRACE_ATTACH>, B<PTRACE_SEIZE>, "
"B<PTRACE_TRACEME>, B<PTRACE_INTERRUPT>, and B<PTRACE_KILL>) require the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1336
+#: build/C/man2/ptrace.2:1402
msgid ""
"When the tracee is in ptrace-stop, the tracer can read and write data to the "
"tracee using informational commands. These commands leave the tracee in "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1348
+#: build/C/man2/ptrace.2:1414
#, no-wrap
msgid ""
" ptrace(PTRACE_PEEKTEXT/PEEKDATA/PEEKUSER, pid, addr, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1360
+#: build/C/man2/ptrace.2:1426
msgid ""
"Note that some errors are not reported. For example, setting signal "
"information (I<siginfo>) may have no effect in some ptrace-stops, yet the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1362
+#: build/C/man2/ptrace.2:1428
msgid "The call"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1364
+#: build/C/man2/ptrace.2:1430
#, no-wrap
msgid " ptrace(PTRACE_SETOPTIONS, pid, 0, PTRACE_O_flags);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1373
+#: build/C/man2/ptrace.2:1439
msgid ""
"affects one tracee. The tracee's current flags are replaced. Flags are "
"inherited by new tracees created and \"auto-attached\" via active "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1376
+#: build/C/man2/ptrace.2:1442
msgid ""
"Another group of commands makes the ptrace-stopped tracee run. They have "
"the form:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1378
+#: build/C/man2/ptrace.2:1444
#, no-wrap
msgid " ptrace(cmd, pid, 0, sig);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1399
+#: build/C/man2/ptrace.2:1465
msgid ""
"where I<cmd> is B<PTRACE_CONT>, B<PTRACE_LISTEN>, B<PTRACE_DETACH>, "
"B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>, B<PTRACE_SYSEMU>, or "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1399
+#: build/C/man2/ptrace.2:1465
#, no-wrap
msgid "Attaching and detaching"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1401
+#: build/C/man2/ptrace.2:1467
msgid "A thread can be attached to the tracer using the call"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1403
+#: build/C/man2/ptrace.2:1469
#, no-wrap
msgid " ptrace(PTRACE_ATTACH, pid, 0, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1405 build/C/man2/ptrace.2:1895
+#: build/C/man2/ptrace.2:1471 build/C/man2/ptrace.2:1968
msgid "or"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1407
+#: build/C/man2/ptrace.2:1473
#, no-wrap
msgid " ptrace(PTRACE_SEIZE, pid, 0, PTRACE_O_flags);\n"
msgstr ""
#. FIXME: Describe how to attach to a thread which is already
#. group-stopped.
#. type: Plain text
-#: build/C/man2/ptrace.2:1432
+#: build/C/man2/ptrace.2:1498
msgid ""
"B<PTRACE_ATTACH> sends B<SIGSTOP> to this thread. If the tracer wants this "
"B<SIGSTOP> to have no effect, it needs to suppress it. Note that if other "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1439
+#: build/C/man2/ptrace.2:1505
msgid ""
"Since attaching sends B<SIGSTOP> and the tracer usually suppresses it, this "
"may cause a stray B<EINTR> return from the currently executing system call "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1451
+#: build/C/man2/ptrace.2:1517
msgid ""
"Since Linux 3.4, B<PTRACE_SEIZE> can be used instead of B<PTRACE_ATTACH>. "
"B<PTRACE_SEIZE> does not stop the attached process. If you need to stop it "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1453
+#: build/C/man2/ptrace.2:1519
msgid "The request"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1455
+#: build/C/man2/ptrace.2:1521
#, no-wrap
msgid " ptrace(PTRACE_TRACEME, 0, 0, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1461
+#: build/C/man2/ptrace.2:1527
msgid ""
"turns the calling thread into a tracee. The thread continues to run "
"(doesn't enter ptrace-stop). A common practice is to follow the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1463
+#: build/C/man2/ptrace.2:1529
#, no-wrap
msgid " raise(SIGSTOP);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1466
+#: build/C/man2/ptrace.2:1532
msgid ""
"and allow the parent (which is our tracer now) to observe our "
"signal-delivery-stop."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1490
+#: build/C/man2/ptrace.2:1556
msgid ""
"If the B<PTRACE_O_TRACEFORK>, B<PTRACE_O_TRACEVFORK>, or "
"B<PTRACE_O_TRACECLONE> options are in effect, then children created by, "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1492
+#: build/C/man2/ptrace.2:1558
msgid "Detaching of the tracee is performed by:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1494
+#: build/C/man2/ptrace.2:1560
#, no-wrap
msgid " ptrace(PTRACE_DETACH, pid, 0, sig);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1502
+#: build/C/man2/ptrace.2:1568
msgid ""
"B<PTRACE_DETACH> is a restarting operation; therefore it requires the tracee "
"to be in ptrace-stop. If the tracee is in signal-delivery-stop, a signal "
#. FIXME: Describe how to detach from a group-stopped tracee so that it
#. doesn't run, but continues to wait for SIGCONT.
#. type: Plain text
-#: build/C/man2/ptrace.2:1526
+#: build/C/man2/ptrace.2:1592
msgid ""
"If the tracee is running when the tracer wants to detach it, the usual "
"solution is to send B<SIGSTOP> (using B<tgkill>(2), to make sure it goes to "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1534
+#: build/C/man2/ptrace.2:1600
msgid ""
"If the tracer dies, all tracees are automatically detached and restarted, "
"unless they were in group-stop. Handling of restart from group-stop is "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1534
+#: build/C/man2/ptrace.2:1600
#, no-wrap
msgid "execve(2) under ptrace"
msgstr ""
#
#. In kernel 3.1 sources, see fs/exec.c::de_thread()
#. type: Plain text
-#: build/C/man2/ptrace.2:1553
+#: build/C/man2/ptrace.2:1619
msgid ""
"When one thread in a multithreaded process calls B<execve>(2), the kernel "
"destroys all other threads in the process, and resets the thread ID of the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1563
+#: build/C/man2/ptrace.2:1629
msgid ""
"All other threads stop in B<PTRACE_EVENT_EXIT> stop, if the "
"B<PTRACE_O_TRACEEXIT> option was turned on. Then all other threads except "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1571
+#: build/C/man2/ptrace.2:1637
msgid ""
"The execing tracee changes its thread ID while it is in the B<execve>(2). "
"(Remember, under ptrace, the \"pid\" returned from B<waitpid>(2), or fed "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1577
+#: build/C/man2/ptrace.2:1643
msgid ""
"Then a B<PTRACE_EVENT_EXEC> stop happens, if the B<PTRACE_O_TRACEEXEC> "
"option was turned on."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1598
+#: build/C/man2/ptrace.2:1664
msgid ""
"If the thread group leader has reported its B<PTRACE_EVENT_EXIT> stop by "
"this time, it appears to the tracer that the dead thread leader \"reappears "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1601
+#: build/C/man2/ptrace.2:1667
msgid ""
"All of the above effects are the artifacts of the thread ID change in the "
"tracee."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1621
+#: build/C/man2/ptrace.2:1687
msgid ""
"The B<PTRACE_O_TRACEEXEC> option is the recommended tool for dealing with "
"this situation. First, it enables B<PTRACE_EVENT_EXEC> stop, which occurs "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1627
+#: build/C/man2/ptrace.2:1693
msgid ""
"When the tracer receives B<PTRACE_EVENT_EXEC> stop notification, it is "
"guaranteed that except this tracee and the thread group leader, no other "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1635
+#: build/C/man2/ptrace.2:1701
msgid ""
"On receiving the B<PTRACE_EVENT_EXEC> stop notification, the tracer should "
"clean up all its internal data structures describing the threads of this "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1637
+#: build/C/man2/ptrace.2:1703
#, no-wrap
msgid " thread ID == thread group ID == process ID.\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1641
+#: build/C/man2/ptrace.2:1707
msgid "Example: two threads call B<execve>(2) at the same time:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1652
+#: build/C/man2/ptrace.2:1718
#, no-wrap
msgid ""
"*** we get syscall-enter-stop in thread 1: **\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1675
+#: build/C/man2/ptrace.2:1741
msgid ""
"If the B<PTRACE_O_TRACEEXEC> option is I<not> in effect for the execing "
"tracee, the kernel delivers an extra B<SIGTRAP> to the tracee after "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1694
+#: build/C/man2/ptrace.2:1760
msgid ""
"Usually, the tracer (for example, B<strace>(1)) would not want to show this "
"extra post-execve B<SIGTRAP> signal to the user, and would suppress its "
msgstr ""
#. type: SS
-#: build/C/man2/ptrace.2:1694
+#: build/C/man2/ptrace.2:1760
#, no-wrap
msgid "Real parent"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1701
+#: build/C/man2/ptrace.2:1767
msgid ""
"The ptrace API (ab)uses the standard UNIX parent/child signaling over "
"B<waitpid>(2). This used to cause the real parent of the process to stop "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1704
+#: build/C/man2/ptrace.2:1770
msgid ""
"Many of these bugs have been fixed, but as of Linux 2.6.38 several still "
"exist; see BUGS below."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1706
+#: build/C/man2/ptrace.2:1772
msgid "As of Linux 2.6.38, the following is believed to work correctly:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1714
+#: build/C/man2/ptrace.2:1780
msgid ""
"exit/death by signal is reported first to the tracer, then, when the tracer "
"consumes the B<waitpid>(2) result, to the real parent (to the real parent "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1728
+#: build/C/man2/ptrace.2:1791
msgid ""
"On success, B<PTRACE_PEEK*> requests return the requested data, while other "
-"requests return zero. On error, all requests return -1, and I<errno> is set "
-"appropriately. Since the value returned by a successful B<PTRACE_PEEK*> "
-"request may be -1, the caller must clear I<errno> before the call, and then "
-"check it afterward to determine whether or not an error occurred."
+"requests return zero. (On Linux, this is done in the libc wrapper around "
+"ptrace system call. On the system call level, B<PTRACE_PEEK*> requests have "
+"a different API: they store the result at the address specified by I<data> "
+"parameter, and return value is the error flag.)"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/ptrace.2:1801
+msgid ""
+"On error, all requests return -1, and I<errno> is set appropriately. Since "
+"the value returned by a successful B<PTRACE_PEEK*> request may be -1, the "
+"caller must clear I<errno> before the call, and then check it afterward to "
+"determine whether or not an error occurred."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1732
+#: build/C/man2/ptrace.2:1805
msgid "(i386 only) There was an error with allocating or freeing a debug register."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1743
+#: build/C/man2/ptrace.2:1816
msgid ""
"There was an attempt to read from or write to an invalid area in the "
"tracer's or the tracee's memory, probably because the area wasn't mapped or "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1746
+#: build/C/man2/ptrace.2:1819
msgid "An attempt was made to set an invalid option."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1753
+#: build/C/man2/ptrace.2:1826
msgid ""
"I<request> is invalid, or an attempt was made to read from or write to an "
"invalid area in the tracer's or the tracee's memory, or there was a "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1766
+#: build/C/man2/ptrace.2:1839
msgid ""
"The specified process cannot be traced. This could be because the tracer "
"has insufficient privileges (the required capability is B<CAP_SYS_PTRACE>); "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1771
+#: build/C/man2/ptrace.2:1844
msgid ""
"The specified process does not exist, or is not currently being traced by "
"the caller, or is not stopped (for requests that require a stopped tracee)."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1773
+#: build/C/man2/ptrace.2:1846
msgid "SVr4, 4.3BSD."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1788
+#: build/C/man2/ptrace.2:1861
msgid ""
"Although arguments to B<ptrace>() are interpreted according to the "
"prototype given, glibc currently declares B<ptrace>() as a variadic "
#. See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
#. type: Plain text
-#: build/C/man2/ptrace.2:1793
+#: build/C/man2/ptrace.2:1866
msgid ""
"In Linux kernels before 2.6.26, B<init>(8), the process with PID 1, may not "
"be traced."
#. See http://lkml.org/lkml/2008/5/8/375
#. type: Plain text
-#: build/C/man2/ptrace.2:1800
+#: build/C/man2/ptrace.2:1873
msgid ""
"The layout of the contents of memory and the USER area are quite "
"operating-system- and architecture-specific. The offset supplied, and the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1803
+#: build/C/man2/ptrace.2:1876
msgid ""
"The size of a \"word\" is determined by the operating-system variant (e.g., "
"for 32-bit Linux it is 32 bits)."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1811
+#: build/C/man2/ptrace.2:1884
msgid ""
"This page documents the way the B<ptrace>() call works currently in Linux. "
"Its behavior differs noticeably on other flavors of UNIX. In any case, use "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1822
+#: build/C/man2/ptrace.2:1895
msgid ""
"On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
"different value than the one for 2.4. This leads to applications compiled "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1825
+#: build/C/man2/ptrace.2:1898
msgid ""
"Group-stop notifications are sent to the tracer, but not to real parent. "
"Last confirmed on 2.6.38.6."
#. why it is so.
#. FIXME: ^^^ need to test/verify this scenario
#. type: Plain text
-#: build/C/man2/ptrace.2:1856
+#: build/C/man2/ptrace.2:1929
msgid ""
"If a thread group leader is traced and exits by calling B<_exit>(2), a "
"B<PTRACE_EVENT_EXIT> stop will happen for it (if requested), but the "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1866
+#: build/C/man2/ptrace.2:1939
msgid ""
"A B<SIGKILL> signal may still cause a B<PTRACE_EVENT_EXIT> stop before "
"actual signal death. This may be changed in the future; B<SIGKILL> is meant "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1884
+#: build/C/man2/ptrace.2:1957
msgid ""
"Some system calls return with B<EINTR> if a signal was sent to a tracee, but "
"delivery was suppressed by the tracer. (This is very typical operation: it "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1886
+#: build/C/man2/ptrace.2:1959
#, no-wrap
msgid " strace -p E<lt>process-IDE<gt>\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1889
+#: build/C/man2/ptrace.2:1962
msgid "then, instead of the usual and expected one-line output such as"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1892
+#: build/C/man2/ptrace.2:1965
#, no-wrap
msgid " restart_syscall(E<lt>... resuming interrupted call ...E<gt>_\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1898
+#: build/C/man2/ptrace.2:1971
#, no-wrap
msgid " select(6, [5], NULL, [5], NULL_\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1902
+#: build/C/man2/ptrace.2:1975
msgid ""
"('_' denotes the cursor position), you observe more than one line. For "
"example:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1906
+#: build/C/man2/ptrace.2:1979
#, no-wrap
msgid ""
" clock_gettime(CLOCK_MONOTONIC, {15370, 690928118}) = 0\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1927
+#: build/C/man2/ptrace.2:2000
msgid ""
"What is not visible here is that the process was blocked in B<epoll_wait>(2) "
"before B<strace>(1) has attached to it. Attaching caused B<epoll_wait>(2) "
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1941
+#: build/C/man2/ptrace.2:2014
msgid ""
"B<gdb>(1), B<strace>(1), B<clone>(2), B<execve>(2), B<fork>(2), "
"B<gettid>(2), B<sigaction>(2), B<tgkill>(2), B<vfork>(2), B<waitpid>(2), "
#: build/C/man2/quotactl.2:49
msgid ""
"The quota system can be used to set per-user and per-group limits on the "
-"amount of disk space used on a file system. For each user and/or group, a "
-"soft limit and a hard limit can be set for each file system. The hard limit "
+"amount of disk space used on a filesystem. For each user and/or group, a "
+"soft limit and a hard limit can be set for each filesystem. The hard limit "
"can't be exceeded. The soft limit can be exceeded, but warnings will "
"ensue. Moreover, the user can't exceed the soft limit for more than one "
"week (by default) at a time; after this time, the soft limit counts as a "
#: build/C/man2/quotactl.2:79
msgid ""
"The I<special> argument is a pointer to a null-terminated string containing "
-"the pathname of the (mounted) block special device for the file system being "
+"the pathname of the (mounted) block special device for the filesystem being "
"manipulated."
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:98
msgid ""
-"Turn on quotas for a file system. The I<id> argument is the identification "
+"Turn on quotas for a filesystem. The I<id> argument is the identification "
"number of the quota format to be used. Currently, there are three supported "
"quota formats:"
msgstr ""
#: build/C/man2/quotactl.2:121
msgid ""
"The I<addr> argument points to the pathname of a file containing the quotas "
-"for the file system. The quota file must exist; it is normally created with "
+"for the filesystem. The quota file must exist; it is normally created with "
"the B<quotacheck>(8) program. This operation requires privilege "
"(B<CAP_SYS_ADMIN>)."
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:131
msgid ""
-"Turn off quotas for a file system. The I<addr> and I<id> arguments are "
+"Turn off quotas for a filesystem. The I<addr> and I<id> arguments are "
"ignored. This operation requires privilege (B<CAP_SYS_ADMIN>)."
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:308
msgid ""
-"Get quota format used on the specified file system. The I<addr> argument "
+"Get quota format used on the specified filesystem. The I<addr> argument "
"should be a pointer to a 4-byte buffer where the format number will be "
"stored."
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:319
msgid ""
-"Update the on-disk copy of quota usages for a file system. If I<special> is "
-"NULL, then all file systems with active quotas are sync'ed. The I<addr> and "
+"Update the on-disk copy of quota usages for a filesystem. If I<special> is "
+"NULL, then all filesystems with active quotas are sync'ed. The I<addr> and "
"I<id> arguments are ignored."
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:342
msgid ""
-"For XFS file systems making use of the XFS Quota Manager (XQM), the above "
+"For XFS filesystems making use of the XFS Quota Manager (XQM), the above "
"commands are bypassed and the following commands are used:"
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:363
msgid ""
-"Turn on quotas for an XFS file system. XFS provides the ability to turn "
+"Turn on quotas for an XFS filesystem. XFS provides the ability to turn "
"on/off quota limit enforcement with quota accounting. Therefore, XFS "
"expects I<addr> to be a pointer to an I<unsigned int> that contains either "
"the flags B<XFS_QUOTA_UDQ_ACCT> and/or B<XFS_QUOTA_UDQ_ENFD> (for user "
#. type: Plain text
#: build/C/man2/quotactl.2:374
msgid ""
-"Turn off quotas for an XFS file system. As with B<Q_QUOTAON>, XFS file "
-"systems expect a pointer to an I<unsigned int> that specifies whether quota "
-"accounting and/or limit enforcement need to be turned off. This operation "
-"requires privilege (B<CAP_SYS_ADMIN>)."
+"Turn off quotas for an XFS filesystem. As with B<Q_QUOTAON>, XFS "
+"filesystems expect a pointer to an I<unsigned int> that specifies whether "
+"quota accounting and/or limit enforcement need to be turned off. This "
+"operation requires privilege (B<CAP_SYS_ADMIN>)."
msgstr ""
#. type: TP
#. type: Plain text
#: build/C/man2/quotactl.2:408
msgid ""
-"Returns an I<fs_quota_stat> structure containing XFS file system specific "
+"Returns an I<fs_quota_stat> structure containing XFS filesystem specific "
"quota information. This is useful for finding out how much space is used to "
"store quota information, and also to get quotaon/off status of a given local "
-"XFS file system."
+"XFS filesystem."
msgstr ""
#. type: TP
#: build/C/man2/quotactl.2:419
msgid ""
"There is no command equivalent to B<Q_SYNC> for XFS since B<sync>(1) writes "
-"quota information to disk (in addition to the other file system metadata "
-"that it writes out)."
+"quota information to disk (in addition to the other filesystem metadata that "
+"it writes out)."
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:465
msgid ""
"No disk quota is found for the indicated user. Quotas have not been turned "
-"on for this file system."
+"on for this filesystem."
msgstr ""
#. type: Plain text
#: build/C/man2/quotactl.2:495
msgid ""
"The quota file pointed to by I<addr> exists, but is not a regular file; or, "
-"the quota file pointed to by I<addr> exists, but is not on the file system "
+"the quota file pointed to by I<addr> exists, but is not on the filesystem "
"pointed to by I<special>."
msgstr ""
#. type: Plain text
#: build/C/man2/splice.2:155
msgid ""
-"Target file system doesn't support splicing; target file is opened in append "
+"Target filesystem doesn't support splicing; target file is opened in append "
"mode; neither of the descriptors refers to a pipe; or offset given for "
"nonseekable device."
msgstr ""