msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2013-03-22 01:05+0900\n"
-"PO-Revision-Date: 2013-03-27 00:52+0900\n"
+"POT-Creation-Date: 2013-08-15 19:32+0900\n"
+"PO-Revision-Date: 2013-07-24 02:16+0900\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"The B<arch_prctl>() function sets architecture-specific process or thread "
"state. I<code> selects a subfunction and passes argument I<addr> to it; "
"I<addr> is interpreted as either an I<unsigned long> for the \"set\" "
-"operations, or as an I<unsigned long *>, for the \"get\" operations."
+"operations, or as an I<unsigned long\\ *>, for the \"get\" operations."
msgstr ""
"B<arch_prctl>() 関数はアーキテクチャ固有のプロセス状態またはスレッド状態を設"
"定する。 I<code> は副機能を選択し、引き数 I<addr> を副機能に渡す。 I<addr> "
"は、\"set\" 操作では I<unsigned long> として、\"get\" 操作では I<unsigned "
-"long *> として解釈される。"
+"long\\ *> として解釈される。"
#. type: Plain text
#: build/C/man2/arch_prctl.2:54
-msgid "Sub functions for x86-64 are:"
+msgid "Subfunctions for x86-64 are:"
msgstr "x86-64 の副機能は以下の通り:"
#. type: TP
#: 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:1804
+#: build/C/man2/pciconfig_read.2:50 build/C/man2/perf_event_open.2:2026
#: 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:1713 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:52 build/C/man2/vmsplice.2:113
+#: 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 "返り値"
#: 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:1810 build/C/man2/personality.2:64
+#: build/C/man2/perf_event_open.2:2032 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:1727 build/C/man2/quotactl.2:427
+#: 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:57
+#: 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"
#: 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:1731
+#: 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:58
+#: build/C/man2/vm86.2:60
#, no-wrap
msgid "B<EFAULT>"
msgstr "B<EFAULT>"
#: 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:1811
+#: build/C/man2/pciconfig_read.2:78 build/C/man2/perf_event_open.2:2033
#: 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:1742
+#: 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
#: 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:1752
-#: build/C/man2/quotactl.2:456 build/C/man2/vm86.2:66
+#: 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 "B<EPERM>"
#: 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:110 build/C/man2/perf_event_open.2:1829
+#: build/C/man2/pciconfig_read.2:112 build/C/man2/perf_event_open.2:2051
#: 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:1770 build/C/man2/sendfile.2:148
+#: 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:71 build/C/man2/vmsplice.2:143
+#: build/C/man2/tee.2:119 build/C/man2/vm86.2:73 build/C/man2/vmsplice.2:143
#, no-wrap
msgid "CONFORMING TO"
msgstr "準拠"
#: 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:1834
+#: build/C/man2/modify_ldt.2:133 build/C/man2/perf_event_open.2:2056
#: 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:1772
+#: 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
#. type: Plain text
#: build/C/man2/arch_prctl.2:110
msgid ""
-"B<arch_prctl>() is only supported on Linux/x86-64 for 64-bit programs "
+"B<arch_prctl>() is supported only on Linux/x86-64 for 64-bit programs "
"currently."
msgstr ""
"B<arch_prctl>() は現在のところ Linux/x86-64 上の 64 ビットプログラムでのみサ"
"Context switches for 64-bit segment bases are rather expensive. It may be a "
"faster alternative to set a 32-bit base using a segment selector by setting "
"up an LDT with B<modify_ldt>(2) or using the B<set_thread_area>(2) system "
-"call in kernel 2.5 or later. B<arch_prctl>() is only needed when you want "
+"call in kernel 2.5 or later. B<arch_prctl>() is needed only when you want "
"to set bases that are larger than 4GB. Memory in the first 2GB of address "
"space can be allocated by using B<mmap>(2) with the B<MAP_32BIT> flag."
msgstr ""
#: 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:112
-#: build/C/man2/perf_event_open.2:1948 build/C/man2/perfmonctl.2:205
+#: build/C/man2/outb.2:96 build/C/man2/pciconfig_read.2:114
+#: build/C/man2/perf_event_open.2:2176 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:1926 build/C/man2/quotactl.2:507
+#: 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
msgstr "AMD X86-64 Programmer's manual"
#. type: SH
-#: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:325
+#: build/C/man2/arch_prctl.2:145 build/C/man2/futex.2:326
#: 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:114
-#: build/C/man2/perf_event_open.2:1954 build/C/man2/perfmonctl.2:209
+#: build/C/man2/outb.2:99 build/C/man2/pciconfig_read.2:116
+#: build/C/man2/perf_event_open.2:2182 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:1940
+#: 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:74 build/C/man2/vmsplice.2:157
+#: 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/arch_prctl.2:152 build/C/man2/futex.2:333
#: 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:121
-#: build/C/man2/perf_event_open.2:1961 build/C/man2/perfmonctl.2:216
+#: build/C/man2/outb.2:106 build/C/man2/pciconfig_read.2:123
+#: build/C/man2/perf_event_open.2:2189 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:1947
+#: 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:81 build/C/man2/vmsplice.2:164
+#: build/C/man2/tee.2:207 build/C/man2/vm86.2:83 build/C/man2/vmsplice.2:164
+#, fuzzy
+#| msgid ""
+#| "This page is part of release 3.52 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/."
msgid ""
-"This page is part of release 3.50 of the Linux I<man-pages> project. A "
+"This page is part of release 3.53 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/."
+"found at \\%http://www.kernel.org/doc/man-pages/."
msgstr ""
-"この man ページは Linux I<man-pages> プロジェクトのリリース 3.50 の一部\n"
+"この man ページは Linux I<man-pages> プロジェクトのリリース 3.52 の一部\n"
"である。プロジェクトの説明とバグ報告に関する情報は\n"
"http://www.kernel.org/doc/man-pages/ に書かれている。"
#. type: TH
#: build/C/man2/futex.2:53
-#, no-wrap
-msgid "2013-03-15"
-msgstr "2013-03-15"
+#, fuzzy, no-wrap
+#| msgid "2013-07-02"
+msgid "2013-07-30"
+msgstr "2013-07-02"
#. type: Plain text
#: build/C/man2/futex.2:56
#. type: Plain text
#: build/C/man2/futex.2:216
-#, fuzzy
-#| msgid ""
-#| "In the event of an error, all operations return -1, and set I<errno> to "
-#| "indicate the error."
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, "
"as described in the following list:"
msgstr ""
"エラーの場合、全ての操作で -1 が返り、 I<errno> がエラーの内容を示す値に設定"
-"される。"
+"される。成功時の返り値は操作によって異なり、以下のリストに書かれている通りで"
+"ある。"
#. type: Plain text
#: build/C/man2/futex.2:222
"Returns 0 if the process was woken by a B<FUTEX_WAKE> call. See ERRORS for "
"the various possible error returns."
msgstr ""
+"そのプロセスが B<FUTEX_WAKE> により wake された場合 0 を返す。発生する可能性"
+"があるエラーについては「エラー」の節を参照。"
#. type: Plain text
#: build/C/man2/futex.2:225 build/C/man2/futex.2:231 build/C/man2/futex.2:234
#. type: Plain text
#: build/C/man2/futex.2:249
-#, fuzzy
-#| msgid ""
-#| "B<FUTEX_CMP_REQUEUE> found an unexpected futex value. (This probably "
-#| "indicates a race; use the safe B<FUTEX_WAKE> now.)"
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 "
"the safe B<FUTEX_WAKE> now.)"
msgstr ""
-"B<FUTEX_CMP_REQUEUE> で予期しない futex 値が見つかった (これは競合を示してい"
-"るかもしれない。 この場合は安全な B<FUTEX_WAKE> を使うこと)。"
+"B<FUTEX_CMP_REQUEUE> で、I<uaddr> が指す値が期待値 I<val3> と異なる状況が検出"
+"された。 (これは競合を示しているかもしれない。この場合は安全な B<FUTEX_WAKE> "
+"を使うこと。)"
#. type: Plain text
#: build/C/man2/futex.2:254
"A B<FUTEX_WAIT> operation was interrupted by a signal (see B<signal>(7)) or "
"a spurious wakeup."
msgstr ""
+"B<FUTEX_WAIT> 操作がシグナル (B<signal>(7) 参照) もしくは偽の wakeup により中"
+"断された。"
#. type: Plain text
#: build/C/man2/futex.2:264
msgid "Invalid argument."
-msgstr ""
+msgstr "無効な引き数。"
#. type: TP
#: build/C/man2/futex.2:264
#. 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:62
+#: build/C/man2/vm86.2:64
#, no-wrap
msgid "B<ENOSYS>"
msgstr "B<ENOSYS>"
#. type: Plain text
#: build/C/man2/futex.2:276
msgid "Timeout during the B<FUTEX_WAIT> operation."
-msgstr ""
+msgstr "B<FUTEX_WAIT> 操作でタイムアウトが発生した。"
#. type: TP
#: build/C/man2/futex.2:276
"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 ""
+"I<op> が B<FUTEX_WAIT> で、その呼び出しにおいて I<uaddr> が指す値が期待値 "
+"I<val> と異なっていた。"
#. type: SH
#: build/C/man2/futex.2:286 build/C/man2/get_robust_list.2:115
"ブラリの ソースを読み終えていることが要求される。"
#. type: Plain text
-#: build/C/man2/futex.2:314
-msgid "B<futex>(7)"
-msgstr "B<futex>(7)"
+#: build/C/man2/futex.2:315
+#, fuzzy
+#| msgid "B<clone>(2), B<futex>(2)"
+msgid "B<restart_syscall>(2), B<futex>(7)"
+msgstr "B<clone>(2), B<futex>(2)"
#. type: Plain text
-#: build/C/man2/futex.2:317
+#: build/C/man2/futex.2:318
msgid ""
"I<Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux> (proceedings "
"of the Ottawa Linux Symposium 2002), online at"
"of the Ottawa Linux Symposium 2002), online at"
#. type: Plain text
-#: build/C/man2/futex.2:320
+#: build/C/man2/futex.2:321
msgid ""
"E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
"E<.UE>"
-msgstr "E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> E<.UE>"
+msgstr ""
+"E<.UR http://kernel.org\\:/doc\\:/ols\\:/2002\\:/ols2002-pages-479-495.pdf> "
+"E<.UE>"
#. type: Plain text
-#: build/C/man2/futex.2:322
+#: build/C/man2/futex.2:323
msgid "Futex example library, futex-*.tar.bz2 at"
msgstr "futex の使用例ライブラリ, futex-*.tar.bz2"
#. type: Plain text
-#: build/C/man2/futex.2:325
+#: build/C/man2/futex.2:326
msgid ""
"E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
"E<.UE>"
-msgstr "E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> E<.UE>"
+msgstr ""
+"E<.UR ftp://ftp.nl.kernel.org\\:/pub\\:/linux\\:/kernel\\:/people\\:/rusty/> "
+"E<.UE>"
#. type: TH
#: build/C/man2/get_robust_list.2:29
#: build/C/man2/get_robust_list.2:44
msgid "I<Note>: There are no glibc wrappers for these system calls; see NOTES."
msgstr ""
+"I<注意>: これらのシステムコールには glibc ラッパー関数は存在しない。 「注意」"
+"の節を参照。"
#. type: Plain text
#: build/C/man2/get_robust_list.2:49
msgid ""
"The robust futex implementation needs to maintain per-thread lists of robust "
"futexes which are unlocked when the thread exits. These lists are managed "
-"in user space; the kernel is only notified about the location of the head of "
+"in user space; the kernel is notified about only the location of the head of "
"the list."
msgstr ""
#. type: TP
#: build/C/man2/get_robust_list.2:106 build/C/man2/process_vm_readv.2:271
-#: build/C/man2/ptrace.2:1765 build/C/man2/quotactl.2:461
+#: build/C/man2/ptrace.2:1839 build/C/man2/quotactl.2:461
#: build/C/man2/quotactl.2:504
#, no-wrap
msgid "B<ESRCH>"
#. type: Plain text
#: build/C/man2/get_robust_list.2:124
-#, fuzzy
-#| msgid ""
-#| "These system calls are not needed by normal applications. No support for "
-#| "them is provided in glibc."
msgid ""
"These system calls are not needed by normal applications. No support for "
"them is provided in glibc. In the unlikely event that you want to call them "
"directly, use B<syscall>(2)."
msgstr ""
-"通常のアプリケーションでは、これらのシステムコールは必要ではない。\n"
-"glibc によるサポートは提供されていない。"
+"通常のアプリケーションでは、これらのシステムコールは必要ではない。 glibc によ"
+"るサポートは提供されていない。おそらくないと思うが、このシステムコールを直接"
+"呼び出したい場合は B<syscall>(2) を使うこと。"
#. type: Plain text
#: build/C/man2/get_robust_list.2:128
#. type: TH
#: build/C/man2/getunwind.2:27 build/C/man2/perfmonctl.2:27
-#, fuzzy, no-wrap
-#| msgid "2009-02-20"
+#, no-wrap
msgid "2013-02-13"
-msgstr "2009-02-20"
+msgstr "2013-02-13"
#. type: Plain text
#: build/C/man2/getunwind.2:30
#. type: Plain text
#: build/C/man2/getunwind.2:34
-#, fuzzy, no-wrap
-#| msgid ""
-#| "B<#include E<lt>sys/quota.hE<gt>>\n"
-#| "B<#include E<lt>xfs/xqm.hE<gt>>\n"
+#, no-wrap
msgid ""
"B<#include E<lt>syscall.hE<gt>>\n"
"B<#include E<lt>linux/unwind.hE<gt>>\n"
msgstr ""
-"B<#include E<lt>sys/quota.hE<gt>>\n"
-"B<#include E<lt>xfs/xqm.hE<gt>>\n"
+"B<#include E<lt>syscall.hE<gt>>\n"
+"B<#include E<lt>linux/unwind.hE<gt>>\n"
#. type: Plain text
#: build/C/man2/getunwind.2:36
#: build/C/man2/modify_ldt.2:36 build/C/man2/perf_event_open.2:42
#: build/C/man2/perfmonctl.2:39 build/C/man2/pivot_root.2:18
msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
-msgstr "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。"
+msgstr ""
+"I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節"
+"を参照。"
#. type: Plain text
#: build/C/man2/getunwind.2:42
#. type: Plain text
#: build/C/man2/getunwind.2:88
-#, fuzzy
-#| msgid ""
-#| "On success, B<kexec_load>() returns 0. On error, -1 is returned and "
-#| "I<errno> is set to indicate the error."
msgid ""
"On success, B<getunwind>() returns the size of unwind table. On error, -1 "
"is returned and I<errno> is set to indicate the error."
msgstr ""
-"成功すると、 B<kexec_load> は 0 を返す。\n"
-"エラーの場合、 -1 が返り、 I<errno> にエラーを示す値が設定される。"
#. type: Plain text
#: build/C/man2/getunwind.2:94
#. type: Plain text
#: build/C/man2/getunwind.2:96
-#, fuzzy
-#| msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11."
msgid "This system call is available since Linux 2.4."
msgstr ""
-"これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能"
-"である。"
#. type: Plain text
#: build/C/man2/getunwind.2:99
#. type: Plain text
#: build/C/man2/getunwind.2:111
-#, fuzzy
-#| msgid ""
-#| "Glibc does not provide a wrapper for this system call; call it using "
-#| "B<syscall>(2)."
msgid ""
"Glibc does not provide a wrapper for this system call; in the unlikely event "
"that you want to call it, use B<syscall>(2)."
msgstr ""
-"glibc はこのシステムコールに対するラッパー関数を提供していない。 B<syscall>"
-"(2) を使って呼び出すこと。"
+"glibc はこのシステムコールに対するラッパー関数を提供していない。おそらくない"
+"と思うが、このシステムコールを呼び出したい場合は B<syscall>(2) を使うこと。"
#. type: Plain text
#: build/C/man2/getunwind.2:113
#. type: TP
#: build/C/man2/kexec_load.2:54
-#, fuzzy, no-wrap
-#| msgid "B<KEXEC_PRESERVE_CONTEXT> (since Linux 2.7.27)"
+#, no-wrap
msgid "B<KEXEC_PRESERVE_CONTEXT> (since Linux 2.6.27)"
-msgstr "B<KEXEC_PRESERVE_CONTEXT> (Linux 2.7.27 以降)"
+msgstr "B<KEXEC_PRESERVE_CONTEXT> (Linux 2.6.27 以降)"
#. type: Plain text
#: build/C/man2/kexec_load.2:64
msgid ""
"Preserve the system hardware and software states before executing the new "
-"kernel. This could be used for system suspend. This flag is only available "
-"if the kernel was configured with B<CONFIG_KEXEC_JUMP>, and is only "
-"effective if I<nr_segments> is greater than 0."
+"kernel. This could be used for system suspend. This flag is available only "
+"if the kernel was configured with B<CONFIG_KEXEC_JUMP>, and is effective "
+"only if I<nr_segments> is greater than 0."
msgstr ""
"新しいカーネルを実行する前に、\n"
"システムのハードウェアとソフトウェアの状態を保存する。\n"
#. type: TP
#: build/C/man2/kexec_load.2:122 build/C/man2/pivot_root.2:110
-#: build/C/man2/ptrace.2:1728 build/C/man2/quotactl.2:495
+#: build/C/man2/ptrace.2:1802 build/C/man2/quotactl.2:495
#, no-wrap
msgid "B<EBUSY>"
msgstr "B<EBUSY>"
#. Check if it got accepted later.
#. type: Plain text
#: build/C/man2/kexec_load.2:156
-#, fuzzy
-#| msgid ""
-#| "The required constants are in the kernel source file I<linux/kexec.h>, "
-#| "which is not currently exported to glibc. Therefore, these constants "
-#| "must be defined manually."
msgid ""
"The required constants are in the Linux kernel source file I<linux/kexec.h>, "
"which is not currently exported to glibc. Therefore, these constants must "
"be defined manually."
msgstr ""
-"必要な定数はカーネルのソースファイル I<linux/kexec.h> で定義されている\n"
+"必要な定数は Linux カーネルのソースファイル I<linux/kexec.h> で定義されてい"
+"る\n"
"が、現在のところ glibc には公開されていない。\n"
"そのため、これらの定数は手動で定義しなければならない。"
#. type: Plain text
#: build/C/man2/kexec_load.2:159
msgid ""
-"This system call is only available if the kernel was configured with "
+"This system call is available only if the kernel was configured with "
"B<CONFIG_KEXEC>."
msgstr ""
"このシステムコールは、カーネルの設定で B<CONFIG_KEXEC> が有効になって\n"
#. type: Plain text
#: build/C/man2/nfsservctl.2:56 build/C/man2/pivot_root.2:105
-#: build/C/man2/vm86.2:57
+#: build/C/man2/vm86.2:59
msgid ""
"On success, zero is returned. On error, -1 is returned, and I<errno> is set "
"appropriately."
#. type: Plain text
#: build/C/man2/outb.2:78
-#, fuzzy
msgid ""
"You must compile with B<-O> or B<-O2> or similar. The functions are defined "
"as inline macros, and will not be substituted in without optimization "
"enabled, causing unresolved references at link time."
-msgstr "B<-O> や B<-O2> などを指定してコンパイルしなければならない。 これらの関数はインライン・マクロとして定義されており、 最適化を行わないと関数の展開が行われず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。"
+msgstr ""
+"B<-O> や B<-O2> などを指定してコンパイルしなければならない。 これらの関数はイ"
+"ンライン・マクロとして定義されており、 最適化を行わないと関数の展開が行われ"
+"ず、 リンクの時に「解決できない参照(unresolved reference)」が発生する。"
#. type: Plain text
#: build/C/man2/outb.2:87
#. type: Plain text
#: build/C/man2/pciconfig_read.2:27
-#, fuzzy
-#| msgid ""
-#| "Most of the interaction with PCI devices is already handled by the kernel "
-#| "PCI layer, and thus these calls should not normally need to be accessed "
-#| "from userspace."
msgid ""
"Most of the interaction with PCI devices is already handled by the kernel "
"PCI layer, and thus these calls should not normally need to be accessed from "
"い。"
#. type: TP
-#: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1745
+#: build/C/man2/pciconfig_read.2:84 build/C/man2/ptrace.2:1819
#: build/C/man2/sendfile.2:134
#, no-wrap
msgid "B<EIO>"
#. type: Plain text
#: build/C/man2/pciconfig_read.2:105
msgid ""
-"This return value is only valid for B<pciconfig_iobase>(). It is returned "
+"This return value is valid only for B<pciconfig_iobase>(). It is returned "
"if the value for I<which> is invalid."
msgstr ""
"この返り値は B<pciconfig_iobase>() でのみ有効である。 このエラーは I<which> "
"の値が無効であるときに返される。"
#. type: Plain text
-#: build/C/man2/pciconfig_read.2:110
+#: build/C/man2/pciconfig_read.2:112
msgid ""
"User does not have the B<CAP_SYS_ADMIN> capability. This does not apply to "
"B<pciconfig_iobase>()."
"B<pciconfig_iobase>() には適用されない。"
#. type: Plain text
-#: build/C/man2/pciconfig_read.2:112
+#: build/C/man2/pciconfig_read.2:114
msgid "These calls are Linux-specific, available since Linux 2.0.26/2.1.11."
msgstr ""
"これらの呼び出しは Linux 特有のものであり、 Linux 2.0.26/2.1.11 から使用可能"
"である。"
#. type: Plain text
-#: build/C/man2/pciconfig_read.2:114
+#: build/C/man2/pciconfig_read.2:116
msgid "B<capabilities>(7)"
msgstr "B<capabilities>(7)"
#. type: TH
#: build/C/man2/perf_event_open.2:27
-#, fuzzy, no-wrap
-#| msgid "B<PTRACE_EVENT_CLONE>"
+#, no-wrap
msgid "PERF_EVENT_OPEN"
-msgstr "B<PTRACE_EVENT_CLONE>"
+msgstr "PERF_EVENT_OPEN"
#. type: TH
#: build/C/man2/perf_event_open.2:27
#, fuzzy, no-wrap
-#| msgid "2012-04-25"
-msgid "2013-02-04"
-msgstr "2012-04-25"
+#| msgid "2013-02-16"
+msgid "2013-07-16"
+msgstr "2013-02-16"
#. type: Plain text
#: build/C/man2/perf_event_open.2:30
"B<perf_event_open>() calls with I<group_fd> being set to the fd of the "
"group leader. (A single event on its own is created with I<group_fd> = -1 "
"and is considered to be a group with only 1 member.) An event group is "
-"scheduled onto the CPU as a unit: it will only be put onto the CPU if all of "
+"scheduled onto the CPU as a unit: it will be put onto the CPU only if all of "
"the events in the group can be put onto the CPU. This means that the values "
"of the member events can be meaningfully compared, added, divided (to get "
"ratios), etc., with each other, since they have counted events for the same "
#. type: Plain text
#: build/C/man2/perf_event_open.2:152
#, fuzzy
-#| msgid "The I<subcmd> value is one of the following:"
-msgid "The I<flags> argument takes one of the following values:"
-msgstr "I<subcmd> の値は以下のいずれかである"
+#| msgid ""
+#| "The I<flags> argument is a bit mask that is composed by ORing together "
+#| "zero or more of the following values:"
+msgid ""
+"The I<flags> argument is formed by ORing together zero or more of the "
+"following values:"
+msgstr ""
+"I<flags> 引き数には、以下の値の 0 個以上をビット毎の論理和の形で指定する。"
#. type: TP
#: build/C/man2/perf_event_open.2:152
"directory in the cgroupfs filesystem. For instance, if the cgroup to "
"monitor is called I<test>, then a file descriptor opened on I</dev/cgroup/"
"test> (assuming cgroupfs is mounted on I</dev/cgroup>) must be passed as "
-"the I<pid> parameter. cgroup monitoring is only available for system-wide "
+"the I<pid> parameter. cgroup monitoring is available only for system-wide "
"events and may therefore require extra permissions."
msgstr ""
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:261 build/C/man2/perf_event_open.2:1272
+#: build/C/man2/perf_event_open.2:261 build/C/man2/perf_event_open.2:1311
#, no-wrap
msgid "I<type>"
msgstr ""
#. type: TP
#: build/C/man2/perf_event_open.2:277
-#, fuzzy, no-wrap
-#| msgid "B<PTRACE_CONT>"
+#, no-wrap
msgid "B<PERF_TYPE_TRACEPOINT>"
-msgstr "B<PTRACE_CONT>"
+msgstr "B<PERF_TYPE_TRACEPOINT>"
#. type: Plain text
#: build/C/man2/perf_event_open.2:281
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:316 build/C/man2/perf_event_open.2:1588
+#: build/C/man2/perf_event_open.2:316 build/C/man2/perf_event_open.2:1770
#, no-wrap
msgid "I<size>"
msgstr ""
msgid ""
"This counts the number of alignment faults. These happen when unaligned "
"memory accesses happen; the kernel can handle these but it reduces "
-"performance. This only happens on some architectures (never on x86)."
+"performance. This happens only on some architectures (never on x86)."
msgstr ""
#. type: TP
msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
#. 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
#, fuzzy, no-wrap
#| msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
msgid "B<PERF_SAMPLE_REGS_USER> (Since Linux 3.7)"
msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:662
-msgid "Records the current register state."
+#: 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:662
+#: build/C/man2/perf_event_open.2:668
#, fuzzy, no-wrap
#| msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
msgid "B<PERF_SAMPLE_STACK_USER> (Since Linux 3.7)"
msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:665 build/C/man2/perf_event_open.2:1786
-#: build/C/man2/perf_event_open.2:1803
-msgid "[To be documented]"
+#: 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
+#, fuzzy, no-wrap
+#| msgid "B<FUTEX_CMP_REQUEUE> (since Linux 2.6.7)"
+msgid "B<PERF_SAMPLE_WEIGHT> (Since Linux 3.10)"
+msgstr "B<FUTEX_CMP_REQUEUE> (Linux 2.6.7 以降)"
+
+#. type: Plain text
+#: 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 "
+"in a profile."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:677
+#, fuzzy, no-wrap
+#| msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
+msgid "B<PERF_SAMPLE_DATA_SRC> (Since Linux 3.10)"
+msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
+
+#. type: Plain text
+#: 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 "
+"underlying hardware supports this feature."
+msgstr ""
+
+#. type: TP
+#: 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:673
+#: 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:674
+#: 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:681
+#: 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:681
+#: 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:688
+#: 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:688
+#: 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:691
+#: 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:691
+#: 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:694
+#: 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:695
+#: build/C/man2/perf_event_open.2:713
#, no-wrap
msgid "I<disabled>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:705
+#: 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:705
+#: build/C/man2/perf_event_open.2:723
#, no-wrap
msgid "I<inherit>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:714
+#: 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 only applies to new children, not "
+"tasks as well as the task specified. This applies only to new children, not "
"to any existing children at the time the counter is created (nor to any new "
"children of existing children)."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:719
+#: 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:719
+#: build/C/man2/perf_event_open.2:737
#, no-wrap
msgid "I<pinned>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:732
+#: 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 only applies to hardware counters and only to group "
+"at all possible. It applies only to hardware counters and only to group "
"leaders. If a pinned counter cannot be put onto the CPU (e.g., because "
"there are not enough hardware counters or because of a conflict with some "
"other event), then the counter goes into an 'error' state, where reads "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:732
+#: build/C/man2/perf_event_open.2:750
#, no-wrap
msgid "I<exclusive>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:741
+#: 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:741
+#: 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:744
+#: 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:744
+#: 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:747
+#: 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:747
+#: 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:755
+#: 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:755
+#: 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:758
+#: 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:758
+#: build/C/man2/perf_event_open.2:776
#, no-wrap
msgid "I<mmap>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:763
+#: 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:763
+#: build/C/man2/perf_event_open.2:781
#, no-wrap
msgid "I<comm>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:774
+#: 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:774
+#: build/C/man2/perf_event_open.2:792
#, no-wrap
msgid "I<freq>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:781
+#: 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:781
+#: 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:788
+#: build/C/man2/perf_event_open.2:806
msgid ""
"This bit enables saving of event counts on context switch for inherited "
-"tasks. This is only meaningful if the I<inherit> field is set."
+"tasks. This is meaningful only if the I<inherit> field is set."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:788
+#: 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:793
+#: 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:793
+#: build/C/man2/perf_event_open.2:811
#, no-wrap
msgid "I<task>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:797
+#: 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:797
+#: build/C/man2/perf_event_open.2:815
#, no-wrap
msgid "I<watermark>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:805
+#: 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:805
+#: build/C/man2/perf_event_open.2:823
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<precise_ip> (Since Linux 2.6.35)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:815
+#: 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:817
+#: build/C/man2/perf_event_open.2:835
#, fuzzy
#| msgid "The I<subcmd> value is one of the following:"
msgid "The values of this are the following:"
msgstr "I<subcmd> の値は以下のいずれかである"
#. type: TP
-#: build/C/man2/perf_event_open.2:818
+#: build/C/man2/perf_event_open.2:836
#, no-wrap
msgid "0 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:822
+#: 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:822
+#: build/C/man2/perf_event_open.2:840
#, no-wrap
msgid "1 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:826
+#: 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:826
+#: build/C/man2/perf_event_open.2:844
#, no-wrap
msgid "2 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:830
+#: 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:830
+#: build/C/man2/perf_event_open.2:848
#, no-wrap
msgid "3 -"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:836
+#: 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:837
+#: build/C/man2/perf_event_open.2:855
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<mmap_data> (Since Linux 2.6.36)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:843
+#: 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:843
+#: build/C/man2/perf_event_open.2:861
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<sample_id_all> (Since Linux 2.6.38)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:851
+#: 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:851
+#: 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:854
+#: 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:854
+#: 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:857
+#: 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:857
+#: 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:860
+#: build/C/man2/perf_event_open.2:878
msgid "Do not include kernel callchains."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:860
+#: 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:863
+#: build/C/man2/perf_event_open.2:881
msgid "Do not include user callchains."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:863
+#: 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:873
+#: 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 "
"is used is selected by the I<watermark> bitflag."
msgstr ""
+#. type: Plain text
+#: 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 1."
+msgstr ""
+
#. type: TP
-#: build/C/man2/perf_event_open.2:873
+#: build/C/man2/perf_event_open.2:901
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<bp_type> (Since Linux 2.6.33)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:877
+#: 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:878
+#: 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:881
+#: build/C/man2/perf_event_open.2:909
msgid "no breakpoint"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:881
+#: 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:884
+#: 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:884
+#: 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:887
+#: 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:887
+#: 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:890
+#: 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:890
+#: 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:893
+#: 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:902
+#: 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:903
+#: build/C/man2/perf_event_open.2:931
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<bp_addr> (Since Linux 2.6.33)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:910
+#: 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:910
+#: build/C/man2/perf_event_open.2:938
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<config1> (Since Linux 2.6.39)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:917
+#: 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:917
+#: build/C/man2/perf_event_open.2:945
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<bp_len> (Since Linux 2.6.33)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:931
+#: 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:931
+#: build/C/man2/perf_event_open.2:959
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "I<config2> (Since Linux 2.6.39)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:938
+#: 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:938
+#: 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:942
+#: build/C/man2/perf_event_open.2:979
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. 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. The value is formed by ORing "
+"together zero or more of the following values, although "
+"B<PERF_SAMPLE_BRANCH_ANY> covers all branch types."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:943
+#: build/C/man2/perf_event_open.2:980
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_USER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:946
+#: build/C/man2/perf_event_open.2:983
msgid "Branch target is in user space"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:946
+#: build/C/man2/perf_event_open.2:983
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_KERNEL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:949
+#: build/C/man2/perf_event_open.2:986
msgid "Branch target is in kernel space"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:949
+#: build/C/man2/perf_event_open.2:986
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_HV>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:952
+#: build/C/man2/perf_event_open.2:989
msgid "Branch target is in hypervisor"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:952
+#: build/C/man2/perf_event_open.2:989
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_ANY>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:955
+#: build/C/man2/perf_event_open.2:992
msgid "Any branch type."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:955
+#: build/C/man2/perf_event_open.2:992
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_ANY_CALL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:958
+#: build/C/man2/perf_event_open.2:995
msgid "Any call branch"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:958
+#: build/C/man2/perf_event_open.2:995
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_ANY_RETURN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:961
+#: build/C/man2/perf_event_open.2:998
msgid "Any return branch"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:961
+#: build/C/man2/perf_event_open.2:998
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_IND_CALL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:964
+#: build/C/man2/perf_event_open.2:1001
msgid "Indirect calls"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:964
+#: build/C/man2/perf_event_open.2:1001
#, no-wrap
msgid "B<PERF_SAMPLE_BRANCH_PLM_ALL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:967
+#: build/C/man2/perf_event_open.2:1004
msgid "User, kernel, and hv"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:968
+#: build/C/man2/perf_event_open.2:1005
#, no-wrap
msgid "I<sample_regs_user> (Since Linux 3.7)"
msgstr ""
-#. FIXME: The following reference seems to be not quite right:
#. type: Plain text
-#: build/C/man2/perf_event_open.2:974
+#: build/C/man2/perf_event_open.2:1011
msgid ""
-"This defines the set of user registers to dump on samples. See I<asm/"
-"perf_regs.h>."
+"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 "
+"kernel header I<arch/ARCH/include/uapi/asm/perf_regs.h>."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:974
+#: build/C/man2/perf_event_open.2:1011
#, no-wrap
msgid "I<sample_stack_user> (Since Linux 3.7)"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:977
-msgid "This defines the size of the user stack to dump on samples."
+#: build/C/man2/perf_event_open.2:1016
+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:977
+#: build/C/man2/perf_event_open.2:1016
#, no-wrap
msgid "Reading results"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:987
+#: build/C/man2/perf_event_open.2:1026
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:992
+#: build/C/man2/perf_event_open.2:1031
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:994
+#: build/C/man2/perf_event_open.2:1033
msgid "Here is the layout of the data returned by a read:"
msgstr ""
#. type: IP
-#: build/C/man2/perf_event_open.2:994 build/C/man2/perf_event_open.2:1012
-#: build/C/man2/ptrace.2:1552 build/C/man2/ptrace.2:1562
-#: build/C/man2/ptrace.2:1570 build/C/man2/ptrace.2:1576
-#: build/C/man2/ptrace.2:1705
+#: build/C/man2/perf_event_open.2:1033 build/C/man2/perf_event_open.2:1051
+#: 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:998
+#: build/C/man2/perf_event_open.2:1037
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:1010
+#: build/C/man2/perf_event_open.2:1049
#, no-wrap
msgid ""
"struct read_format {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1018
+#: build/C/man2/perf_event_open.2:1057
msgid "If B<PERF_FORMAT_GROUP> was I<not> specified:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1027
+#: build/C/man2/perf_event_open.2:1066
#, no-wrap
msgid ""
"struct read_format {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1031
+#: build/C/man2/perf_event_open.2:1070
msgid "The values read are as follows:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1031
+#: build/C/man2/perf_event_open.2:1070
#, no-wrap
msgid "I<nr>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1037
+#: build/C/man2/perf_event_open.2:1076
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:1037
+#: build/C/man2/perf_event_open.2:1076
#, no-wrap
msgid "I<time_enabled>, I<time_running>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1049
+#: build/C/man2/perf_event_open.2:1088
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 "
-"multiplexing happens and events only run part of the time. In that case the "
+"multiplexing happens and events run only part of the time. In that case the "
"I<time_enabled> and I<time running> values can be used to scale an estimated "
"value for the count."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1049
+#: build/C/man2/perf_event_open.2:1088
#, no-wrap
msgid "I<value>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1052
+#: build/C/man2/perf_event_open.2:1091
msgid "An unsigned 64-bit value containing the counter result."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1052 build/C/man2/perf_event_open.2:1316
-#: build/C/man2/perf_event_open.2:1451
+#: build/C/man2/perf_event_open.2:1091 build/C/man2/perf_event_open.2:1355
+#: build/C/man2/perf_event_open.2:1492
#, no-wrap
msgid "I<id>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1058
+#: build/C/man2/perf_event_open.2:1097
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:1058
+#: build/C/man2/perf_event_open.2:1097
#, no-wrap
msgid "MMAP layout"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1068
+#: build/C/man2/perf_event_open.2:1107
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 ring-"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1074
+#: build/C/man2/perf_event_open.2:1113
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:1077
+#: build/C/man2/perf_event_open.2:1116
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:1079
+#: build/C/man2/perf_event_open.2:1118
msgid "The structure of the first metadata mmap page is as follows:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1103
+#: build/C/man2/perf_event_open.2:1142
#, no-wrap
msgid ""
"struct perf_event_mmap_page {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1109
+#: build/C/man2/perf_event_open.2:1148
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:1109
+#: build/C/man2/perf_event_open.2:1148
#, no-wrap
msgid "I<version>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1112
+#: build/C/man2/perf_event_open.2:1151
msgid "Version number of this structure."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1112
+#: build/C/man2/perf_event_open.2:1151
#, no-wrap
msgid "I<compat_version>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1115
+#: build/C/man2/perf_event_open.2:1154
msgid "The lowest version this is compatible with."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1115
+#: build/C/man2/perf_event_open.2:1154
#, no-wrap
msgid "I<lock>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1118
+#: build/C/man2/perf_event_open.2:1157
msgid "A seqlock for synchronization."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1118
+#: build/C/man2/perf_event_open.2:1157
#, no-wrap
msgid "I<index>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1121
+#: build/C/man2/perf_event_open.2:1160
msgid "A unique hardware counter identifier."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1121
+#: build/C/man2/perf_event_open.2:1160
#, no-wrap
msgid "I<offset>"
msgstr ""
#. FIXME clarify
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1125
+#: build/C/man2/perf_event_open.2:1164
msgid "Add this to hardware counter value??"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1125
+#: build/C/man2/perf_event_open.2:1164
#, no-wrap
msgid "I<time_enabled>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1128
+#: build/C/man2/perf_event_open.2:1167
msgid "Time the event was active."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1128
+#: build/C/man2/perf_event_open.2:1167
#, no-wrap
msgid "I<time_running>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1131
+#: build/C/man2/perf_event_open.2:1170
msgid "Time the event was running."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1131
+#: build/C/man2/perf_event_open.2:1170
#, no-wrap
msgid "I<cap_usr_time>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1134
+#: build/C/man2/perf_event_open.2:1173
msgid "User time capability"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1134
+#: build/C/man2/perf_event_open.2:1173
#, no-wrap
msgid "I<cap_usr_rdpmc>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1139
+#: build/C/man2/perf_event_open.2:1178
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:1146
+#: build/C/man2/perf_event_open.2:1185
#, no-wrap
msgid ""
"u32 seq, time_mult, time_shift, idx, width;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1152
+#: build/C/man2/perf_event_open.2:1191
#, no-wrap
msgid ""
"do {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1159
+#: build/C/man2/perf_event_open.2:1198
#, no-wrap
msgid ""
" if (pc-E<gt>cap_usr_time && enabled != running) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1162
+#: build/C/man2/perf_event_open.2:1201
#, no-wrap
msgid ""
" idx = pc-E<gt>index;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1167
+#: build/C/man2/perf_event_open.2:1206
#, no-wrap
msgid ""
" if (pc-E<gt>cap_usr_rdpmc && idx) {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1170
+#: build/C/man2/perf_event_open.2:1209
#, no-wrap
msgid ""
" barrier();\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1172
+#: build/C/man2/perf_event_open.2:1211
#, no-wrap
msgid "I<pmc_width>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1179
+#: build/C/man2/perf_event_open.2:1218
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:1185
+#: build/C/man2/perf_event_open.2:1224
#, no-wrap
msgid ""
"pmc E<lt>E<lt>= 64 - pmc_width;\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1187
+#: build/C/man2/perf_event_open.2:1226
#, no-wrap
msgid "I<time_shift>, I<time_mult>, I<time_offset>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1194
+#: build/C/man2/perf_event_open.2:1233
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:1202
+#: build/C/man2/perf_event_open.2:1241
#, no-wrap
msgid ""
" u64 quot, rem;\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1214
+#: build/C/man2/perf_event_open.2:1253
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:1222
+#: build/C/man2/perf_event_open.2:1261
#, no-wrap
msgid ""
" enabled += delta;\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1223
+#: build/C/man2/perf_event_open.2:1262
#, no-wrap
msgid "I<data_head>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1229
+#: build/C/man2/perf_event_open.2:1268
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:1232
+#: build/C/man2/perf_event_open.2:1271
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:1232
+#: build/C/man2/perf_event_open.2:1271
#, no-wrap
msgid "I<data_tail;>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1240
+#: build/C/man2/perf_event_open.2:1279
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:1242
+#: build/C/man2/perf_event_open.2:1281
msgid "The following 2^n ring-buffer pages have the layout described below."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1256
+#: build/C/man2/perf_event_open.2:1295
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 "
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1258
+#: build/C/man2/perf_event_open.2:1297
msgid "The mmap values start with a header:"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1266
+#: build/C/man2/perf_event_open.2:1305
#, no-wrap
msgid ""
"struct perf_event_header {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1272
+#: build/C/man2/perf_event_open.2:1311
msgid "Below, we describe the I<perf_event_header> fields in more detail."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1281
+#: build/C/man2/perf_event_open.2:1320
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:1282
+#: build/C/man2/perf_event_open.2:1321
#, no-wrap
msgid "B<PERF_RECORD_MMAP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1289
+#: build/C/man2/perf_event_open.2:1328
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:1300
+#: build/C/man2/perf_event_open.2:1339
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1302
+#: build/C/man2/perf_event_open.2:1341
#, no-wrap
msgid "B<PERF_RECORD_LOST>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1305
+#: build/C/man2/perf_event_open.2:1344
msgid "This record indicates when events are lost."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1313
+#: build/C/man2/perf_event_open.2:1352
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1319
+#: build/C/man2/perf_event_open.2:1358
msgid "is the unique event ID for the samples that were lost."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1319
+#: build/C/man2/perf_event_open.2:1358
#, no-wrap
msgid "I<lost>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1322
+#: build/C/man2/perf_event_open.2:1361
#, fuzzy
#| msgid "Returns the number of processes woken up."
msgid "is the number of events that were lost."
msgstr "wake したプロセスの数を返す。"
#. type: TP
-#: build/C/man2/perf_event_open.2:1323
+#: build/C/man2/perf_event_open.2:1362
#, no-wrap
msgid "B<PERF_RECORD_COMM>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1326
+#: build/C/man2/perf_event_open.2:1365
msgid "This record indicates a change in the process name."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1334
+#: build/C/man2/perf_event_open.2:1373
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1336
-#, fuzzy, no-wrap
-#| msgid "B<PTRACE_EVENT_EXIT>"
+#: build/C/man2/perf_event_open.2:1375
+#, no-wrap
msgid "B<PERF_RECORD_EXIT>"
-msgstr "B<PTRACE_EVENT_EXIT>"
+msgstr "B<PERF_RECORD_EXIT>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1339
+#: build/C/man2/perf_event_open.2:1378
msgid "This record indicates a process exit event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1348 build/C/man2/perf_event_open.2:1376
+#: build/C/man2/perf_event_open.2:1387 build/C/man2/perf_event_open.2:1415
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1350
+#: build/C/man2/perf_event_open.2:1389
#, no-wrap
msgid "B<PERF_RECORD_THROTTLE>, B<PERF_RECORD_UNTHROTTLE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1353
+#: build/C/man2/perf_event_open.2:1392
msgid "This record indicates a throttle/unthrottle event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1362
+#: build/C/man2/perf_event_open.2:1401
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1364
+#: build/C/man2/perf_event_open.2:1403
#, fuzzy, no-wrap
#| msgid "B<PTRACE_EVENT_FORK>"
msgid "B<PERF_RECORD_FORK>"
msgstr "B<PTRACE_EVENT_FORK>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1367
+#: build/C/man2/perf_event_open.2:1406
msgid "This record indicates a fork event."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1378
+#: build/C/man2/perf_event_open.2:1417
#, no-wrap
msgid "B<PERF_RECORD_READ>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1381
+#: build/C/man2/perf_event_open.2:1420
msgid "This record indicates a read event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1389
+#: build/C/man2/perf_event_open.2:1428
#, no-wrap
msgid ""
"struct {\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1391
+#: build/C/man2/perf_event_open.2:1430
#, no-wrap
msgid "B<PERF_RECORD_SAMPLE>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1394
+#: build/C/man2/perf_event_open.2:1433
msgid "This record indicates a sample."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1422
+#: build/C/man2/perf_event_open.2:1463
#, no-wrap
msgid ""
"struct {\n"
" u64 size; /* if PERF_SAMPLE_STACK_USER */\n"
" char data[size]; /* if PERF_SAMPLE_STACK_USER */\n"
" u64 dyn_size; /* if PERF_SAMPLE_STACK_USER */\n"
+" u64 weight; /* if PERF_SAMPLE_WEIGHT */\n"
+" u64 data_src; /* if PERF_SAMPLE_DATA_SRC */\n"
"};\n"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1424
+#: build/C/man2/perf_event_open.2:1465
#, no-wrap
msgid "I<ip>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1430
+#: build/C/man2/perf_event_open.2:1471
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:1430
+#: build/C/man2/perf_event_open.2:1471
#, no-wrap
msgid "I<pid>, I<tid>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1436
+#: build/C/man2/perf_event_open.2:1477
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:1436
+#: build/C/man2/perf_event_open.2:1477
#, no-wrap
msgid "I<time>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1444
+#: build/C/man2/perf_event_open.2:1485
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:1444
+#: build/C/man2/perf_event_open.2:1485
#, no-wrap
msgid "I<addr>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1451
+#: build/C/man2/perf_event_open.2:1492
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:1459
+#: build/C/man2/perf_event_open.2:1500
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:1459
+#: build/C/man2/perf_event_open.2:1500
#, no-wrap
msgid "I<stream_id>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1469
+#: build/C/man2/perf_event_open.2:1510
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:1469
+#: build/C/man2/perf_event_open.2:1510
#, no-wrap
msgid "I<cpu>, I<res>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1476
+#: build/C/man2/perf_event_open.2:1517
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:1476
+#: build/C/man2/perf_event_open.2:1517
#, no-wrap
msgid "I<period>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1482
+#: build/C/man2/perf_event_open.2:1523
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:1482
+#: build/C/man2/perf_event_open.2:1523
#, no-wrap
msgid "I<v>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1493
+#: build/C/man2/perf_event_open.2:1534
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:1493
+#: build/C/man2/perf_event_open.2:1534
#, no-wrap
msgid "I<nr>, I<ips[nr]>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1501
+#: build/C/man2/perf_event_open.2:1542
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:1501
+#: build/C/man2/perf_event_open.2:1542
#, no-wrap
msgid "I<size>, I<data[size]>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1508
+#: build/C/man2/perf_event_open.2:1549
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:1513
+#: build/C/man2/perf_event_open.2:1554
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:1513
+#: build/C/man2/perf_event_open.2:1554
#, no-wrap
msgid "I<bnr>, I<lbr[bnr]>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1524
+#: build/C/man2/perf_event_open.2:1563
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:1564
+#, no-wrap
+msgid "I<from>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1567
+msgid "indicating the source instruction (may not be a branch)"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1567
+#, no-wrap
+msgid "I<to>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1570
+msgid "the branch target"
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1570
+#, no-wrap
+msgid "I<mispred>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1573
+msgid "the branch target was mispredicted"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1524
+#: build/C/man2/perf_event_open.2:1573
+#, no-wrap
+msgid "I<predicted>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1576
+msgid "the branch target was predicted."
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1579
+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:1586
+msgid ""
+"Support for I<mispred> and I<predicted> is optional; if not supported, both "
+"values will be 0."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1587
#, no-wrap
msgid "I<abi>, I<regs[weight(mask)]>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1530
-msgid "If B<PERF_SAMPLE_REGS_USER> is enabled, then [to be documented]."
+#: build/C/man2/perf_event_open.2:1592
+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:1536
+#: build/C/man2/perf_event_open.2:1598
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:1608
+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:1536
+#: build/C/man2/perf_event_open.2:1608
#, no-wrap
msgid "I<size>, I<data[size]>, I<dyn_size>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1542
-msgid "If B<PERF_SAMPLE_STACK_USER> is enabled, then [to be documented]."
+#: build/C/man2/perf_event_open.2:1622
+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:1622
+#, no-wrap
+msgid "I<weight>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1630
+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:1630
+#, no-wrap
+msgid "I<data_src>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1636
+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:1637
+#, no-wrap
+msgid "I<mem_op>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1650
+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)."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1650
+#, no-wrap
+msgid "I<mem_lvl>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1681
+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)."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1681
+#, no-wrap
+msgid "I<mem_snoop>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1694
+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)."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1694
+#, no-wrap
+msgid "I<mem_lock>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1701
+msgid ""
+"lock instruction, a bitwise combination of B<PERF_MEM_LOCK_NA> (not "
+"available) and B<PERF_MEM_LOCK_LOCKED> (locked transaction)."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:1701
+#, no-wrap
+msgid "I<mem_dtlb>"
+msgstr ""
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1718
+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)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1544
+#: build/C/man2/perf_event_open.2:1721
#, no-wrap
msgid "I<misc>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1549
+#: build/C/man2/perf_event_open.2:1726
msgid "The I<misc> field contains additional information about the sample."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1554
+#: build/C/man2/perf_event_open.2:1731
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 "
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1555
+#: build/C/man2/perf_event_open.2:1732
#, no-wrap
msgid "B<PERF_RECORD_MISC_CPUMODE_UNKNOWN>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1558
+#: build/C/man2/perf_event_open.2:1735
msgid "Unknown CPU mode."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1558
+#: build/C/man2/perf_event_open.2:1735
#, no-wrap
msgid "B<PERF_RECORD_MISC_KERNEL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1561
+#: build/C/man2/perf_event_open.2:1738
msgid "Sample happened in the kernel."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1561
+#: build/C/man2/perf_event_open.2:1738
#, no-wrap
msgid "B<PERF_RECORD_MISC_USER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1564
+#: build/C/man2/perf_event_open.2:1741
msgid "Sample happened in user code."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1564
+#: build/C/man2/perf_event_open.2:1741
#, no-wrap
msgid "B<PERF_RECORD_MISC_HYPERVISOR>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1567
+#: build/C/man2/perf_event_open.2:1744
msgid "Sample happened in the hypervisor."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1567
+#: build/C/man2/perf_event_open.2:1744
#, no-wrap
msgid "B<PERF_RECORD_MISC_GUEST_KERNEL>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1570
+#: build/C/man2/perf_event_open.2:1747
msgid "Sample happened in the guest kernel."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1570
+#: build/C/man2/perf_event_open.2:1747
#, no-wrap
msgid "B<PERF_RECORD_MISC_GUEST_USER>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1573
+#: build/C/man2/perf_event_open.2:1750
msgid "Sample happened in guest user code."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1576
+#: build/C/man2/perf_event_open.2:1754
msgid "In addition, one of the following bits can be set:"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1577
+#: build/C/man2/perf_event_open.2:1754
+#, fuzzy, no-wrap
+#| msgid "B<PERF_RECORD_EXIT>"
+msgid "B<PERF_RECORD_MISC_MMAP_DATA>"
+msgstr "B<PERF_RECORD_EXIT>"
+
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1758
+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:1758
#, no-wrap
msgid "B<PERF_RECORD_MISC_EXACT_IP>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1585
+#: build/C/man2/perf_event_open.2:1766
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."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1585
+#: build/C/man2/perf_event_open.2:1766
#, no-wrap
msgid "B<PERF_RECORD_MISC_EXT_RESERVED>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1588
+#: build/C/man2/perf_event_open.2:1769
msgid "This indicates there is extended data available (currently not used)."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1591
+#: build/C/man2/perf_event_open.2:1773
msgid "This indicates the size of the record."
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1592
+#: build/C/man2/perf_event_open.2:1774
#, no-wrap
msgid "Signal overflow"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1601
+#: build/C/man2/perf_event_open.2:1783
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:1605
+#: build/C/man2/perf_event_open.2:1787
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:1607
+#: build/C/man2/perf_event_open.2:1789
msgid "There are two ways to generate signals."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1617
+#: build/C/man2/perf_event_open.2:1799
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:1629
+#: build/C/man2/perf_event_open.2:1811
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 non-"
#. FIXME(Vince) : Find out when this was introduced
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1635
+#: build/C/man2/perf_event_open.2:1817
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:1635
+#: build/C/man2/perf_event_open.2:1817
#, no-wrap
msgid "rdpmc instruction"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1642
+#: build/C/man2/perf_event_open.2:1824
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:1647
+#: build/C/man2/perf_event_open.2:1829
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:1647
+#: build/C/man2/perf_event_open.2:1829
#, no-wrap
msgid "perf_event ioctl calls"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1652
+#: build/C/man2/perf_event_open.2:1834
msgid "Various ioctls act on B<perf_event_open>() file descriptors"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1652
+#: build/C/man2/perf_event_open.2:1834
#, fuzzy, no-wrap
#| msgid "B<PTRACE_EVENT_CLONE>"
msgid "B<PERF_EVENT_IOC_ENABLE>"
msgstr "B<PTRACE_EVENT_CLONE>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1656
+#: build/C/man2/perf_event_open.2:1838
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:1658 build/C/man2/perf_event_open.2:1671
-#: build/C/man2/perf_event_open.2:1699
-msgid "The ioctl argument is ignored."
+#: build/C/man2/perf_event_open.2:1844
+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 (but see BUGS)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1658
+#: build/C/man2/perf_event_open.2:1844
#, fuzzy, no-wrap
#| msgid "B<PTRACE_EVENT_CLONE>"
msgid "B<PERF_EVENT_IOC_DISABLE>"
msgstr "B<PTRACE_EVENT_CLONE>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1662
+#: build/C/man2/perf_event_open.2:1848
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:1669
+#: build/C/man2/perf_event_open.2:1855
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 "
"the group will count. Enabling or disabling a member of a group other than "
-"the leader only affects that counter; disabling a non-leader stops that "
+"the leader affects only that counter; disabling a non-leader stops that "
"counter from counting but doesn't affect any other counter."
msgstr ""
+#. type: Plain text
+#: build/C/man2/perf_event_open.2:1861
+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 (but see BUGS)."
+msgstr ""
+
#. type: TP
-#: build/C/man2/perf_event_open.2:1671
+#: build/C/man2/perf_event_open.2:1861
#, fuzzy, no-wrap
#| msgid "B<PTRACE_EVENT_FORK>"
msgid "B<PERF_EVENT_IOC_REFRESH>"
msgstr "B<PTRACE_EVENT_FORK>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1685
+#: build/C/man2/perf_event_open.2:1875
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:1685
+#: build/C/man2/perf_event_open.2:1875
#, fuzzy, no-wrap
#| msgid "B<PTRACE_EVENT_FORK>"
msgid "B<PERF_EVENT_IOC_RESET>"
msgstr "B<PTRACE_EVENT_FORK>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1697
+#: build/C/man2/perf_event_open.2:1885
+msgid ""
+"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:1891
msgid ""
-"Reset the event count specified by the file descriptor argumentto zero. "
-"This only resets the counts; there is no way to reset the multiplexing "
-"I<time_enabled> or I<time_running> values. When sent to a group leader, "
-"only the leader is reset (child events are not)."
+"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 (but see BUGS)."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1699
+#: build/C/man2/perf_event_open.2:1891
#, fuzzy, no-wrap
#| msgid "B<PTRACE_EVENT_FORK>"
msgid "B<PERF_EVENT_IOC_PERIOD>"
msgstr "B<PTRACE_EVENT_FORK>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1703
+#: build/C/man2/perf_event_open.2:1895
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:1706
+#: build/C/man2/perf_event_open.2:1898
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:1706
+#: build/C/man2/perf_event_open.2:1898
#, no-wrap
msgid "B<PERF_EVENT_IOC_SET_OUTPUT>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1711
+#: build/C/man2/perf_event_open.2:1903
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:1714
+#: build/C/man2/perf_event_open.2:1906
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:1714
+#: build/C/man2/perf_event_open.2:1906
#, fuzzy, no-wrap
#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
msgid "B<PERF_EVENT_IOC_SET_FILTER> (Since Linux 2.6.33)"
msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1717
+#: build/C/man2/perf_event_open.2:1909
msgid "This adds an ftrace filter to this event."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1719
+#: build/C/man2/perf_event_open.2:1911
msgid "The argument is a pointer to the desired ftrace filter."
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1719
+#: build/C/man2/perf_event_open.2:1911
#, no-wrap
msgid "Using prctl"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1732
+#: build/C/man2/perf_event_open.2:1924
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 "
"B<PR_TASK_PERF_EVENTS_DISABLE> operations. This applies to all counters on "
"the current process, whether created by this process or by another, and does "
"not affect any counters that this process has created on other processes. "
-"It only enables or disables the group leaders, not any other members in the "
+"It enables or disables only the group leaders, not any other members in the "
"groups."
msgstr ""
#. type: SS
-#: build/C/man2/perf_event_open.2:1732
+#: build/C/man2/perf_event_open.2:1924
#, no-wrap
msgid "perf_event related configuration files"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1735
+#: build/C/man2/perf_event_open.2:1927
msgid "Files in I</proc/sys/kernel/>"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1736
+#: build/C/man2/perf_event_open.2:1928
#, no-wrap
msgid "I</proc/sys/kernel/perf_event_paranoid>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1742
+#: build/C/man2/perf_event_open.2:1934
msgid ""
"The I<perf_event_paranoid> file can be set to restrict access to the "
"performance counters."
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1744
+#: build/C/man2/perf_event_open.2:1936
msgid "2 - only allow user-space measurements"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1746
+#: build/C/man2/perf_event_open.2:1938
msgid "1 - (default) allow both kernel and user measurements"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1748
+#: build/C/man2/perf_event_open.2:1940
msgid "0 - allow access to CPU-specific data but not raw tracepoint samples"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1750
+#: build/C/man2/perf_event_open.2:1942
msgid "-1 - no restrictions"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1755
+#: build/C/man2/perf_event_open.2:1947
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:1755
+#: build/C/man2/perf_event_open.2:1947
#, no-wrap
msgid "I</proc/sys/kernel/perf_event_max_sample_rate>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1764
+#: build/C/man2/perf_event_open.2:1956
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:1764
+#: build/C/man2/perf_event_open.2:1956
#, no-wrap
msgid "I</proc/sys/kernel/perf_event_mlock_kb>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1769
+#: build/C/man2/perf_event_open.2:1961
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:1772
+#: build/C/man2/perf_event_open.2:1965
msgid "Files in I</sys/bus/event_source/devices/>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1778
+#: build/C/man2/perf_event_open.2:1971
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 I</"
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1778
-#, no-wrap
-msgid "I</sys/bus/event_source/devices/*/type>"
-msgstr ""
+#: build/C/man2/perf_event_open.2:1971
+#, fuzzy, no-wrap
+#| msgid "B<KEXEC_ON_CRASH> (since Linux 2.6.13)"
+msgid "I</sys/bus/event_source/devices/*/type> (Since Linux 2.6.38)"
+msgstr "B<KEXEC_ON_CRASH> (Linux 2.6.13 以降)"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1783
+#: build/C/man2/perf_event_open.2:1976
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:1783
+#: build/C/man2/perf_event_open.2:1976
#, 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:1981
+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:1786
+#: build/C/man2/perf_event_open.2:1981
#, 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:1987
+msgid ""
+"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:1791
+#: build/C/man2/perf_event_open.2:1997
msgid ""
-"This sub-directory contains information on what bits in the I<config> field "
-"of perf_event_attr correspond to."
+"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:1791
+#: build/C/man2/perf_event_open.2:1997
#, 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:1800
+#: build/C/man2/perf_event_open.2:2006
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:2014
+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:1800
+#: build/C/man2/perf_event_open.2:2014
#, no-wrap
msgid "I</sys/bus/event_source/devices/*/uevent>"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1810
+#: build/C/man2/perf_event_open.2:2018
+msgid ""
+"This file is the standard kernel device interface for injecting hotplug "
+"events."
+msgstr ""
+
+#. type: TP
+#: build/C/man2/perf_event_open.2:2018
+#, 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:2025
+msgid ""
+"The 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:2032
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:1814
+#: build/C/man2/perf_event_open.2:2036
msgid "Returned if the specified event is not available."
msgstr ""
#. type: TP
-#: build/C/man2/perf_event_open.2:1814
-#, fuzzy, no-wrap
-#| msgid "B<ENOSYS>"
+#: build/C/man2/perf_event_open.2:2036
+#, no-wrap
msgid "B<ENOSPC>"
-msgstr "B<ENOSYS>"
+msgstr "B<ENOSPC>"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1824
+#: build/C/man2/perf_event_open.2:2046
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:1824
-#, fuzzy, no-wrap
-#| msgid "VERSIONS"
+#: build/C/man2/perf_event_open.2:2046
+#, no-wrap
msgid "VERSION"
msgstr "バージョン"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1829
+#: build/C/man2/perf_event_open.2:2051
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:1834
+#: build/C/man2/perf_event_open.2:2056
#, fuzzy
#| msgid ""
#| "B<personality>() is Linux-specific and should not be used in programs "
"はない。"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1838
+#: build/C/man2/perf_event_open.2:2060
#, fuzzy
#| msgid ""
#| "Glibc does not provide a wrapper for this system call; call it using "
"(2) を使って呼び出すこと。"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1844
+#: build/C/man2/perf_event_open.2:2066
msgid ""
"The official way of knowing if B<perf_event_open>() support is enabled is "
"checking for the existence of the file I</proc/sys/kernel/"
msgstr ""
#. type: SH
-#: build/C/man2/perf_event_open.2:1844 build/C/man2/pivot_root.2:134
-#: build/C/man2/ptrace.2:1810
+#: build/C/man2/perf_event_open.2:2066 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:1851
+#: build/C/man2/perf_event_open.2:2073
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:1859
+#: build/C/man2/perf_event_open.2:2081
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:1863
+#: build/C/man2/perf_event_open.2:2085
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:1866
+#: build/C/man2/perf_event_open.2:2088
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:1869
+#: build/C/man2/perf_event_open.2:2091
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:1873
+#: build/C/man2/perf_event_open.2:2095
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:1878
+#: build/C/man2/perf_event_open.2:2100
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:1884
+#: build/C/man2/perf_event_open.2:2106
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:1889
+#: build/C/man2/perf_event_open.2:2112
+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:2117
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:1889 build/C/man2/process_vm_readv.2:295
+#: build/C/man2/perf_event_open.2:2117 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:1893
+#: build/C/man2/perf_event_open.2:2121
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:1902
-#, fuzzy, no-wrap
-#| msgid ""
-#| "#define _GNU_SOURCE\n"
-#| "#include E<lt>fcntl.hE<gt>\n"
-#| "#include E<lt>stdio.hE<gt>\n"
-#| "#include E<lt>stdlib.hE<gt>\n"
-#| "#include E<lt>unistd.hE<gt>\n"
-#| "#include E<lt>errno.hE<gt>\n"
-#| "#include E<lt>limits.hE<gt>\n"
+#: build/C/man2/perf_event_open.2:2130
+#, no-wrap
msgid ""
"#include E<lt>stdlib.hE<gt>\n"
"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>linux/perf_event.hE<gt>\n"
"#include E<lt>asm/unistd.hE<gt>\n"
msgstr ""
-"#define _GNU_SOURCE\n"
-"#include E<lt>fcntl.hE<gt>\n"
-"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
"#include E<lt>unistd.hE<gt>\n"
-"#include E<lt>errno.hE<gt>\n"
-"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>string.hE<gt>\n"
+"#include E<lt>sys/ioctl.hE<gt>\n"
+"#include E<lt>linux/perf_event.hE<gt>\n"
+"#include E<lt>asm/unistd.hE<gt>\n"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1908
+#: build/C/man2/perf_event_open.2:2136
#, no-wrap
msgid ""
"long\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1913
+#: build/C/man2/perf_event_open.2:2141
#, 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:1920
-#, fuzzy, no-wrap
-#| msgid ""
-#| "int\n"
-#| "main(int argc, char *argv[])\n"
-#| "{\n"
-#| " int fd;\n"
-#| " int len, slen;\n"
+#: build/C/man2/perf_event_open.2:2148
+#, no-wrap
msgid ""
"int\n"
"main(int argc, char **argv)\n"
" int fd;\n"
msgstr ""
"int\n"
-"main(int argc, char *argv[])\n"
+"main(int argc, char **argv)\n"
"{\n"
+" struct perf_event_attr pe;\n"
+" long long count;\n"
" int fd;\n"
-" int len, slen;\n"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1928
+#: build/C/man2/perf_event_open.2:2156
#, no-wrap
msgid ""
" memset(&pe, 0, sizeof(struct perf_event_attr));\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1934
-#, fuzzy, no-wrap
-#| msgid ""
-#| " fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
-#| " if (fd == -1) {\n"
-#| " perror(\"open\");\n"
-#| " exit(EXIT_FAILURE);\n"
-#| " }\n"
+#: build/C/man2/perf_event_open.2:2162
+#, no-wrap
msgid ""
" fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
" if (fd == -1) {\n"
" exit(EXIT_FAILURE);\n"
" }\n"
msgstr ""
-" fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);\n"
+" fd = perf_event_open(&pe, 0, -1, -1, 0);\n"
" if (fd == -1) {\n"
-" perror(\"open\");\n"
-" exit(EXIT_FAILURE);\n"
+" fprintf(stderr, \"Error opening leader %llx\\en\", pe.config);\n"
+" exit(EXIT_FAILURE);\n"
" }\n"
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1937
+#: build/C/man2/perf_event_open.2:2165
#, no-wrap
msgid ""
" ioctl(fd, PERF_EVENT_IOC_RESET, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1939
+#: build/C/man2/perf_event_open.2:2167
#, no-wrap
msgid " printf(\"Measuring instruction count for this printf\\en\");\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1942
+#: build/C/man2/perf_event_open.2:2170
#, no-wrap
msgid ""
" ioctl(fd, PERF_EVENT_IOC_DISABLE, 0);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1944
+#: build/C/man2/perf_event_open.2:2172
#, no-wrap
msgid " printf(\"Used %lld instructions\\en\", count);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1947
+#: build/C/man2/perf_event_open.2:2175
#, no-wrap
msgid ""
" close(fd);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/perf_event_open.2:1954
-#, fuzzy
-#| msgid "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
+#: build/C/man2/perf_event_open.2:2182
msgid "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
-msgstr "B<mmap>(2), B<open>(2), B<socket>(2), B<splice>(2)"
+msgstr "B<fcntl>(2), B<mmap>(2), B<open>(2), B<prctl>(2), B<read>(2)"
#. type: TH
#: build/C/man2/perfmonctl.2:27
#. type: Plain text
#: build/C/man2/perfmonctl.2:34
-#, fuzzy, no-wrap
-#| msgid ""
-#| "B<#include E<lt>sys/quota.hE<gt>>\n"
-#| "B<#include E<lt>xfs/xqm.hE<gt>>\n"
+#, no-wrap
msgid ""
"B<#include E<lt>syscall.hE<gt>>\n"
"B<#include E<lt>perfmon.hE<gt>>\n"
msgstr ""
-"B<#include E<lt>sys/quota.hE<gt>>\n"
-"B<#include E<lt>xfs/xqm.hE<gt>>\n"
+"B<#include E<lt>syscall.hE<gt>>\n"
+"B<#include E<lt>perfmon.hE<gt>>\n"
#. type: Plain text
#: build/C/man2/perfmonctl.2:36
-#, fuzzy, no-wrap
-#| msgid "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
+#, no-wrap
msgid "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
-msgstr "B<int quotactl(int >I<cmd>B<, const char *>I<special>B<, int >I<id>B<, caddr_t >I<addr>B<);>\n"
+msgstr "B<long perfmonctl(int >I<fd>B<, int >I<cmd>B<, void *>I<arg>B<, int >I<narg>B<);>\n"
#. type: Plain text
#: build/C/man2/perfmonctl.2:47
#. type: TP
#: build/C/man2/perfmonctl.2:61
-#, fuzzy, no-wrap
-#| msgid "B<PTRACE_CONT>"
+#, no-wrap
msgid "B<PFM_CREATE_CONTEXT>"
-msgstr "B<PTRACE_CONT>"
+msgstr "B<PFM_CREATE_CONTEXT>"
#. type: Plain text
#: build/C/man2/perfmonctl.2:65
#. type: TP
#: build/C/man2/perfmonctl.2:126
-#, fuzzy, no-wrap
-#| msgid "B<PTRACE_CONT>"
+#, no-wrap
msgid "B<PFM_LOAD_CONTEXT>"
-msgstr "B<PTRACE_CONT>"
+msgstr "B<PFM_LOAD_CONTEXT>"
#. type: Plain text
#: build/C/man2/perfmonctl.2:131
#. type: TP
#: build/C/man2/perfmonctl.2:147
-#, fuzzy, no-wrap
-#| msgid "B<Q_GETSTATS>"
+#, no-wrap
msgid "B<PFM_GET_FEATURES>"
-msgstr "B<Q_GETSTATS>"
+msgstr "B<PFM_GET_FEATURES>"
#. type: Plain text
#: build/C/man2/perfmonctl.2:152
#. type: TH
#: build/C/man2/ptrace.2:44
#, fuzzy, no-wrap
-#| msgid "2009-02-20"
-msgid "2013-02-16"
-msgstr "2009-02-20"
+#| msgid "2013-07-02"
+msgid "2013-07-11"
+msgstr "2013-07-02"
#. type: Plain text
#: build/C/man2/ptrace.2:47
"probably shouldn't make this request if its parent isn't expecting to trace "
"it. (I<pid>, I<addr>, and I<data> are ignored.)"
msgstr ""
+"このプロセスが親プロセスによってトレースされることを表す。親プロセスが自プロ"
+"セスをトレースするつもりがない場合には、 おそらくこのプロセスは本要求を行うべ"
+"きではないだろう。 (I<pid>, I<addr>, I<data> は無視される。)"
#. type: Plain text
#: build/C/man2/ptrace.2:156
#. type: TP
#: build/C/man2/ptrace.2:257
#, no-wrap
-msgid "B<PTRACE_GETSIGINFO> (since Linux 2.3.99-pre6)"
-msgstr "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
-
-#. type: Plain text
-#: build/C/man2/ptrace.2:269
-#, fuzzy
-#| msgid ""
-#| "Retrieve information about the signal that caused the stop. Copies a "
-#| "I<siginfo_t> structure (see B<sigaction>(2)) from the child to location "
-#| "I<data> in the parent. (I<addr> is ignored.)"
-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 ""
-"停止の原因となったシグナルに関する情報を取得する。 I<siginfo_t> 構造体 "
-"(B<sigaction>(2) 参照) を子プロセスから親プロセスの I<data> の位置にコピーす"
-"る。 (I<addr> は無視される。)"
-
-#. type: TP
-#: build/C/man2/ptrace.2:269
-#, no-wrap
msgid "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
msgstr "B<PTRACE_SETREGS>, B<PTRACE_SETFPREGS>"
#. 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
#, fuzzy
#| msgid ""
#| "Copies the child's general purpose or floating-point registers, "
"よっては 変更が禁止されている場合がある。 (I<addr> は無視される。)"
#. type: TP
-#: build/C/man2/ptrace.2:294
+#: build/C/man2/ptrace.2:282
#, fuzzy, no-wrap
#| msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
msgid "B<PTRACE_SETREGSET> (since Linux 2.6.34)"
msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
#. 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 "B<PTRACE_GETSIGINFO> (Linux 2.3.99-pre6 以降)"
+
+#. type: Plain text
+#: build/C/man2/ptrace.2:303
+#, fuzzy
+#| msgid ""
+#| "Retrieve information about the signal that caused the stop. Copies a "
+#| "I<siginfo_t> structure (see B<sigaction>(2)) from the child to location "
+#| "I<data> in the parent. (I<addr> is ignored.)"
+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 ""
+"停止の原因となったシグナルに関する情報を取得する。 I<siginfo_t> 構造体 "
+"(B<sigaction>(2) 参照) を子プロセスから親プロセスの I<data> の位置にコピーす"
+"る。 (I<addr> は無視される。)"
+
+#. type: TP
#: build/C/man2/ptrace.2:303
#, no-wrap
msgid "B<PTRACE_SETSIGINFO> (since Linux 2.3.99-pre6)"
msgstr "B<PTRACE_O_TRACECLONE> (Linux 2.5.46 以降)"
#. type: Plain text
-#: build/C/man2/ptrace.2:349
+#: build/C/man2/ptrace.2:354
#, fuzzy
#| msgid ""
#| "Stop the child at the next B<fork>(2) call with I<SIGTRAP | "
#| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
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 ""
"次の B<fork>(2) 呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
"8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
"PID は B<PTRACE_GETEVENTMSG> で取得できる。"
#. 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
#, fuzzy
#| msgid ""
#| "Stop the child at the next B<clone>(2) call with I<SIGTRAP | "
"B<PTRACE_O_TRACEFORK> が設定されていれば B<PTRACE_EVENT_FORK> が配送される。"
#. 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 "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
#. 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 "B<PTRACE_O_TRACEEXIT> (Linux 2.5.60 以降)"
#. 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
#, fuzzy
#| msgid ""
#| "Stop the child at exit with I<SIGTRAP | PTRACE_EVENT_EXIT\\ E<lt>E<lt>\\ "
"できない。"
#. 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 "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
#. type: Plain text
-#: build/C/man2/ptrace.2:430
+#: build/C/man2/ptrace.2:440
#, fuzzy
#| msgid ""
#| "Stop the child at the next B<fork>(2) call with I<SIGTRAP | "
#| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
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 ""
"次の B<fork>(2) 呼び出し時に I<SIGTRAP | PTRACE_EVENT_FORK\\ E<lt>E<lt>\\ "
"8> で 子プロセスの動作を停止させ、 新たに fork されたプロセスのトレースを自動"
"PID は B<PTRACE_GETEVENTMSG> で取得できる。"
#. 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 "B<PTRACE_O_TRACESYSGOOD> (Linux 2.4.6 以降)"
#. type: Plain text
-#: build/C/man2/ptrace.2:446
+#: build/C/man2/ptrace.2:456
#, fuzzy
#| msgid ""
#| "When delivering syscall traps, set bit 7 in the signal number (i.e., "
"(B<PTRACE_O_TRACESYSGOOD> はどのアーキテクチャでも動作しない可能性がある。)"
#. 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 "B<PTRACE_O_TRACEVFORK> (Linux 2.5.46 以降)"
#. type: Plain text
-#: build/C/man2/ptrace.2:458
+#: build/C/man2/ptrace.2:473
#, fuzzy
#| msgid ""
#| "Stop the child at the next B<vfork>(2) call with I<SIGTRAP | "
#| "the new process can be retrieved with B<PTRACE_GETEVENTMSG>."
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 ""
"次の B<vfork>(2) 呼び出し時に I<SIGTRAP | PTRACE_EVENT_VFORK\\ E<lt>E<lt>\\ "
"8> で 子プロセスの動作を停止させ、 新たに vfork されたプロセスのトレースを自"
"PID は B<PTRACE_GETEVENTMSG> で取得できる。"
#. 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 "B<PTRACE_O_TRACEVFORKDONE> (Linux 2.5.60 以降)"
#. 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 "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
#. type: Plain text
-#: build/C/man2/ptrace.2:502
+#: build/C/man2/ptrace.2:517
#, fuzzy
#| msgid ""
#| "Retrieve a message (as an I<unsigned long>) about the ptrace event that "
"B<PTRACE_EVENT_VFORK_DONE> で入手できる。 (I<addr> は無視される。)"
#. type: TP
-#: build/C/man2/ptrace.2:502
+#: build/C/man2/ptrace.2:517
#, no-wrap
msgid "B<PTRACE_CONT>"
msgstr "B<PTRACE_CONT>"
#. type: Plain text
-#: build/C/man2/ptrace.2:514
+#: build/C/man2/ptrace.2:529
#, fuzzy
#| msgid ""
#| "Restarts the stopped child process. If I<data> is nonzero and not "
"は無視される。)"
#. type: TP
-#: build/C/man2/ptrace.2:514
+#: build/C/man2/ptrace.2:529
#, no-wrap
msgid "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
msgstr "B<PTRACE_SYSCALL>, B<PTRACE_SINGLESTEP>"
#. type: Plain text
-#: build/C/man2/ptrace.2:538
+#: build/C/man2/ptrace.2:553
#, fuzzy
#| msgid ""
#| "Restarts the stopped child as for B<PTRACE_CONT>, but arranges for the "
"同じ様に解釈される。 (I<addr> は無視される。)"
#. 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 "B<PTRACE_SYSEMU>, B<PTRACE_SYSEMU_SINGLESTEP> (Linux 2.6.14 以降)"
#. As at 3.7
#. type: Plain text
-#: build/C/man2/ptrace.2:559
+#: build/C/man2/ptrace.2:574
#, fuzzy
#| msgid ""
#| "For B<PTRACE_SYSEMU>, continue and stop on entry to the next syscall, "
"ポートされているわけではない。)"
#. type: TP
-#: build/C/man2/ptrace.2:559
+#: build/C/man2/ptrace.2:574
#, fuzzy, no-wrap
#| msgid "B<PTRACE_GETEVENTMSG> (since Linux 2.5.46)"
msgid "B<PTRACE_LISTEN> (since Linux 3.4)"
msgstr "B<PTRACE_GETEVENTMSG> (Linux 2.5.46 以降)"
#. 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 "
"B<SIGSTOP> (or other stopping signal). See the \"group-stop\" subsection "
-"for additional information. B<PTRACE_LISTEN> only works on tracees attached "
+"for additional information. B<PTRACE_LISTEN> works only on tracees attached "
"by B<PTRACE_SEIZE>."
msgstr ""
#. type: TP
-#: build/C/man2/ptrace.2:570
+#: build/C/man2/ptrace.2:585
#, no-wrap
msgid "B<PTRACE_KILL>"
msgstr "B<PTRACE_KILL>"
#. type: Plain text
-#: build/C/man2/ptrace.2:579
+#: build/C/man2/ptrace.2:594
#, fuzzy
#| msgid ""
#| "Sends the child a B<SIGKILL> to terminate it. (I<addr> and I<data> are "
#. 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
#, fuzzy, no-wrap
#| msgid "B<PTRACE_O_TRACEFORK> (since Linux 2.5.46)"
msgid "B<PTRACE_INTERRUPT> (since Linux 3.4)"
msgstr "B<PTRACE_O_TRACEFORK> (Linux 2.5.46 以降)"
#. 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 "B<PTRACE_ATTACH>"
#. .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
#, fuzzy, no-wrap
#| msgid "B<PTRACE_O_TRACEEXEC> (since Linux 2.5.46)"
msgid "B<PTRACE_SEIZE> (since Linux 3.4)"
msgstr "B<PTRACE_O_TRACEEXEC> (Linux 2.5.46 以降)"
#. 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 "B<PTRACE_DETACH>"
#. type: Plain text
-#: build/C/man2/ptrace.2:669
+#: build/C/man2/ptrace.2:698
#, fuzzy
#| msgid ""
#| "Restarts the stopped child as for B<PTRACE_CONT>, but first detaches from "
"も、この方法で分離 (detach) することができる。 (I<addr> は無視される。)"
#. 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 (syscall-exit-"
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), B<exit_group>"
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>. Ptrace-"
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 I<WSTOPSIG"
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> is nonzero. No "
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 signal-delivery-"
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 I<WSTOPSIG"
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 I<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 "B<PTRACE_EVENT_VFORK>"
#. 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 "B<PTRACE_EVENT_FORK>"
#. 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 "B<PTRACE_EVENT_CLONE>"
#. 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 "B<PTRACE_EVENT_VFORK_DONE>"
#. 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 "B<PTRACE_EVENT_EXEC>"
#. 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 "B<PTRACE_EVENT_EXIT>"
#. 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
#, fuzzy, no-wrap
#| msgid "B<PTRACE_EVENT_FORK>"
msgid "B<PTRACE_EVENT_STOP>"
msgstr "B<PTRACE_EVENT_FORK>"
#. 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 restarts "
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 I<WSTOPSIG"
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 syscall-enter-"
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:1894
+#: 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:1450
+#: 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 "
+"B<PTRACE_SEIZE> does not stop the attached process. If you need to stop it "
"after attach (or at any other time) without sending it any signals, use "
"B<PTRACE_INTERRUPT> command."
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1452
+#: build/C/man2/ptrace.2:1519
msgid "The request"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1454
+#: 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:1460
+#: 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:1462
+#: build/C/man2/ptrace.2:1529
#, no-wrap
msgid " raise(SIGSTOP);\n"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1465
+#: 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:1489
+#: 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:1491
+#: build/C/man2/ptrace.2:1558
msgid "Detaching of the tracee is performed by:"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1493
+#: 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:1501
+#: 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:1525
+#: 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:1533
+#: 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:1533
+#: build/C/man2/ptrace.2:1600
#, no-wrap
msgid "execve(2) under ptrace"
msgstr ""
#. and the new program is executed in the thread group leader.
#. In kernel 3.1 sources, see fs/exec.c::de_thread()
#. type: Plain text
-#: build/C/man2/ptrace.2:1552
+#: 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:1562
+#: 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:1570
+#: 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:1576
+#: 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:1597
+#: 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:1600
+#: 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:1620
+#: 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:1626
+#: 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:1634
+#: 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:1636
+#: 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:1640
+#: 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:1651
+#: 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:1674
+#: 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 B<execve>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1693
+#: 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:1693
+#: build/C/man2/ptrace.2:1760
#, no-wrap
msgid "Real parent"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1700
+#: 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:1703
+#: 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:1705
+#: 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:1713
+#: 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:1727
+#: build/C/man2/ptrace.2:1791
#, fuzzy
#| msgid ""
#| "On success, B<PTRACE_PEEK*> requests return the requested data, while "
#| "such requests to determine whether or not an error occurred."
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 ""
+"成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
+"0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
+"B<PTRACE_PEEK*> が成功して返す値も -1 になることがあるため、 そのような要求"
+"の場合には、呼び出し元は I<errno> を調べ、エラーか発生したのかどうかを判断し"
+"なければならない。"
+
+#. type: Plain text
+#: build/C/man2/ptrace.2:1801
+#, fuzzy
+#| 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 check I<errno> after "
+#| "such requests to determine whether or not an error occurred."
+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 ""
"成功すると、 B<PTRACE_PEEK*> の場合は要求したデータを返し、 それ以外の場合は "
"0 を返す。 エラーの場合は -1 を返し、 I<errno> が適切に設定される。 "
"なければならない。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1731
+#: build/C/man2/ptrace.2:1805
msgid ""
"(i386 only) There was an error with allocating or freeing a debug register."
msgstr "(i386 のみ) デバッグレジスタの確保または解放でエラーが発生した。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1742
+#: build/C/man2/ptrace.2:1816
#, fuzzy
#| msgid ""
#| "There was an attempt to read from or write to an invalid area in the "
"的に B<EIO> を返したり B<EFAULT> を返したりすることがある。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1745
+#: 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:1752
+#: build/C/man2/ptrace.2:1826
#, fuzzy
#| msgid ""
#| "I<request> is invalid, or an attempt was made to read from or write to an "
"開の要求で不正なシグナルを指定した。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1765
+#: build/C/man2/ptrace.2:1839
#, fuzzy
#| msgid ""
#| "The specified process cannot be traced. This could be because the parent "
"る、 または B<init>(8) プロセス (PID が 1) である。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1770
+#: build/C/man2/ptrace.2:1844
#, fuzzy
#| msgid ""
#| "The specified process does not exist, or is not currently being traced by "
"ない (停止していることが必要な要求の場合)。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1772
+#: build/C/man2/ptrace.2:1846
msgid "SVr4, 4.3BSD."
msgstr "SVr4, 4.3BSD."
#. type: Plain text
-#: build/C/man2/ptrace.2:1787
+#: build/C/man2/ptrace.2:1861
#, fuzzy
#| msgid ""
#| "Although arguments to B<ptrace>() are interpreted according to the "
#. See commit 00cd5c37afd5f431ac186dd131705048c0a11fdb
#. type: Plain text
-#: build/C/man2/ptrace.2:1792
+#: build/C/man2/ptrace.2:1866
#, fuzzy
#| msgid "B<init>(8), the process with PID 1, may not be traced."
msgid ""
#. See http://lkml.org/lkml/2008/5/8/375
#. type: Plain text
-#: build/C/man2/ptrace.2:1799
+#: build/C/man2/ptrace.2:1873
#, fuzzy
#| msgid ""
#| "The layout of the contents of memory and the USER area are quite OS- and "
"に一致しないこともありえる。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1802
+#: build/C/man2/ptrace.2:1876
#, fuzzy
#| msgid ""
#| "The size of a \"word\" is determined by the OS variant (e.g., for 32-bit "
"では 32 ビットである、など。)"
#. type: Plain text
-#: build/C/man2/ptrace.2:1810
+#: build/C/man2/ptrace.2:1884
#, fuzzy
#| msgid ""
#| "This page documents the way the B<ptrace>() call works currently in "
"を使うと OS やアーキテクチャに非常に依存したものになる。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1821
+#: build/C/man2/ptrace.2:1895
#, fuzzy
#| msgid ""
#| "On hosts with 2.6 kernel headers, B<PTRACE_SETOPTIONS> is declared with a "
"を B<PTRACE_OLDSETOPTIONS> に定義し直すことで対処できる。"
#. type: Plain text
-#: build/C/man2/ptrace.2:1824
+#: 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:1855
+#: 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:1865
+#: 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:1883
+#: 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:1885
+#: 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:1888
+#: 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:1891
+#: 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:1897
+#: 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:1901
+#: 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:1905
+#: 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:1926
+#: 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>"
msgstr ""
#. type: Plain text
-#: build/C/man2/ptrace.2:1940
+#: 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), B<exec>(3), "
"that it writes out)."
msgstr ""
-#. type: SH
-#: build/C/man2/quotactl.2:419
-#, no-wrap
-msgid "RETURN VALUES"
-msgstr "返り値"
-
#. type: Plain text
#: build/C/man2/quotactl.2:427
msgid ""
"For each process, the kernel maintains two attributes (addresses) called "
"I<set_child_tid> and I<clear_child_tid>. These two attributes contain the "
"value NULL by default."
-msgstr "各プロセスについて、カーネルは I<set_child_tid> と I<clear_child_tid> という 2 つの属性を保持する。この 2 つの属性はデフォルトでは NULL である。"
+msgstr ""
+"各プロセスについて、カーネルは I<set_child_tid> と I<clear_child_tid> という "
+"2 つの属性を保持する。この 2 つの属性はデフォルトでは NULL である。"
#. type: TP
#: build/C/man2/set_tid_address.2:40
"If a process is started using B<clone>(2) with the B<CLONE_CHILD_SETTID> "
"flag, I<set_child_tid> is set to the value passed in the I<ctid> argument of "
"that system call."
-msgstr "プロセスが B<CLONE_CHILD_SETTID> フラグを指定した B<clone>(2) によって開始された場合、 I<set_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数で渡された値に設定される。"
+msgstr ""
+"プロセスが B<CLONE_CHILD_SETTID> フラグを指定した B<clone>(2) によって開始さ"
+"れた場合、 I<set_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数"
+"で渡された値に設定される。"
#. type: Plain text
#: build/C/man2/set_tid_address.2:56
"If a process is started using B<clone>(2) with the B<CLONE_CHILD_CLEARTID> "
"flag, I<clear_child_tid> is set to the value passed in the I<ctid> argument "
"of that system call."
-msgstr "プロセスが B<CLONE_CHILD_CLEARTID> フラグを指定した B<clone>(2) によって開始された場合、 I<clear_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引き数で渡された値に設定される。"
+msgstr ""
+"プロセスが B<CLONE_CHILD_CLEARTID> フラグを指定した B<clone>(2) によって開始"
+"された場合、 I<clear_child_tid> は B<clone>(2) のシステムコールの I<ctid> 引"
+"き数で渡された値に設定される。"
#. type: Plain text
#: build/C/man2/set_tid_address.2:74
#. type: Plain text
#: build/C/man2/set_tid_address.2:82
-#, fuzzy
-#| msgid ""
-#| "When I<clear_child_tid> is set, and the process exits, and the process "
-#| "was sharing memory with other processes or threads, then 0 is written at "
-#| "this address, and a I<futex(child_tidptr, FUTEX_WAKE, 1, NULL, NULL, 0);> "
-#| "call is done. (That is, wake a single process waiting on this futex.) "
-#| "Errors are ignored."
msgid ""
"When a process whose I<clear_child_tid> is not NULL terminates, then, if the "
"process is sharing memory with other processes or threads, then 0 is written "
"at the address specified in I<clear_child_tid> and the kernel performs the "
"following operation:"
msgstr ""
-"I<clear_child_tid> が設定されているときにプロセスが終了すると、 そのプロセス"
-"は他のプロセスまたはスレッドとメモリを共有しているので、 このアドレスに 0 が"
-"書き込まれ、 I<futex(child_tidptr, FUTEX_WAKE, 1, NULL, NULL, 0);> の呼び出し"
-"が実行される (つまり、この futex で待っている 1 つのプロセスを起こす "
-"(wake))。 エラーは無視される。"
+"I<clear_child_tid> が NULL でないプロセスが終了すると、そのプロセスが他のプロ"
+"セスまたはスレッドとメモリを共有していれば、 I<clear_child_tid> で指定された"
+"アドレスに 0 が書き込まれ、カーネルは以下の処理を実行する。"
#. type: Plain text
#: build/C/man2/set_tid_address.2:84
#, no-wrap
msgid " futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
-msgstr ""
+msgstr " futex(clear_child_tid, FUTEX_WAKE, 1, NULL, NULL, 0);\n"
#. type: Plain text
#: build/C/man2/set_tid_address.2:88
"a futex wait on the memory location. Errors from the futex wake operation "
"are ignored."
msgstr ""
+"この処理の結果、このメモリアドレスに対する futex wait を実行しているプロセス"
+"を一つ起こす (wake)。 futex wake 操作でのエラーは無視される。"
#. type: Plain text
#: build/C/man2/set_tid_address.2:91
"B<int vm86(unsigned long >I<fn>B<, struct vm86plus_struct *>I<v86>B<);>"
#. type: Plain text
-#: build/C/man2/vm86.2:46
+#: build/C/man2/vm86.2:48
msgid ""
"The system call B<vm86>() was introduced in Linux 0.97p2. In Linux 2.1.15 "
"and 2.0.28 it was renamed to B<vm86old>(), and a new B<vm86>() was "
"た。 I<struct vm86_struct> の定義は 1.1.8 と 1.1.9 で変更された。"
#. type: Plain text
-#: build/C/man2/vm86.2:50
+#: build/C/man2/vm86.2:52
msgid ""
"These calls cause the process to enter VM86 mode (virtual-8086 in Intel "
"literature), and are used by B<dosemu>."
"ド) へと移行する。 これらのコールは B<dosemu> で使用される。"
#. type: Plain text
-#: build/C/man2/vm86.2:52
+#: build/C/man2/vm86.2:54
msgid "VM86 mode is an emulation of real mode within a protected mode task."
msgstr ""
"VM86 モードはプロテクトモードタスクにおける リアルモードのエミュレーションで"
"ある。"
#. type: Plain text
-#: build/C/man2/vm86.2:62
+#: build/C/man2/vm86.2:64
msgid ""
"This return value is specific to i386 and indicates a problem with getting "
"user-space data."
"あったことを示す。"
#. type: Plain text
-#: build/C/man2/vm86.2:66
+#: build/C/man2/vm86.2:68
msgid ""
"This return value indicates the call is not implemented on the present "
"architecture."
"この返り値は、このコールが現在のアーキテクチャで実装されていないことを示す。"
#. type: Plain text
-#: build/C/man2/vm86.2:71
+#: build/C/man2/vm86.2:73
msgid ""
"Saved kernel stack exists. (This is a kernel sanity check; the saved stack "
-"should only exist within vm86 mode itself.)"
+"should exist only within vm86 mode itself.)"
msgstr ""
"保存されたカーネルスタックが既に存在している。(これはカーネルが通常の 状態で"
"あるかをチェックしている。保存されたスタックは vm86 モードで しか存在しな"
"い。)"
#. type: Plain text
-#: build/C/man2/vm86.2:74
+#: build/C/man2/vm86.2:76
msgid ""
"This call is specific to Linux on 32-bit Intel processors, and should not be "
"used in programs intended to be portable."
msgid "B<splice>(2), B<tee>(2)"
msgstr "B<splice>(2), B<tee>(2)"
-#~ msgid "2010-08-29"
-#~ msgstr "2010-08-29"
+#~ msgid "2013-03-15"
+#~ msgstr "2013-03-15"
+
+#~ msgid "B<futex>(7)"
+#~ msgstr "B<futex>(7)"
+
+#, fuzzy
+#~| msgid "The I<subcmd> value is one of the following:"
+#~ msgid "The I<flags> argument takes one of the following values:"
+#~ msgstr "I<subcmd> の値は以下のいずれかである"
#~ msgid ""
#~ "Depending on which operation was executed, the returned value for a "
#~ msgstr ""
#~ "操作が定義されていない。またはページ・アラインメントでエラーが発生した。"
-#~ msgid "2010-11-04"
-#~ msgstr "2010-11-04"
-
-#~ msgid "2007-06-01"
-#~ msgstr "2007-06-01"
-
-#~ msgid "1995-11-29"
-#~ msgstr "1995-11-29"
-
-#~ msgid "2012-04-26"
-#~ msgstr "2012-04-26"
-
-#~ msgid "2004-09-10"
-#~ msgstr "2004-09-10"
-
-#~ msgid "2009-09-15"
-#~ msgstr "2009-09-15"
-
-#~ msgid "The B<splice>() system call first appeared in Linux 2.6.17."
-#~ msgstr "B<splice>() システムコールは Linux 2.6.17 で初めて登場した。"
-
-#~ msgid "The B<tee>() system call first appeared in Linux 2.6.17."
-#~ msgstr "B<tee>() システムコールは Linux 2.6.17 で初めて登場した。"
-
#, fuzzy
#~| msgid ""
#~| "Indicates that this process is to be traced by its parent. Any signal "
#~ "フェースとして B<ptrace>() の上位互換関数が実装され、より強力で一貫性のあ"
#~ "るものとなっている。"
-#~ msgid "B<#include E<lt>sys/quota.hE<gt>>\n"
-#~ msgstr "B<#include E<lt>sys/quota.hE<gt>>\n"
-
#~ msgid ""
#~ "The second argument I<special> is the block special device these quota "
#~ "apply to. It must be mounted."
#~ msgid "Set limits; I<addr> is as before."
#~ msgstr "制限値を設定する; I<addr> は同上。"
-#~ msgid "B<Q_SETUSE>"
-#~ msgstr "B<Q_SETUSE>"
-
#~ msgid "Set usage."
#~ msgstr "使用量を設定する。"
#~ msgid "Cannot read or write the quota file."
#~ msgstr "quota ファイルへの読み書きが出来ない。"
-#~ msgid "B<EMFILE>"
-#~ msgstr "B<EMFILE>"
-
#~ msgid "Too many open files: cannot open quota file."
#~ msgstr "ファイルをオープンしすぎている: quota ファイルをオープン出来ない。"
#~ msgid "I<special> cannot be found in the mount table."
#~ msgstr "I<special> がマウント・テーブル内に見当たらない。"
-#~ msgid "B<ENOPKG>"
-#~ msgstr "B<ENOPKG>"
-
#~ msgid "The kernel was compiled without quota support."
#~ msgstr "quota を使用可にしてカーネルをコンパイルしていない。"
#~ msgstr ""
#~ "quota が有効になっていないファイル・システムに対して B<Q_GETQUOTA>, "
#~ "B<Q_SETQUOTA>, B<Q_SETUSE>, B<Q_SETQLIM> のいずれかの要求がなされた。"
-
-#~ msgid "BSD."
-#~ msgstr "BSD."