OSDN Git Service

Complete prctl.2
[linuxjm/LDP_man-pages.git] / draft / man2 / prctl.2
index 002dfa3..f9c9194 100644 (file)
@@ -455,46 +455,34 @@ corruption kill ポリシーを使用する。 この場合、 \fIarg3\fP によ
 .\" commit fe3d197f84319d3bce379a9c0dc17b1f48ad358c
 .\" See also http://lwn.net/Articles/582712/
 .\" See also https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler
-Enable or disable kernel management of Memory Protection eXtensions (MPX)
-bounds tables.
+Memory Protection eXtensions (MPX) の境界テーブル (bounds table)
+のカーネル管理の有効化/無効化を行う。
 
-MPX is a hardware\-assisted mechanism for performing bounds checking on
-pointers.  It consists of a set of registers storing bounds information and
-a set of special instruction prefixes that tell the CPU on which
-instructions it should do bounds enforcement.  There is a limited number of
-these registers and when there are more pointers than registers, their
-contents must be "spilled" into a set of tables.  These tables are called
-"bounds tables" and the MPX \fBprctl\fP()  operations control whether the
-kernel manages their allocation and freeing.
+MPX は、 ポインターの境界チェックを行うハードウェア支援機構である。 この機能は、 境界情報を格納するレジスター群と、
+境界チェックをどの命令に課すかを CPU に教えるための特別な命令プレフィックスの集合で構成される。 これらのレジスター数は限られており、
+レジスター数よりも多くのポインターがある場合には、 その内容をテーブル群に退避する (spilled) 必要がある。 これらのテーブル群は「境界テーブル
+(bounds tables)」と呼ばれ、 MPX \fBprctl\fP 命令はカーネルがこれらの割り当てと解放を行うかどうかを制御する。
 
-When management is enabled, the kernel will take over allocation and freeing
-of the bounds tables.  It does this by trapping the #BR exceptions that
-result at first use of missing bounds tables and instead of delivering the
-exception to user space, it allocates the table and populates the bounds
-directory with the location of the new table.  For freeing, the kernel
-checks to see if bounds tables are present for memory which is not
-allocated, and frees them if so.
+管理が有効になっている場合、 カーネルが境界テーブルの割り当てと解放を担当する。 最初に存在しない境界テーブルを使おうとした際に上がる #BR
+例外を捕捉し、 ユーザー空間に例外を配送せずに、 テーブルの割り当てを行い、 新しいテーブルに境界情報 (bounds directory)
+を書き込む。 解放に関しては、 カーネルが割り当てられていないメモリーに対応する境界テーブルが存在するかを確認し、 そうであれば解放を行う。
 
-Before enabling MPX management using \fBPR_MPX_ENABLE_MANAGEMENT\fP, the
-application must first have allocated a user\-space buffer for the bounds
-directory and placed the location of that directory in the \fIbndcfgu\fP
-register.
+\fBPR_MPX_ENABLE_MANAGEMENT\fP を使って MPX 管理を有効にする前に、
+アプリケーションはまず境界情報管理用のユーザー空間バッファーを割り当て、 その管理情報の場所を \fIbndcfgu\fP
+レジスターに設定しなければならない。
 
-These calls will fail if the CPU or kernel does not support MPX.  Kernel
-support for MPX is enabled via the \fBCONFIG_X86_INTEL_MPX\fP configuration
-option.  You can check whether the CPU supports MPX by looking for the 'mpx'
-CPUID bit, like with the following command:
+CPU やカーネルが MPX をサポートしていない場合、 これらの呼び出しは失敗する。 カーネルによる MPX のサポートは
+\fBCONFIG_X86_INTEL_MPX\fP 設定オプションで有効にできる。 CPU が MPX をサポートしているかを確認するには、 以下のように
+\&'mpx' CPUID ビットを見ればよい。
 
   cat /proc/cpuinfo | grep ' mpx '
 
-A thread may not switch in or out of long (64\-bit) mode while MPX is
-enabled.
+MPX が有効になっている間は、 スレッドはロング (64 ビット) モードのオン/オフの切り替えはできない。
 
-All threads in a process are affected by these calls.
+プロセス内のすべてのスレッドがこれらの呼び出しの影響を受ける。
 
-The child of a \fBfork\fP(2)  inherits the state of MPX management.  During
-\fBexecve\fP(2), MPX management is reset to a state as if
-\fBPR_MPX_DISABLE_MANAGEMENT\fP had been called.
+\fBfork\fP(2) で作成された子プロセスは MPX 管理の状態を継承する。 \fBexecve\fP(2) の中で、 MPX 管理は
+\fBPR_MPX_DISABLE_MANAGEMENT\fP が呼ばれた場合と同じ状態がリセットされる。
 
 .\"
 Intel MPX についての詳しい情報は、カーネルソースファイル \fIDocumentation/x86/intel_mpx.txt\fP を参照。