• R/O
  • HTTP
  • SSH
  • HTTPS

LDP_man-pages: Commit


Commit MetaInfo

Revisión2631b140bbbcb6ebd1090a2328ae50d27141f865 (tree)
Tiempo2015-01-26 21:29:05
AutorAkihiro MOTOKI <amotoki@gmai...>
CommiterAkihiro MOTOKI

Log Message

Complete prctl.2

Cambiar Resumen

Diferencia incremental

--- a/draft/man2/prctl.2
+++ b/draft/man2/prctl.2
@@ -455,46 +455,34 @@ corruption kill ポリシーを使用する。 この場合、 \fIarg3\fP によ
455455 .\" commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
456456 .\" See also http://lwn.net/Articles/582712/
457457 .\" See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
458-Enable or disable kernel management of Memory Protection eXtensions (MPX)
459-bounds tables.
458+Memory Protection eXtensions (MPX) の境界テーブル (bounds table)
459+のカーネル管理の有効化/無効化を行う。
460460
461-MPX is a hardware\-assisted mechanism for performing bounds checking on
462-pointers. It consists of a set of registers storing bounds information and
463-a set of special instruction prefixes that tell the CPU on which
464-instructions it should do bounds enforcement. There is a limited number of
465-these registers and when there are more pointers than registers, their
466-contents must be "spilled" into a set of tables. These tables are called
467-"bounds tables" and the MPX \fBprctl\fP() operations control whether the
468-kernel manages their allocation and freeing.
461+MPX は、 ポインターの境界チェックを行うハードウェア支援機構である。 この機能は、 境界情報を格納するレジスター群と、
462+境界チェックをどの命令に課すかを CPU に教えるための特別な命令プレフィックスの集合で構成される。 これらのレジスター数は限られており、
463+レジスター数よりも多くのポインターがある場合には、 その内容をテーブル群に退避する (spilled) 必要がある。 これらのテーブル群は「境界テーブル
464+(bounds tables)」と呼ばれ、 MPX \fBprctl\fP 命令はカーネルがこれらの割り当てと解放を行うかどうかを制御する。
469465
470-When management is enabled, the kernel will take over allocation and freeing
471-of the bounds tables. It does this by trapping the #BR exceptions that
472-result at first use of missing bounds tables and instead of delivering the
473-exception to user space, it allocates the table and populates the bounds
474-directory with the location of the new table. For freeing, the kernel
475-checks to see if bounds tables are present for memory which is not
476-allocated, and frees them if so.
466+管理が有効になっている場合、 カーネルが境界テーブルの割り当てと解放を担当する。 最初に存在しない境界テーブルを使おうとした際に上がる #BR
467+例外を捕捉し、 ユーザー空間に例外を配送せずに、 テーブルの割り当てを行い、 新しいテーブルに境界情報 (bounds directory)
468+を書き込む。 解放に関しては、 カーネルが割り当てられていないメモリーに対応する境界テーブルが存在するかを確認し、 そうであれば解放を行う。
477469
478-Before enabling MPX management using \fBPR_MPX_ENABLE_MANAGEMENT\fP, the
479-application must first have allocated a user\-space buffer for the bounds
480-directory and placed the location of that directory in the \fIbndcfgu\fP
481-register.
470+\fBPR_MPX_ENABLE_MANAGEMENT\fP を使って MPX 管理を有効にする前に、
471+アプリケーションはまず境界情報管理用のユーザー空間バッファーを割り当て、 その管理情報の場所を \fIbndcfgu\fP
472+レジスターに設定しなければならない。
482473
483-These calls will fail if the CPU or kernel does not support MPX. Kernel
484-support for MPX is enabled via the \fBCONFIG_X86_INTEL_MPX\fP configuration
485-option. You can check whether the CPU supports MPX by looking for the 'mpx'
486-CPUID bit, like with the following command:
474+CPU やカーネルが MPX をサポートしていない場合、 これらの呼び出しは失敗する。 カーネルによる MPX のサポートは
475+\fBCONFIG_X86_INTEL_MPX\fP 設定オプションで有効にできる。 CPU が MPX をサポートしているかを確認するには、 以下のように
476+\&'mpx' CPUID ビットを見ればよい。
487477
488478 cat /proc/cpuinfo | grep ' mpx '
489479
490-A thread may not switch in or out of long (64\-bit) mode while MPX is
491-enabled.
480+MPX が有効になっている間は、 スレッドはロング (64 ビット) モードのオン/オフの切り替えはできない。
492481
493-All threads in a process are affected by these calls.
482+プロセス内のすべてのスレッドがこれらの呼び出しの影響を受ける。
494483
495-The child of a \fBfork\fP(2) inherits the state of MPX management. During
496-\fBexecve\fP(2), MPX management is reset to a state as if
497-\fBPR_MPX_DISABLE_MANAGEMENT\fP had been called.
484+\fBfork\fP(2) で作成された子プロセスは MPX 管理の状態を継承する。 \fBexecve\fP(2) の中で、 MPX 管理は
485+\fBPR_MPX_DISABLE_MANAGEMENT\fP が呼ばれた場合と同じ状態がリセットされる。
498486
499487 .\"
500488 Intel MPX についての詳しい情報は、カーネルソースファイル \fIDocumentation/x86/intel_mpx.txt\fP を参照。
--- a/po4a/signal/po/ja.po
+++ b/po4a/signal/po/ja.po
@@ -7,7 +7,7 @@ msgid ""
77 msgstr ""
88 "Project-Id-Version: PACKAGE VERSION\n"
99 "POT-Creation-Date: 2015-01-25 19:48+0900\n"
10-"PO-Revision-Date: 2015-01-26 16:51+0900\n"
10+"PO-Revision-Date: 2015-01-26 21:28+0900\n"
1111 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1212 "Language-Team: LANGUAGE <LL@li.org>\n"
1313 "Language: \n"
@@ -3565,7 +3565,7 @@ msgstr "B<PR_MPX_ENABLE_MANAGEMENT>, B<PR_MPX_DISABLE_MANAGEMENT> (Linux 3.19
35653565 msgid ""
35663566 "Enable or disable kernel management of Memory Protection eXtensions (MPX) "
35673567 "bounds tables."
3568-msgstr ""
3568+msgstr "Memory Protection eXtensions (MPX) の境界テーブル (bounds table) のカーネル管理の有効化/無効化を行う。"
35693569
35703570 #. type: Plain text
35713571 #: build/C/man2/prctl.2:840
@@ -3578,7 +3578,7 @@ msgid ""
35783578 "contents must be \"spilled\" into a set of tables. These tables are called "
35793579 "\"bounds tables\" and the MPX B<prctl>() operations control whether the "
35803580 "kernel manages their allocation and freeing."
3581-msgstr ""
3581+msgstr "MPX は、 ポインターの境界チェックを行うハードウェア支援機構である。 この機能は、 境界情報を格納するレジスター群と、 境界チェックをどの命令に課すかを CPU に教えるための特別な命令プレフィックスの集合で構成される。 これらのレジスター数は限られており、 レジスター数よりも多くのポインターがある場合には、 その内容をテーブル群に退避する (spilled) 必要がある。 これらのテーブル群は「境界テーブル (bounds tables)」と呼ばれ、 MPX B<prctl> 命令はカーネルがこれらの割り当てと解放を行うかどうかを制御する。"
35823582
35833583 #. type: Plain text
35843584 #: build/C/man2/prctl.2:850
@@ -3590,7 +3590,7 @@ msgid ""
35903590 "directory with the location of the new table. For freeing, the kernel "
35913591 "checks to see if bounds tables are present for memory which is not "
35923592 "allocated, and frees them if so."
3593-msgstr ""
3593+msgstr "管理が有効になっている場合、 カーネルが境界テーブルの割り当てと解放を担当する。 最初に存在しない境界テーブルを使おうとした際に上がる #BR 例外を捕捉し、 ユーザー空間に例外を配送せずに、 テーブルの割り当てを行い、 新しいテーブルに境界情報 (bounds directory) を書き込む。 解放に関しては、 カーネルが割り当てられていないメモリーに対応する境界テーブルが存在するかを確認し、 そうであれば解放を行う。"
35943594
35953595 #. type: Plain text
35963596 #: build/C/man2/prctl.2:857
@@ -3599,7 +3599,7 @@ msgid ""
35993599 "application must first have allocated a user-space buffer for the bounds "
36003600 "directory and placed the location of that directory in the I<bndcfgu> "
36013601 "register."
3602-msgstr ""
3602+msgstr "B<PR_MPX_ENABLE_MANAGEMENT> を使って MPX 管理を有効にする前に、 アプリケーションはまず境界情報管理用のユーザー空間バッファーを割り当て、 その管理情報の場所を I<bndcfgu> レジスターに設定しなければならない。"
36033603
36043604 #. type: Plain text
36053605 #: build/C/man2/prctl.2:864
@@ -3608,7 +3608,7 @@ msgid ""
36083608 "support for MPX is enabled via the B<CONFIG_X86_INTEL_MPX> configuration "
36093609 "option. You can check whether the CPU supports MPX by looking for the 'mpx' "
36103610 "CPUID bit, like with the following command:"
3611-msgstr ""
3611+msgstr "CPU やカーネルが MPX をサポートしていない場合、 これらの呼び出しは失敗する。 カーネルによる MPX のサポートは B<CONFIG_X86_INTEL_MPX> 設定オプションで有効にできる。 CPU が MPX をサポートしているかを確認するには、 以下のように 'mpx' CPUID ビットを見ればよい。"
36123612
36133613 #. type: Plain text
36143614 #: build/C/man2/prctl.2:866
@@ -3619,12 +3619,12 @@ msgstr " cat /proc/cpuinfo | grep ' mpx '"
36193619 #: build/C/man2/prctl.2:869
36203620 msgid ""
36213621 "A thread may not switch in or out of long (64-bit) mode while MPX is enabled."
3622-msgstr ""
3622+msgstr "MPX が有効になっている間は、 スレッドはロング (64 ビット) モードのオン/オフの切り替えはできない。"
36233623
36243624 #. type: Plain text
36253625 #: build/C/man2/prctl.2:871
36263626 msgid "All threads in a process are affected by these calls."
3627-msgstr ""
3627+msgstr "プロセス内のすべてのスレッドがこれらの呼び出しの影響を受ける。"
36283628
36293629 #. type: Plain text
36303630 #: build/C/man2/prctl.2:880
@@ -3632,7 +3632,7 @@ msgid ""
36323632 "The child of a B<fork>(2) inherits the state of MPX management. During "
36333633 "B<execve>(2), MPX management is reset to a state as if "
36343634 "B<PR_MPX_DISABLE_MANAGEMENT> had been called."
3635-msgstr ""
3635+msgstr "B<fork>(2) で作成された子プロセスは MPX 管理の状態を継承する。 B<execve>(2) の中で、 MPX 管理は B<PR_MPX_DISABLE_MANAGEMENT> が呼ばれた場合と同じ状態がリセットされる。"
36363636
36373637 #. type: Plain text
36383638 #: build/C/man2/prctl.2:884
--- a/release/man2/prctl.2
+++ b/release/man2/prctl.2
@@ -99,19 +99,15 @@ prctl \- プロセスの操作を行なう
9999 .TP
100100 \fBPR_SET_CHILD_SUBREAPER\fP (Linux 3.4 以降)
101101 .\" commit ebec18a6d3aa1e7d84aab16225e87fd25170ec2b
102-If \fIarg2\fP is nonzero, set the "child subreaper" attribute of the calling
103-process; if \fIarg2\fP is zero, unset the attribute. When a process is marked
104-as a child subreaper, all of the children that it creates, and their
105-descendants, will be marked as having a subreaper. In effect, a subreaper
106-fulfills the role of \fBinit\fP(1) for its descendant processes. Upon
107-termination of a process that is orphaned (i.e., its immediate parent has
108-already terminated) and marked as having a subreaper, the nearest still
109-living ancestor subreaper will receive a \fBSIGCHLD\fP signal and be able to
110-\fBwait\fP(2) on the process to discover its termination status.
102+\fIarg2\fP が 0 以外の場合、 呼び出し元プロセスの "child subreaper" 属性をセットする。 \fIarg2\fP が 0 の場合、
103+この属性をクリアする。 プロセスが child subreaper のマークが付いている場合、 このプロセスの子プロセスやその子孫にはすべて
104+subreaper のマークが付与される。 subreaper は事実上その子孫のプロセスに対して \fBinit\fP(1) の役割を果たす。
105+孤児になったプロセス (直接の親プロセスがすでに終了しているプロセス) が終了した際、 そのプロセスに subreaper のマークが付いていると、
106+最も近い存在する先祖の subreaper プロセスに \fBSIGCHLD\fP シグナルが送られ、 そのプロセスの \fBwait\fP
107+を使って終了ステータスを知ることができる。
111108 .TP
112109 \fBPR_GET_CHILD_SUBREAPER\fP (Linux 3.4 以降)
113-Return the "child subreaper" setting of the caller, in the location pointed
114-to by \fI(int\ *) arg2\fP.
110+呼び出し元の "child subreaper" 設定を、 \fI(int\ *) arg2\fP が指す場所に返す。
115111 .TP
116112 \fBPR_SET_DUMPABLE\fP (Linux 2.3.20 以降)
117113 .\" See http://marc.theaimsgroup.com/?l=linux-kernel&m=115270289030630&w=2
@@ -188,21 +184,17 @@ ID の変更が行われた場合、「ケーパビリティ保持」フラグ
188184 バイトを格納できるようにすべきである。 返される文字列はヌル終端される。
189185 .TP
190186 \fBPR_SET_NO_NEW_PRIVS\fP (Linux 3.5 以降)
191-Set the calling process's \fIno_new_privs\fP bit to the value in \fIarg2\fP. With
192-\fIno_new_privs\fP set to 1, \fBexecve\fP(2) promises not to grant privileges to
193-do anything that could not have been done without the \fBexecve\fP(2) call
194-(for example, rendering the set\-user\-ID and set\-group\-ID permission bits,
195-and file capabilities non\-functional). Once set, this bit cannot be unset.
196-The setting of this bit is inherited by children created by \fBfork\fP(2) and
197-\fBclone\fP(2), and preserved across \fBexecve\fP(2).
187+呼び出し元プロセスの \fIno_new_privs\fP ビットを \fIarg2\fP の値に設定する。 \fIno_new_privs\fP が 1
188+に設定されると、 \fBexecve\fP(2) は、 \fBexecve\fP(2) の呼び出しなしでは実行できなかったことに対する特権を許可しなくなる
189+(例えば、 set\-user\-ID/set\-group\-ID 許可ビットやファイルケーパビリティが動作しなくなる)。 一度設定される、
190+このビットは解除することができない。 このビットの設定は \fBfork\fP(2) や \fBclone\fP(2) で作成された子プロセスに継承され、
191+\fBexecve\fP(2) の前後で保持される。
198192
199193 詳しい情報は、カーネルソースファイル \fIDocumentation/prctl/no_new_privs.txt\fP を参照。
200194 .TP
201195 \fBPR_GET_NO_NEW_PRIVS\fP (Linux 3.5 以降)
202-Return (as the function result) the value of the \fIno_new_privs\fP bit for the
203-current process. A value of 0 indicates the regular \fBexecve\fP(2)
204-behavior. A value of 1 indicates \fBexecve\fP(2) will operate in the
205-privilege\-restricting mode described above.
196+現在のプロセスの \fIno_new_privs\fP ビットの値を (関数の結果として) 返す。 値 0 は通常の \fBexecve\fP(2)
197+の動作を意味する。 値 1 は \fBexecve\fP(2) が上記で述べた特権を制限する動作をすることを示す。
206198 .TP
207199 \fBPR_SET_PDEATHSIG\fP (Linux 2.1.57 以降)
208200 親プロセス死亡シグナル (parent process death signal) を \fIarg2\fP に設定する (設定できるシグナル値の範囲は
@@ -217,15 +209,13 @@ set\-user\-ID もしくは set\-group\-ID されたバイナリを実行した
217209 \fBPR_SET_PTRACER\fP (Linux 3.4 以降)
218210 .\" commit 2d514487faf188938a4ee4fb3464eeecfbdcf8eb
219211 .\" commit bf06189e4d14641c0148bea16e9dd24943862215
220-This is meaningful only when the Yama LSM is enabled and in mode 1
221-("restricted ptrace", visible via \fI/proc/sys/kernel/yama/ptrace_scope\fP).
222-When a "ptracer process ID" is passed in \fIarg2\fP, the caller is declaring
223-that the ptracer process can \fBptrace\fP(2) the calling process as if it were
224-a direct process ancestor. Each \fBPR_SET_PTRACER\fP operation replaces the
225-previous "ptracer process ID". Employing \fBPR_SET_PTRACER\fP with \fIarg2\fP set
226-to 0 clears the caller's "ptracer process ID". If \fIarg2\fP is
227-\fBPR_SET_PTRACER_ANY\fP, the ptrace restrictions introduced by Yama are
228-effectively disabled for the calling process.
212+この設定は Yama LSM が有効になっていてモード 1 ("restricted ptrace") の場合のみに意味を持つ (モードは
213+\fI/proc/sys/kernel/yama/ptrace_scope\fP で参照可能)。 "ptrace プロセス ID" が \fIarg2\fP
214+で渡された場合、 呼び出し元は ptracer プロセスがそのプロセスが直接のプロセスの先祖であるかのよう呼び出したプロセスを \fBptrace\fP
215+できる、 と宣言しているということだ。 \fBPR_SET_PTRACER\fP 操作を行う毎に、 直前の "ptracer プロセス ID"
216+は置きかえられる。 \fIarg2\fP で \fBPR_SET_PTRACER\fP を 0 に設定すると、 呼び出し元の "ptracer プロセス ID"
217+がクリアされる。 \fIarg2\fP が \fBPR_SET_PTRACER\fP の場合、 Yama が導入した ptrace
218+の制限は呼び出し元プロセスに対しては無効になる。
229219
230220 詳しい情報は、カーネルソースファイル \fIDocumentation/security/Yama.txt\fP を参照。
231221 .TP
@@ -296,35 +286,28 @@ transparent huge pages を無効にする手段が提供される。 "THP disabl
296286 .\" commit 6976675d94042fbd446231d1bd8b7de71a980ada
297287 .\" It seems that it's not possible to set the timer slack to zero;
298288 .\" The minimum value is 1? Seems a little strange.
299-Set the current timer slack for the calling thread to the nanosecond value
300-supplied in \fIarg2\fP. If \fIarg2\fP is less than or equal to zero, reset the
301-current timer slack to the thread's default timer slack value. The timer
302-slack is used by the kernel to group timer expirations for the calling
303-thread that are close to one another; as a consequence, timer expirations
304-for the thread may be up to the specified number of nanoseconds late (but
305-will never expire early). Grouping timer expirations can help reduce system
306-power consumption by minimizing CPU wake\-ups.
289+呼び出し元スレッドの現在の timer slack を \fIarg2\fP で指定されたナノ秒に設定する。 \fIarg2\fP が 0 以下の場合、 現在の
290+timer slack をそのスレッドのデフォルトの timer slack 値にリセットする。 カーネルは timer slack を使って、
291+呼び出し元スレッドのタイマー満了のうち、どのくらい近いものグルーピングする (一纏めにする) かを決める。 その結果、
292+そのスレッドのタイマーの満了は最大で指定されたナノ秒分だけ遅れる場合がある。 タイマー満了をグルーピングすることで、 CPU
293+を起こす回数が最小化されシステムの消費電力を減らすことができる。
307294
308295 .\" List obtained by grepping for futex usage in glibc source
309-The timer expirations affected by timer slack are those set by \fBselect\fP(2),
310-\fBpselect\fP(2), \fBpoll\fP(2), \fBppoll\fP(2), \fBepoll_wait\fP(2), \fBepoll_pwait\fP(2),
311-\fBclock_nanosleep\fP(2), \fBnanosleep\fP(2), and \fBfutex\fP(2) (and thus the
312-library functions implemented via futexes, including
313-\fBpthread_cond_timedwait\fP(3), \fBpthread_mutex_timedlock\fP(3),
314-\fBpthread_rwlock_timedrdlock\fP(3), \fBpthread_rwlock_timedwrlock\fP(3), and
315-\fBsem_timedwait\fP(3)).
296+timer slack の影響を受けるのは、 システムコール \fBselect\fP(2), \fBpselect\fP(2), \fBpoll\fP(2),
297+\fBppoll\fP(2), \fBepoll_wait\fP(2), \fBepoll_pwait\fP(2), \fBclock_nanosleep\fP(2),
298+\fBnanosleep\fP(2), \fBfutex\fP(2) により設定されたタイマー満了である
299+(また、 futex を使って実装されているライブラリ関数 \fBpthread_cond_timedwait\fP(3),
300+\fBpthread_mutex_timedlock\fP(3), \fBpthread_rwlock_timedrdlock\fP(3),
301+\fBpthread_rwlock_timedwrlock\fP(3), \fBsem_timedwait\fP(3) も影響を受ける)。
316302
317-Timer slack is not applied to threads that are scheduled under a real\-time
318-scheduling policy (see \fBsched_setscheduler\fP(2)).
303+timer slack はリアルタイムスケジューリングポリシーでスケジューリングされるスレッドには提供されない
304+(\fBsched_setscheduler\fP(2) 参照)。
319305
320-Each thread has two associated timer slack values: a "default" value, and a
321-"current" value. The current value is the one that governs grouping of
322-timer expirations. When a new thread is created, the two timer slack values
323-are made the same as the current value of the creating thread. Thereafter,
324-a thread can adjust its current timer slack value via \fBPR_SET_TIMERSLACK\fP
325-(the default value can't be changed). The timer slack values of \fIinit\fP
326-(PID 1), the ancestor of all processes, are 50,000 nanoseconds (50
327-microseconds). The timer slack values are preserved across \fBexecve\fP(2).
306+各スレッドには timer slack に関連する値が 2 つある。 「デフォルト値」と「現在値」である。
307+現在値はタイマー満了のグルーピングを制御する。 新しいスレッドが作成される際、 2 つの timer slack
308+値はそのスレッドを作成したスレッドの現在値と同じに設定される。 その後、 スレッドは \fBPR_SET_TIMERSLACK\fP で現在の timer
309+slack 値を調整できる (デフォルト値は変更できない)。 すべてのプロセスの先祖となる \fIinit\fP (PID 1) の timer slack
310+値は 50,000 ナノ秒 (50 ミリ秒) である。 timer slack 値は \fBexecve\fP(2) の前後で保持される。
328311 .TP
329312 \fBPR_GET_TIMERSLACK\fP (Linux 2.6.28 以降)
330313 呼び出し元スレッドの現在のタイマーのスラック値を (関数の結果として) 返す。
@@ -378,24 +361,21 @@ microseconds). The timer slack values are preserved across \fBexecve\fP(2).
378361 arg2\fP が指す場所に格納して返す。
379362 .TP
380363 \fBPR_MCE_KILL\fP (Linux 2.6.32 以降)
381-Set the machine check memory corruption kill policy for the current thread.
382-If \fIarg2\fP is \fBPR_MCE_KILL_CLEAR\fP, clear the thread memory corruption kill
383-policy and use the system\-wide default. (The system\-wide default is defined
384-by \fI/proc/sys/vm/memory_failure_early_kill\fP; see \fBproc\fP(5).) If \fIarg2\fP
385-is \fBPR_MCE_KILL_SET\fP, use a thread\-specific memory corruption kill policy.
386-In this case, \fIarg3\fP defines whether the policy is \fIearly kill\fP
387-(\fBPR_MCE_KILL_EARLY\fP), \fIlate kill\fP (\fBPR_MCE_KILL_LATE\fP), or the
388-system\-wide default (\fBPR_MCE_KILL_DEFAULT\fP). Early kill means that the
389-thread receives a \fBSIGBUS\fP signal as soon as hardware memory corruption is
390-detected inside its address space. In late kill mode, the process is killed
391-only when it accesses a corrupted page. See \fBsigaction\fP(2) for more
392-information on the \fBSIGBUS\fP signal. The policy is inherited by children.
393-The remaining unused \fBprctl\fP() arguments must be zero for future
394-compatibility.
364+現在のスレッドの machine check memory corruption kill ポリシーを設定する。 \fIarg2\fP が
365+\fBPR_MCE_KILL_CLEAR\fP の場合、 このスレッドの memory corruption kill ポリシーをクリアし、
366+システム全体のデフォルト値を使用する (システム全体のデフォルトは \fI/proc/sys/vm/memory_failure_early_kill\fP
367+で定義される。 \fBproc\fP(5) 参照)。 \fIarg2\fP が \fBPR_MCE_KILL_SET\fP の場合、 スレッド固有の memory
368+corruption kill ポリシーを使用する。 この場合、 \fIarg3\fP によりこのポリシーが \fIearly kill\fP
369+(\fBPR_MCE_KILL_EARLY\fP か、 \fIlate kill\fP (\fBPR_MCE_KILL_LATE\fP) か、 システム全体のデフォルト値
370+(\fBPR_MCE_KILL_DEFAULT\fP) が指定される。 early kill は、 ハードウェアメモリー破壊 (corruption)
371+がスレッドのアドレス空間内で検出されるとすぐに、 そのスレッドが \fBSIGBUS\fP シグナルを受信することを意味する。 late kill
372+モードでは、 メモリー破壊が起こったページにアクセスした場合にのみ、 そのプロセスが kill される。 \fBSIGBUS\fP シグナルの詳細は
373+\fBsigaction\fP(2) を参照。 このポリシーは子プロセスに継承される。 未使用の残りの \fBprctl\fP() の引き数は将来の互換性のため 0
374+にしなければならない。
395375 .TP
396376 \fBPR_MCE_KILL_GET\fP (Linux 2.6.32 以降)
397-Return the current per\-process machine check kill policy. All unused
398-\fBprctl\fP() arguments must be zero.
377+現在のプロセス単位の machine check kill ポリシーを返す。 未使用の \fBprctl\fP() の引き数はすべて 0
378+にしなければならない。
399379 .TP
400380 \fBPR_SET_MM\fP (Linux 3.3 以降)
401381 .\" commit 028ee4be34a09a6d48bdf30ab991ae933a7bc036
@@ -475,46 +455,34 @@ Return the current per\-process machine check kill policy. All unused
475455 .\" commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
476456 .\" See also http://lwn.net/Articles/582712/
477457 .\" See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
478-Enable or disable kernel management of Memory Protection eXtensions (MPX)
479-bounds tables.
458+Memory Protection eXtensions (MPX) の境界テーブル (bounds table)
459+のカーネル管理の有効化/無効化を行う。
480460
481-MPX is a hardware\-assisted mechanism for performing bounds checking on
482-pointers. It consists of a set of registers storing bounds information and
483-a set of special instruction prefixes that tell the CPU on which
484-instructions it should do bounds enforcement. There is a limited number of
485-these registers and when there are more pointers than registers, their
486-contents must be "spilled" into a set of tables. These tables are called
487-"bounds tables" and the MPX \fBprctl\fP() operations control whether the
488-kernel manages their allocation and freeing.
461+MPX は、 ポインターの境界チェックを行うハードウェア支援機構である。 この機能は、 境界情報を格納するレジスター群と、
462+境界チェックをどの命令に課すかを CPU に教えるための特別な命令プレフィックスの集合で構成される。 これらのレジスター数は限られており、
463+レジスター数よりも多くのポインターがある場合には、 その内容をテーブル群に退避する (spilled) 必要がある。 これらのテーブル群は「境界テーブル
464+(bounds tables)」と呼ばれ、 MPX \fBprctl\fP 命令はカーネルがこれらの割り当てと解放を行うかどうかを制御する。
489465
490-When management is enabled, the kernel will take over allocation and freeing
491-of the bounds tables. It does this by trapping the #BR exceptions that
492-result at first use of missing bounds tables and instead of delivering the
493-exception to user space, it allocates the table and populates the bounds
494-directory with the location of the new table. For freeing, the kernel
495-checks to see if bounds tables are present for memory which is not
496-allocated, and frees them if so.
466+管理が有効になっている場合、 カーネルが境界テーブルの割り当てと解放を担当する。 最初に存在しない境界テーブルを使おうとした際に上がる #BR
467+例外を捕捉し、 ユーザー空間に例外を配送せずに、 テーブルの割り当てを行い、 新しいテーブルに境界情報 (bounds directory)
468+を書き込む。 解放に関しては、 カーネルが割り当てられていないメモリーに対応する境界テーブルが存在するかを確認し、 そうであれば解放を行う。
497469
498-Before enabling MPX management using \fBPR_MPX_ENABLE_MANAGEMENT\fP, the
499-application must first have allocated a user\-space buffer for the bounds
500-directory and placed the location of that directory in the \fIbndcfgu\fP
501-register.
470+\fBPR_MPX_ENABLE_MANAGEMENT\fP を使って MPX 管理を有効にする前に、
471+アプリケーションはまず境界情報管理用のユーザー空間バッファーを割り当て、 その管理情報の場所を \fIbndcfgu\fP
472+レジスターに設定しなければならない。
502473
503-These calls will fail if the CPU or kernel does not support MPX. Kernel
504-support for MPX is enabled via the \fBCONFIG_X86_INTEL_MPX\fP configuration
505-option. You can check whether the CPU supports MPX by looking for the 'mpx'
506-CPUID bit, like with the following command:
474+CPU やカーネルが MPX をサポートしていない場合、 これらの呼び出しは失敗する。 カーネルによる MPX のサポートは
475+\fBCONFIG_X86_INTEL_MPX\fP 設定オプションで有効にできる。 CPU が MPX をサポートしているかを確認するには、 以下のように
476+\&'mpx' CPUID ビットを見ればよい。
507477
508478 cat /proc/cpuinfo | grep ' mpx '
509479
510-A thread may not switch in or out of long (64\-bit) mode while MPX is
511-enabled.
480+MPX が有効になっている間は、 スレッドはロング (64 ビット) モードのオン/オフの切り替えはできない。
512481
513-All threads in a process are affected by these calls.
482+プロセス内のすべてのスレッドがこれらの呼び出しの影響を受ける。
514483
515-The child of a \fBfork\fP(2) inherits the state of MPX management. During
516-\fBexecve\fP(2), MPX management is reset to a state as if
517-\fBPR_MPX_DISABLE_MANAGEMENT\fP had been called.
484+\fBfork\fP(2) で作成された子プロセスは MPX 管理の状態を継承する。 \fBexecve\fP(2) の中で、 MPX 管理は
485+\fBPR_MPX_DISABLE_MANAGEMENT\fP が呼ばれた場合と同じ状態がリセットされる。
518486
519487 .\"
520488 Intel MPX についての詳しい情報は、カーネルソースファイル \fIDocumentation/x86/intel_mpx.txt\fP を参照。
--- a/stats/signal
+++ b/stats/signal
@@ -1,5 +1,4 @@
11 # pagename,#complete,#remaining,#all
2-prctl.2,210,8,218
32 rt_sigqueueinfo.2,30,18,48
43 s390_runtime_instr.2,20,11,31
54 timer_create.2,68,38,106
--- a/translation_list
+++ b/translation_list
@@ -271,7 +271,7 @@
271271 ○:LDP man-pages:3.78:2014/09/06:poll:2:2015/01/24::amotoki@gmail.com:Akihiro Motoki:
272272 ○:LDP man-pages:3.78:2014/12/31:posix_fadvise:2:2015/01/24::amotoki@gmail.com:Akihiro Motoki:
273273 @:LDP man-pages:3.78:2014/09/06:ppoll:2:poll:2:
274-☆:LDP man-pages:3.40=>3.78:2014/12/31:prctl:2:2012/05/26::amotoki@gmail.com:Akihiro Motoki:
274+○:LDP man-pages:3.78:2014/12/31:prctl:2:2015/01/26::amotoki@gmail.com:Akihiro Motoki:
275275 ○:LDP man-pages:3.78:2013/06/21:pread:2:2015/01/24::amotoki@gmail.com:Akihiro Motoki:
276276 @:LDP man-pages:3.78:2013/06/21:pread64:2:pread:2:
277277 @:LDP man-pages:3.78:2015/01/22:preadv:2:readv:2:
--- a/untrans.html
+++ b/untrans.html
@@ -50,7 +50,6 @@
5050 <TR><TD>cpuset.7</TD><TD>210/314</TD><TD>33.12</TD></TR>
5151 <TR><TD>seccomp.2</TD><TD>65/144</TD><TD>54.86</TD></TR>
5252 <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>signal</B></TD></TR>
53-<TR class="over80"><TD>prctl.2</TD><TD>8/218</TD><TD>96.33</TD></TR>
5453 <TR><TD>rt_sigqueueinfo.2</TD><TD>18/48</TD><TD>62.50</TD></TR>
5554 <TR><TD>s390_runtime_instr.2</TD><TD>11/31</TD><TD>64.52</TD></TR>
5655 <TR><TD>timer_create.2</TD><TD>38/106</TD><TD>64.15</TD></TR>
@@ -63,6 +62,6 @@
6362 <TR><TD ALIGN="center" COLSPAN=3 BGCOLOR="Yellow"><B>stdlib</B></TD></TR>
6463 <TR><TD>getauxval.3</TD><TD>34/86</TD><TD>60.47</TD></TR>
6564 <TR class="over80"><TD>vdso.7</TD><TD>8/184</TD><TD>95.65</TD></TR>
66-<TR><TD COLSPAN=3>Total 39 pages</TD></TR>
65+<TR><TD COLSPAN=3>Total 38 pages</TD></TR>
6766 </TABLE>
6867 </BODY></HTML>
Show on old repository browser