OSDN Git Service

Unwrap ja.po to simplify upcoming replacements
[linuxjm/LDP_man-pages.git] / po4a / numa / po / ja.po
1 # SOME DESCRIPTIVE TITLE
2 # Copyright (C) YEAR Free Software Foundation, Inc.
3 # This file is distributed under the same license as the PACKAGE package.
4 # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5 #
6 msgid ""
7 msgstr ""
8 "Project-Id-Version: PACKAGE VERSION\n"
9 "POT-Creation-Date: 2015-01-23 22:25+0900\n"
10 "PO-Revision-Date: 2015-01-24 20:53+0900\n"
11 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
12 "Language-Team: LANGUAGE <LL@li.org>\n"
13 "Language: \n"
14 "MIME-Version: 1.0\n"
15 "Content-Type: text/plain; charset=UTF-8\n"
16 "Content-Transfer-Encoding: 8bit\n"
17
18 #. type: TH
19 #: build/C/man2/get_mempolicy.2:27
20 #, no-wrap
21 msgid "GET_MEMPOLICY"
22 msgstr "GET_MEMPOLICY"
23
24 #. type: TH
25 #: build/C/man2/get_mempolicy.2:27
26 #, no-wrap
27 msgid "2008-08-15"
28 msgstr "2008-08-15"
29
30 #. type: TH
31 #: build/C/man2/get_mempolicy.2:27 build/C/man2/getcpu.2:12
32 #: build/C/man2/mbind.2:45 build/C/man2/migrate_pages.2:18
33 #: build/C/man2/move_pages.2:19 build/C/man7/numa.7:29
34 #: build/C/man2/set_mempolicy.2:27
35 #, no-wrap
36 msgid "Linux"
37 msgstr "Linux"
38
39 #. type: TH
40 #: build/C/man2/get_mempolicy.2:27 build/C/man2/getcpu.2:12
41 #: build/C/man2/mbind.2:45 build/C/man2/migrate_pages.2:18
42 #: build/C/man2/move_pages.2:19 build/C/man7/numa.7:29
43 #: build/C/man2/set_mempolicy.2:27
44 #, no-wrap
45 msgid "Linux Programmer's Manual"
46 msgstr "Linux Programmer's Manual"
47
48 #. type: SH
49 #: build/C/man2/get_mempolicy.2:28 build/C/man2/getcpu.2:13
50 #: build/C/man2/mbind.2:46 build/C/man2/migrate_pages.2:19
51 #: build/C/man2/move_pages.2:20 build/C/man7/numa.7:30
52 #: build/C/man2/set_mempolicy.2:28
53 #, no-wrap
54 msgid "NAME"
55 msgstr "名前"
56
57 #. type: Plain text
58 #: build/C/man2/get_mempolicy.2:30
59 msgid "get_mempolicy - retrieve NUMA memory policy for a process"
60 msgstr "get_mempolicy - プロセスの NUMA メモリのポリシーを取得する"
61
62 #. type: SH
63 #: build/C/man2/get_mempolicy.2:30 build/C/man2/getcpu.2:15
64 #: build/C/man2/mbind.2:48 build/C/man2/migrate_pages.2:21
65 #: build/C/man2/move_pages.2:22 build/C/man2/set_mempolicy.2:30
66 #, no-wrap
67 msgid "SYNOPSIS"
68 msgstr "書式"
69
70 #. type: Plain text
71 #: build/C/man2/get_mempolicy.2:32
72 msgid "B<#include E<lt>numaif.hE<gt>>"
73 msgstr "B<#include E<lt>numaif.hE<gt>>"
74
75 #. type: Plain text
76 #: build/C/man2/get_mempolicy.2:37
77 #, no-wrap
78 msgid ""
79 "B<int get_mempolicy(int *>I<mode>B<, unsigned long *>I<nodemask>B<,>\n"
80 "B<                  unsigned long >I<maxnode>B<, unsigned long >I<addr>B<,>\n"
81 "B<                  unsigned long >I<flags>B<);>\n"
82 msgstr ""
83 "B<int get_mempolicy(int *>I<mode>B<, unsigned long *>I<nodemask>B<,>\n"
84 "B<                  unsigned long >I<maxnode>B<, unsigned long >I<addr>B<,>\n"
85 "B<                  unsigned long >I<flags>B<);>\n"
86
87 #. type: Plain text
88 #: build/C/man2/get_mempolicy.2:39 build/C/man2/mbind.2:57
89 #: build/C/man2/set_mempolicy.2:38
90 #, no-wrap
91 msgid "Link with I<-lnuma>.\n"
92 msgstr "I<-lnuma> でリンクする。\n"
93
94 #. type: SH
95 #: build/C/man2/get_mempolicy.2:40 build/C/man2/getcpu.2:25
96 #: build/C/man2/mbind.2:58 build/C/man2/migrate_pages.2:31
97 #: build/C/man2/move_pages.2:31 build/C/man7/numa.7:32
98 #: build/C/man2/set_mempolicy.2:39
99 #, no-wrap
100 msgid "DESCRIPTION"
101 msgstr "説明"
102
103 #. type: Plain text
104 #: build/C/man2/get_mempolicy.2:45
105 msgid "B<get_mempolicy>()  retrieves the NUMA policy of the calling process or of a memory address, depending on the setting of I<flags>."
106 msgstr "B<get_mempolicy>()  は、呼び出し元プロセスもしくは指定されたメモリアドレスの NUMA ポリシーを I<flags> の設定に従って取得する。"
107
108 #. type: Plain text
109 #: build/C/man2/get_mempolicy.2:50 build/C/man2/set_mempolicy.2:54
110 msgid "A NUMA machine has different memory controllers with different distances to specific CPUs.  The memory policy defines from which node memory is allocated for the process."
111 msgstr "NUMA (非対称メモリアクセス) マシンでは、CPU により メモリコントローラが異なり、距離も異なっている。 メモリポリシーは、どのノードからメモリをそのプロセスに 割り当てるかを定めるものである。"
112
113 #. type: Plain text
114 #: build/C/man2/get_mempolicy.2:67
115 msgid "If I<flags> is specified as 0, then information about the calling process's default policy (as set by B<set_mempolicy>(2))  is returned.  The policy returned [I<mode> and I<nodemask>] may be used to restore the process's policy to its state at the time of the call to B<get_mempolicy>()  using B<set_mempolicy>(2)."
116 msgstr "I<flags> に 0 が指定された場合、 (B<set_mempolicy>(2)  で設定された)  呼び出し元プロセスのデフォルトポリシーに関する情報を返す。 返されたポリシー [I<mode> と I<nodemask>] を B<set_mempolicy>(2)  に渡すことで、そのプロセスのポリシーを B<get_mempolicy>()  を呼び出した時点の状態に戻すことができる。"
117
118 #. type: Plain text
119 #: build/C/man2/get_mempolicy.2:89
120 msgid "If I<flags> specifies B<MPOL_F_MEMS_ALLOWED> (available since Linux 2.6.24), the I<mode> argument is ignored and the set of nodes [memories] that the process is allowed to specify in subsequent calls to B<mbind>(2)  or B<set_mempolicy>(2)  [in the absence of any I<mode flags>] is returned in I<nodemask>.  It is not permitted to combine B<MPOL_F_MEMS_ALLOWED> with either B<MPOL_F_ADDR> or B<MPOL_F_NODE>."
121 msgstr "I<flags> に B<MPOL_F_MEMS_ALLOWED> (Linux 2.6.24 以降で利用可能) を指定すると、 I<mode> 引き数は無視され、 そのプロセスがその後の B<mbind>(2)  や B<set_mempolicy>(2)  で [I<モードフラグ> が指定されていない場合に ] 指定できるノード (メモリ) の集合が I<nodemask> に返される。 B<MPOL_F_MEMS_ALLOWED> を、 B<MPOL_F_ADDR> や B<MPOL_F_NODE> と同時に指定することはできない。"
122
123 #. type: Plain text
124 #: build/C/man2/get_mempolicy.2:103
125 msgid "If I<flags> specifies B<MPOL_F_ADDR>, then information is returned about the policy governing the memory address given in I<addr>.  This policy may be different from the process's default policy if B<mbind>(2)  or one of the helper functions described in B<numa>(3)  has been used to establish a policy for the memory range containing I<addr>."
126 msgstr "I<flags> に B<MPOL_F_ADDR> が指定された場合、 I<addr> で指定されたメモリアドレスに適用されているポリシーに関する情報を返す。 B<mbind>(2)  や B<numa>(3)  で説明されているヘルパー関数を使って、 I<addr> を含むメモリ領域に対するポリシーが設定されていた場合には、 返されるポリシーはプロセスのデフォルトポリシーと違うことがある。"
127
128 #. type: Plain text
129 #: build/C/man2/get_mempolicy.2:124
130 msgid "If the I<mode> argument is not NULL, then B<get_mempolicy>()  will store the policy mode and any optional I<mode flags> of the requested NUMA policy in the location pointed to by this argument.  If I<nodemask> is not NULL, then the nodemask associated with the policy will be stored in the location pointed to by this argument.  I<maxnode> specifies the number of node IDs that can be stored into I<nodemask>\\(emthat is, the maximum node ID plus one.  The value specified by I<maxnode> is always rounded to a multiple of I<sizeof(unsigned long)>."
131 msgstr "I<mode> 引き数が NULL でない場合、 B<get_mempolicy>()  は要求された NUMA ポリシーのモードと追加の I<モードフラグ> を I<mode> が指す場所に格納する。 I<nodemask> が NULL 以外の場合、そのポリシーに対応するノードマスクを この引き数が指す場所に格納する。 I<maxnode> には I<nodemask> に格納できるノード ID の数、つまり最大ノード ID に 1 を足した値を指定する。 I<maxnode> で指定された値は常に I<sizeof(unsigned long)> の倍数に切り上げられる。"
132
133 #. type: Plain text
134 #: build/C/man2/get_mempolicy.2:141
135 msgid "If I<flags> specifies both B<MPOL_F_NODE> and B<MPOL_F_ADDR>, B<get_mempolicy>()  will return the node ID of the node on which the address I<addr> is allocated into the location pointed to by I<mode>.  If no page has yet been allocated for the specified address, B<get_mempolicy>()  will allocate a page as if the process had performed a read [load] access to that address, and return the ID of the node where that page was allocated."
136 msgstr "I<flags> で B<MPOL_F_NODE> と B<MPOL_F_ADDR> の両方が指定された場合、 B<get_mempolicy>()  はアドレス I<addr> が割り当てられているノードのノード ID を I<mode> が指す場所に入れて返す。 指定されたアドレスにどのページもまだ割り当てられていない場合、 B<get_mempolicy>()  は、あたかもそのプロセスがそのアドレスに対して読み込みアクセスを 実行したかのようにページの割り当てを行い、ページが割り当てられた ノードの ID を返す。"
137
138 #.  Note:  code returns next interleave node via 'mode' argument -Lee Schermerhorn
139 #. type: Plain text
140 #: build/C/man2/get_mempolicy.2:166
141 msgid "If I<flags> specifies B<MPOL_F_NODE>, but not B<MPOL_F_ADDR>, and the process's current policy is B<MPOL_INTERLEAVE>, then B<get_mempolicy>()  will return in the location pointed to by a non-NULL I<mode> argument, the node ID of the next node that will be used for interleaving of internal kernel pages allocated on behalf of the process.  These allocations include pages for memory-mapped files in process memory ranges mapped using the B<mmap>(2)  call with the B<MAP_PRIVATE> flag for read accesses, and in memory ranges mapped with the B<MAP_SHARED> flag for all accesses."
142 msgstr "I<flags> で B<MPOL_F_NODE> は指定されたが、 B<MPOL_F_ADDR> は指定されていない場合で、かつ そのプロセスの現在のポリシーが B<MPOL_INTERLEAVE> の場合、 B<get_mempolicy>()  は、そのプロセスに対して割り当てられたカーネルの内部ページで 次にインターリーブ用に使用されるノードのノード ID を、 NULL でない I<mode> 引き数が指す場所に入れて返す。 読み込みアクセス用として B<MAP_PRIVATE> フラグ付きで B<mmap>(2)  したプロセスメモリ領域や、 任意のアクセス用として B<MAP_SHARED> フラグ付きで B<mmap>(2)  したメモリ領域の、メモリマップされたファイルに対するページも 上記のプロセスに対して割り当てられたページに含まれる。"
143
144 #. type: Plain text
145 #: build/C/man2/get_mempolicy.2:168
146 msgid "Other flag values are reserved."
147 msgstr "他のフラグは予約されている。"
148
149 #. type: Plain text
150 #: build/C/man2/get_mempolicy.2:171
151 msgid "For an overview of the possible policies see B<set_mempolicy>(2)."
152 msgstr "設定可能なポリシーの概要については B<set_mempolicy>(2)  を参照。"
153
154 #. type: SH
155 #: build/C/man2/get_mempolicy.2:171 build/C/man2/getcpu.2:61
156 #: build/C/man2/mbind.2:309 build/C/man2/migrate_pages.2:88
157 #: build/C/man2/move_pages.2:143 build/C/man2/set_mempolicy.2:220
158 #, no-wrap
159 msgid "RETURN VALUE"
160 msgstr "返り値"
161
162 #. type: Plain text
163 #: build/C/man2/get_mempolicy.2:178
164 msgid "On success, B<get_mempolicy>()  returns 0; on error, -1 is returned and I<errno> is set to indicate the error."
165 msgstr "成功すると、 B<get_mempolicy>()  は 0 を返す。エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
166
167 #. type: SH
168 #: build/C/man2/get_mempolicy.2:178 build/C/man2/getcpu.2:66
169 #: build/C/man2/mbind.2:317 build/C/man2/migrate_pages.2:96
170 #: build/C/man2/move_pages.2:152 build/C/man2/set_mempolicy.2:227
171 #, no-wrap
172 msgid "ERRORS"
173 msgstr "エラー"
174
175 #. type: TP
176 #: build/C/man2/get_mempolicy.2:179 build/C/man2/getcpu.2:67
177 #: build/C/man2/mbind.2:319 build/C/man2/move_pages.2:161
178 #: build/C/man2/set_mempolicy.2:228
179 #, no-wrap
180 msgid "B<EFAULT>"
181 msgstr "B<EFAULT>"
182
183 #. type: Plain text
184 #: build/C/man2/get_mempolicy.2:186 build/C/man2/set_mempolicy.2:235
185 msgid "Part of all of the memory range specified by I<nodemask> and I<maxnode> points outside your accessible address space."
186 msgstr "I<nodemask> と I<maxnode> で指定されたメモリ領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。"
187
188 #. type: TP
189 #: build/C/man2/get_mempolicy.2:186 build/C/man2/mbind.2:330
190 #: build/C/man2/move_pages.2:164 build/C/man2/set_mempolicy.2:235
191 #, no-wrap
192 msgid "B<EINVAL>"
193 msgstr "B<EINVAL>"
194
195 #. type: Plain text
196 #: build/C/man2/get_mempolicy.2:230
197 msgid "The value specified by I<maxnode> is less than the number of node IDs supported by the system.  Or I<flags> specified values other than B<MPOL_F_NODE> or B<MPOL_F_ADDR>; or I<flags> specified B<MPOL_F_ADDR> and I<addr> is NULL, or I<flags> did not specify B<MPOL_F_ADDR> and I<addr> is not NULL.  Or, I<flags> specified B<MPOL_F_NODE> but not B<MPOL_F_ADDR> and the current process policy is not B<MPOL_INTERLEAVE>.  Or, I<flags> specified B<MPOL_F_MEMS_ALLOWED> with either B<MPOL_F_ADDR> or B<MPOL_F_NODE>.  (And there are other B<EINVAL> cases.)"
198 msgstr "I<maxnode> で指定された値がシステムがサポートするノード ID の数よりも少ない。 または、 I<flags> に B<MPOL_F_NODE> でも B<MPOL_F_ADDR> でもない値が指定された。 または、 I<flags> に B<MPOL_F_ADDR> が指定されており、 I<addr> が NULL である。 または、 I<flags> に B<MPOL_F_ADDR> がされておらず、 I<addr> が NULL でない。 または、 I<flags> に B<MPOL_F_NODE> が指定されており、 B<MPOL_F_ADDR> が指定されておらず、 プロセスの現在のポリシーが B<MPOL_INTERLEAVE> でない。 または、 I<flags> に B<MPOL_F_MEMS_ALLOWED> が指定されており、さらに B<MPOL_F_ADDR> か B<MPOL_F_NODE> のいずれかが指定されている。 (他にも B<EINVAL> となる場合がある。)"
199
200 #. type: SH
201 #: build/C/man2/get_mempolicy.2:230 build/C/man2/getcpu.2:70
202 #: build/C/man2/mbind.2:402 build/C/man2/migrate_pages.2:112
203 #: build/C/man2/move_pages.2:192 build/C/man2/set_mempolicy.2:275
204 #, no-wrap
205 msgid "VERSIONS"
206 msgstr "バージョン"
207
208 #. type: Plain text
209 #: build/C/man2/get_mempolicy.2:234
210 msgid "The B<get_mempolicy>()  system call was added to the Linux kernel in version 2.6.7."
211 msgstr "B<get_mempolicy>()  システムコールはバージョン 2.6.7 で Linux カーネルに追加された。"
212
213 #. type: SH
214 #: build/C/man2/get_mempolicy.2:234 build/C/man2/getcpu.2:73
215 #: build/C/man2/mbind.2:406 build/C/man2/migrate_pages.2:116
216 #: build/C/man2/move_pages.2:195 build/C/man7/numa.7:148
217 #: build/C/man2/set_mempolicy.2:279
218 #, no-wrap
219 msgid "CONFORMING TO"
220 msgstr "準拠"
221
222 #. type: Plain text
223 #: build/C/man2/get_mempolicy.2:236 build/C/man2/mbind.2:408
224 #: build/C/man2/migrate_pages.2:118 build/C/man2/move_pages.2:197
225 #: build/C/man2/set_mempolicy.2:281
226 msgid "This system call is Linux-specific."
227 msgstr "このシステムコールは Linux 固有である。"
228
229 #. type: SH
230 #: build/C/man2/get_mempolicy.2:236 build/C/man2/getcpu.2:76
231 #: build/C/man2/mbind.2:408 build/C/man2/migrate_pages.2:118
232 #: build/C/man2/move_pages.2:197 build/C/man7/numa.7:150
233 #: build/C/man2/set_mempolicy.2:281
234 #, no-wrap
235 msgid "NOTES"
236 msgstr "注意"
237
238 #. type: Plain text
239 #: build/C/man2/get_mempolicy.2:239 build/C/man2/mbind.2:411
240 #: build/C/man2/migrate_pages.2:121 build/C/man2/move_pages.2:200
241 #: build/C/man2/set_mempolicy.2:289
242 msgid "For information on library support, see B<numa>(7)."
243 msgstr "ライブラリによるサポートについては B<numa>(7)  を参照。"
244
245 #. type: SH
246 #: build/C/man2/get_mempolicy.2:239 build/C/man2/getcpu.2:139
247 #: build/C/man2/mbind.2:460 build/C/man2/migrate_pages.2:148
248 #: build/C/man2/move_pages.2:227 build/C/man7/numa.7:183
249 #: build/C/man2/set_mempolicy.2:289
250 #, no-wrap
251 msgid "SEE ALSO"
252 msgstr "関連項目"
253
254 #. type: Plain text
255 #: build/C/man2/get_mempolicy.2:247
256 msgid "B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<set_mempolicy>(2), B<numa>(3), B<numa>(7), B<numactl>(8)"
257 msgstr "B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<set_mempolicy>(2), B<numa>(3), B<numa>(7), B<numactl>(8)"
258
259 #. type: SH
260 #: build/C/man2/get_mempolicy.2:247 build/C/man2/getcpu.2:145
261 #: build/C/man2/mbind.2:471 build/C/man2/migrate_pages.2:161
262 #: build/C/man2/move_pages.2:237 build/C/man7/numa.7:191
263 #: build/C/man2/set_mempolicy.2:298
264 #, no-wrap
265 msgid "COLOPHON"
266 msgstr "この文書について"
267
268 #. type: Plain text
269 #: build/C/man2/get_mempolicy.2:255 build/C/man2/getcpu.2:153
270 #: build/C/man2/mbind.2:479 build/C/man2/migrate_pages.2:169
271 #: build/C/man2/move_pages.2:245 build/C/man7/numa.7:199
272 #: build/C/man2/set_mempolicy.2:306
273 msgid "This page is part of release 3.78 of the Linux I<man-pages> project.  A description of the project, information about reporting bugs, and the latest version of this page, can be found at \\%http://www.kernel.org/doc/man-pages/."
274 msgstr ""
275 "この man ページは Linux I<man-pages> プロジェクトのリリース 3.78 の一部\n"
276 "である。プロジェクトの説明とバグ報告に関する情報は\n"
277 "http://www.kernel.org/doc/man-pages/ に書かれている。"
278
279 #. type: TH
280 #: build/C/man2/getcpu.2:12
281 #, no-wrap
282 msgid "GETCPU"
283 msgstr "GETCPU"
284
285 #. type: TH
286 #: build/C/man2/getcpu.2:12
287 #, no-wrap
288 msgid "2013-04-03"
289 msgstr "2013-04-03"
290
291 #. type: Plain text
292 #: build/C/man2/getcpu.2:15
293 msgid "getcpu - determine CPU and NUMA node on which the calling thread is running"
294 msgstr "getcpu - 呼び出し元スレッドが動作している CPU と NUMA ノードを判定する"
295
296 #. type: Plain text
297 #: build/C/man2/getcpu.2:18
298 #, no-wrap
299 msgid "B<#include E<lt>linux/getcpu.hE<gt>>\n"
300 msgstr "B<#include E<lt>linux/getcpu.hE<gt>>\n"
301
302 #. type: Plain text
303 #: build/C/man2/getcpu.2:21
304 #, no-wrap
305 msgid "B<int getcpu(unsigned *>I<cpu>B<, unsigned *>I<node>B<, struct getcpu_cache *>I<tcache>B<);>\n"
306 msgstr "B<int getcpu(unsigned *>I<cpu>B<, unsigned *>I<node>B<, struct getcpu_cache *>I<tcache>B<);>\n"
307
308 #. type: Plain text
309 #: build/C/man2/getcpu.2:25
310 msgid "I<Note>: There is no glibc wrapper for this system call; see NOTES."
311 msgstr "I<注>: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。"
312
313 #. type: Plain text
314 #: build/C/man2/getcpu.2:42
315 msgid "The B<getcpu>()  system call identifies the processor and node on which the calling thread or process is currently running and writes them into the integers pointed to by the I<cpu> and I<node> arguments.  The processor is a unique small integer identifying a CPU.  The node is a unique small identifier identifying a NUMA node.  When either I<cpu> or I<node> is NULL nothing is written to the respective pointer."
316 msgstr ""
317 "B<getcpu>() システムコールは、呼び出し元のスレッドやプロセスが\n"
318 "現在動作しているプロセッサやノードの情報を特定し、\n"
319 "それぞれ引き数 I<cpu> と I<node> が指す整数に書き込む。\n"
320 "プロセッサ情報は CPU を識別するための一意な小さな整数である。\n"
321 "ノード情報は NUMAノードを識別するための一意な小さな整数である。\n"
322 "I<cpu> か I<node> のいずれかが NULL であれば、\n"
323 "その引き数に対応する情報の書き込みは行われない。"
324
325 #. type: Plain text
326 #: build/C/man2/getcpu.2:46
327 msgid "The third argument to this system call is nowadays unused, and should be specified as NULL unless portability to Linux 2.6.23 or earlier is required (see NOTES)."
328 msgstr "このシステムコールの 3 番目の引き数は現在は使われておらず、 Linux 2.6.23 以前への移植性が必要な場合以外は NULL を渡すべきである (「注意」を参照)。"
329
330 #. type: Plain text
331 #: build/C/man2/getcpu.2:61
332 msgid "The information placed in I<cpu> is guaranteed to be current only at the time of the call: unless the CPU affinity has been fixed using B<sched_setaffinity>(2), the kernel might change the CPU at any time.  (Normally this does not happen because the scheduler tries to minimize movements between CPUs to keep caches hot, but it is possible.)  The caller must allow for the possibility that the information returned in I<cpu> and I<node> is no longer current by the time the call returns."
333 msgstr ""
334 "I<cpu> に格納された情報が最新だと保証できるのは、システムコールが呼ばれ\n"
335 "た時点だけである。B<sched_setaffinity>(2) を使って CPU affinity が固定\n"
336 "されていない限り、カーネルはいつでも CPU を変更してもよい (スケジューラ\n"
337 "はキャッシュが有効に働くように CPU の移動を最小限にしようとするので、\n"
338 "通常は CPU が変更されることはないが、起きる可能性はある)。\n"
339 "I<cpu> や I<node> で返された情報が呼び出しが返った時点ですでに\n"
340 "最新の状況と異なる可能性があり、呼び出し元はこの可能性を考慮して\n"
341 "おかなければならない。"
342
343 #. type: Plain text
344 #: build/C/man2/getcpu.2:66
345 msgid "On success, 0 is returned.  On error, -1 is returned, and I<errno> is set appropriately."
346 msgstr ""
347 "成功すると、0 を返す。\n"
348 "エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
349
350 #. type: Plain text
351 #: build/C/man2/getcpu.2:70
352 msgid "Arguments point outside the calling process's address space."
353 msgstr "引き数が呼び出したプロセスのアドレス空間外を指している。"
354
355 #. type: Plain text
356 #: build/C/man2/getcpu.2:73
357 msgid "B<getcpu>()  was added in kernel 2.6.19 for x86_64 and i386."
358 msgstr "B<getcpu>() はカーネル 2.6.19 で x86_64 と i386 向けに追加された."
359
360 #. type: Plain text
361 #: build/C/man2/getcpu.2:76
362 msgid "B<getcpu>()  is Linux-specific."
363 msgstr "B<getcpu>() は Linux 固有である。"
364
365 #. type: Plain text
366 #: build/C/man2/getcpu.2:82
367 msgid "Linux makes a best effort to make this call as fast possible.  The intention of B<getcpu>()  is to allow programs to make optimizations with per-CPU data or for NUMA optimization."
368 msgstr ""
369 "Linux はこのシステムコールを可能な限り早く実行しようとする。\n"
370 "B<getcpu>() は、CPU 毎のデータに対する最適化や NUMA 環境での最適化を\n"
371 "プログラムが行えるようにすることを目的として実装されているからである。"
372
373 #. type: Plain text
374 #: build/C/man2/getcpu.2:88
375 msgid "Glibc does not provide a wrapper for this system call; call it using B<syscall>(2); or use B<sched_getcpu>(3)  instead."
376 msgstr ""
377 "glibc はこのシステムコールに対するラッパー関数を提供していない。\n"
378 "B<syscall>(2) を使って呼び出すか、\n"
379 "代わりに B<sched_getcpu>(3) を使用すること。"
380
381 #.  commit 4307d1e5ada595c87f9a4d16db16ba5edb70dcb1
382 #.  Author: Ingo Molnar <mingo@elte.hu>
383 #.  Date:   Wed Nov 7 18:37:48 2007 +0100
384 #.  x86: ignore the sys_getcpu() tcache parameter
385 #.  ===== Before kernel 2.6.24: =====
386 #.  .I tcache
387 #.  is a pointer to a
388 #.  .IR "struct getcpu_cache"
389 #.  that is used as a cache by
390 #.  .BR getcpu ().
391 #.  The caller should put the cache into a thread-local variable
392 #.  if the process is multithreaded,
393 #.  because the cache cannot be shared between different threads.
394 #.  .I tcache
395 #.  can be NULL.
396 #.  If it is not NULL
397 #.  .BR getcpu ()
398 #.  will use it to speed up operation.
399 #.  The information inside the cache is private to the system call
400 #.  and should not be accessed by the user program.
401 #.  The information placed in the cache can change between kernel releases.
402 #.  When no cache is specified
403 #.  .BR getcpu ()
404 #.  will be slower,
405 #.  but always retrieve the current CPU and node information.
406 #.  With a cache
407 #.  .BR getcpu ()
408 #.  is faster.
409 #.  However, the cached information is updated only once per jiffy (see
410 #.  .BR time (7)).
411 #.  This means that the information could theoretically be out of date,
412 #.  although in practice the scheduler's attempt to maintain
413 #.  soft CPU affinity means that the information is unlikely to change
414 #.  over the course of the caching interval.
415 #. type: Plain text
416 #: build/C/man2/getcpu.2:139
417 msgid "The I<tcache> argument is unused since Linux 2.6.24.  In earlier kernels, if this argument was non-NULL, then it specified a pointer to a caller-allocated buffer in thread-local storage that was used to provide a caching mechanism for B<getcpu>().  Use of the cache could speed B<getcpu>()  calls, at the cost that there was a very small chance that the returned information would be out of date.  The caching mechanism was considered to cause problems when migrating threads between CPUs, and so the argument is now ignored."
418 msgstr ""
419 "I<tcache> 引き数は Linux 2.6.24 以降では使用されない。以前のバージョン\n"
420 "のカーネルでは、この引き数が NULL 以外の場合、この引き数には、呼び出し\n"
421 "元が割り当てたスレッド専用の記憶領域 (thread-local storage) 内のバッファ\n"
422 "を指すポインタが指定され、このバッファは B<getcpu>() 用のキャッシュ機構\n"
423 "を提供するために利用されていた。非常に低い確率だが古い情報を返してしま\n"
424 "うデメリットはあるものの、このキャッシュを使うことで B<getcpu>() システ\n"
425 "ムコールを高速化できた。このキャッシュ機構はCPU 間でのスレッドの移動時\n"
426 "に問題になると考えられ、この引き数は今では無視されるようになっている。"
427
428 #. type: Plain text
429 #: build/C/man2/getcpu.2:145
430 msgid "B<mbind>(2), B<sched_setaffinity>(2), B<set_mempolicy>(2), B<sched_getcpu>(3), B<cpuset>(7)"
431 msgstr "B<mbind>(2), B<sched_setaffinity>(2), B<set_mempolicy>(2), B<sched_getcpu>(3), B<cpuset>(7)"
432
433 #. type: TH
434 #: build/C/man2/mbind.2:45
435 #, no-wrap
436 msgid "MBIND"
437 msgstr "MBIND"
438
439 #. type: TH
440 #: build/C/man2/mbind.2:45
441 #, no-wrap
442 msgid "2015-01-22"
443 msgstr "2015-01-22"
444
445 #. type: Plain text
446 #: build/C/man2/mbind.2:48
447 msgid "mbind - set memory policy for a memory range"
448 msgstr "mbind - メモリ領域に対してメモリポリシーを設定する"
449
450 #. type: Plain text
451 #: build/C/man2/mbind.2:51 build/C/man2/migrate_pages.2:24
452 #: build/C/man2/move_pages.2:25 build/C/man2/set_mempolicy.2:33
453 #, no-wrap
454 msgid "B<#include E<lt>numaif.hE<gt>>\n"
455 msgstr "B<#include E<lt>numaif.hE<gt>>\n"
456
457 #. type: Plain text
458 #: build/C/man2/mbind.2:55
459 #, no-wrap
460 msgid ""
461 "B<long mbind(void *>I<addr>B<, unsigned long >I<len>B<, int >I<mode>B<,>\n"
462 "B<           const unsigned long *>I<nodemask>B<, unsigned long >I<maxnode>B<,>\n"
463 "B<           unsigned >I<flags>B<);>\n"
464 msgstr ""
465 "B<long mbind(void *>I<addr>B<, unsigned long >I<len>B<, int >I<mode>B<,>\n"
466 "B<           const unsigned long *>I<nodemask>B<, unsigned long >I<maxnode>B<,>\n"
467 "B<           unsigned >I<flags>B<);>\n"
468
469 #. type: Plain text
470 #: build/C/man2/mbind.2:68
471 msgid "B<mbind>()  sets the NUMA memory policy, which consists of a policy mode and zero or more nodes, for the memory range starting with I<addr> and continuing for I<len> bytes.  The memory policy defines from which node memory is allocated."
472 msgstr "B<mbind>()  は、 I<addr> から始まる長さ I<len> バイトの範囲のメモリに NUMA メモリポリシーを設定する。 NUMA ポリシーはポリシーモードと 0 個以上のノードから構成される。 メモリポリシーはどのノードからメモリを割り当てるかを決定する。"
473
474 #. type: Plain text
475 #: build/C/man2/mbind.2:90
476 msgid "If the memory range specified by the I<addr> and I<len> arguments includes an \"anonymous\" region of memory\\(emthat is a region of memory created using the B<mmap>(2)  system call with the B<MAP_ANONYMOUS>\\(emor a memory-mapped file, mapped using the B<mmap>(2)  system call with the B<MAP_PRIVATE> flag, pages will be allocated only according to the specified policy when the application writes [stores] to the page.  For anonymous regions, an initial read access will use a shared page in the kernel containing all zeros.  For a file mapped with B<MAP_PRIVATE>, an initial read access will allocate pages according to the process policy of the process that causes the page to be allocated.  This may not be the process that called B<mbind>()."
477 msgstr "I<addr> と I<len> で指定されたメモリ範囲に、 メモリの「無名」領域 \\(em B<MAP_ANONYMOUS> 付きの B<mmap>(2)  システムコールを使って作成されたメモリ領域 \\(em や B<MAP_PRIVATE> 付きの B<mmap>(2)  を使ってマップされたメモリマップ・ファイルが含まれている場合、アプリケーションがそのページへの書き込み (データの格納) を行った時には指定されたポリシーのみに基づいてページが割り当てられる。無名領域の場合、最初の読み出しアクセスの際には カーネル内の全データが 0 である共有ページが使用される。 B<MAP_PRIVATE> でマップされたファイルの場合、最初の読み出しアクセスがあると、 ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシー にしたがってページの割り当てが行われる。 ページ割り当てのきっかけとなったプロセスは、 B<mbind>()  を呼び出したプロセスと同じとは限らない。"
478
479 #. type: Plain text
480 #: build/C/man2/mbind.2:98
481 msgid "The specified policy will be ignored for any B<MAP_SHARED> mappings in the specified memory range.  Rather the pages will be allocated according to the process policy of the process that caused the page to be allocated.  Again, this may not be the process that called B<mbind>()."
482 msgstr "指定されたメモリ範囲内にある B<MAP_SHARED> のマッピングでは指定されたポリシーは無視され、 ページ割り当てが発生するきっかけとなったプロセスのデフォルトポリシーに したがってページの割り当てが行われることになる。 繰り返しになるが、ページ割り当てのきっかけとなったプロセスは、 B<mbind>()  を呼び出したプロセスと同じとは限らない。"
483
484 #. type: Plain text
485 #: build/C/man2/mbind.2:115
486 msgid "If the specified memory range includes a shared memory region created using the B<shmget>(2)  system call and attached using the B<shmat>(2)  system call, pages allocated for the anonymous or shared memory region will be allocated according to the policy specified, regardless which process attached to the shared memory segment causes the allocation.  If, however, the shared memory region was created with the B<SHM_HUGETLB> flag, the huge pages will be allocated according to the policy specified only if the page allocation is caused by the process that calls B<mbind>()  for that region."
487 msgstr "指定されたメモリ範囲に、 B<shmget>(2)  システムコールを使って作成されたり、 B<shmat>(2)  システムコールを使って付加 (attach) されたりした共有メモリ領域が 含まれる場合、無名メモリ領域や共有メモリ領域に対するページ割り当ては、 共有メモリセグメントへポリシーの設定を行ったプロセスがページ割り当て のきっかけとなったかに関わらず、指定されたポリシーにしたがって割り当て が行われる。 しかしながら、共有メモリ領域が B<SHM_HUGETLB> フラグを指定して作成された場合には、ヒュージページ (huge page) の割り当てが 指定されたポリシーにしたがって行われるのは、その領域に対して B<mbind>()  を呼び出したプロセスがページ割り当てのきっかけとなった場合のみである。"
488
489 #. type: Plain text
490 #: build/C/man2/mbind.2:126
491 msgid "By default, B<mbind>()  has an effect only for new allocations; if the pages inside the range have been already touched before setting the policy, then the policy has no effect.  This default behavior may be overridden by the B<MPOL_MF_MOVE> and B<MPOL_MF_MOVE_ALL> flags described below."
492 msgstr "デフォルトでは、 B<mbind>()  は新規のメモリ割り当てに対してのみ効果を持つ。 ポリシーが設定される前にすでに使用されている範囲内のページに対しては、 ポリシーは影響しない。 このデフォルトの動作は、以下で説明するフラグ B<MPOL_MF_MOVE> や B<MPOL_MF_MOVE_ALL> により上書きされる可能性がある。"
493
494 #. type: Plain text
495 #: build/C/man2/mbind.2:141
496 msgid "The I<mode> argument must specify one of B<MPOL_DEFAULT>, B<MPOL_BIND>, B<MPOL_INTERLEAVE>, or B<MPOL_PREFERRED>.  All policy modes except B<MPOL_DEFAULT> require the caller to specify via the I<nodemask> argument, the node or nodes to which the mode applies."
497 msgstr "I<mode> 引き数には、 B<MPOL_DEFAULT>, B<MPOL_BIND>, B<MPOL_INTERLEAVE>, B<MPOL_PREFERRED> のいずれか一つを指定しなければならない。 B<MPOL_DEFAULT> 以外のポリシーモードの場合、呼び出し元は I<nodemask> 引き数でそのポリシーモードを適用するノードを指定する必要がある。"
498
499 #. type: Plain text
500 #: build/C/man2/mbind.2:149
501 msgid "The I<mode> argument may also include an optional I<mode flag >.  The supported I<mode flags> are:"
502 msgstr "I<mode> 引き数には、追加で I<モードフラグ> を含めることもできる。 サポートされている I<モードフラグ> は以下の通りである。"
503
504 #. type: TP
505 #: build/C/man2/mbind.2:149
506 #, no-wrap
507 msgid "B<MPOL_F_STATIC_NODES> (since Linux-2.6.26)"
508 msgstr "B<MPOL_F_STATIC_NODES> (Linux-2.6.26 以降)"
509
510 #. type: Plain text
511 #: build/C/man2/mbind.2:159
512 msgid "A nonempty I<nodemask> specifies physical node ids.  Linux does not remap the I<nodemask> when the process moves to a different cpuset context, nor when the set of nodes allowed by the process's current cpuset context changes."
513 msgstr "空でない I<nodemask> は、物理ノード ID である。 Linux では、そのプロセスが異なる CPU 集合コンテキスト (cpuset context)  に移動した場合でも、そのプロセスの現在の CPU 集合コンテキストで 許可されているノード集合が変化した場合でも、 I<nodemask> をマッピングし直すことはない。"
514
515 #. type: TP
516 #: build/C/man2/mbind.2:159
517 #, no-wrap
518 msgid "B<MPOL_F_RELATIVE_NODES> (since Linux-2.6.26)"
519 msgstr "B<MPOL_F_RELATIVE_NODES> (Linux-2.6.26 以降)"
520
521 #. type: Plain text
522 #: build/C/man2/mbind.2:165 build/C/man2/set_mempolicy.2:113
523 msgid "A nonempty I<nodemask> specifies node ids that are relative to the set of node ids allowed by the process's current cpuset."
524 msgstr "空でない I<nodemask> は、そのプロセスの現在の CPU 集合で許可されているノード ID 集合 における相対的なノード ID である。"
525
526 #. type: Plain text
527 #: build/C/man2/mbind.2:193
528 msgid "I<nodemask> points to a bit mask of nodes containing up to I<maxnode> bits.  The bit mask size is rounded to the next multiple of I<sizeof(unsigned long)>, but the kernel will use bits only up to I<maxnode>.  A NULL value of I<nodemask> or a I<maxnode> value of zero specifies the empty set of nodes.  If the value of I<maxnode> is zero, the I<nodemask> argument is ignored.  Where a I<nodemask> is required, it must contain at least one node that is on-line, allowed by the process's current cpuset context [unless the B<MPOL_F_STATIC_NODES> mode flag is specified], and contains memory."
529 msgstr "I<nodemask> は、最大で I<maxnode> ビットから構成されるノードのビットマスクを指す。 ビットマスクの大きさは、直近の I<sizeof(unsigned long)> の倍数に切り上げられるが、カーネルが使用するのは I<maxnode> 個までのビットだけである。 NULL 値の I<nodemask> もしくは値が 0 の I<maxnode> はノードの空集合を表す。 I<maxnode> の値が 0 の場合、 I<nodemask> 引き数は無視される。 I<nodemask> が必須の場面では、 I<nodemask> に、オンラインで、そのプロセスの現在の CPU 集合コンテキストで 許可されており (B<MPOL_F_STATIC_NODES> モードフラグが指定されていない場合)、メモリがあるノードが 少なくとも一つ入っていなければならない。"
530
531 #. type: Plain text
532 #: build/C/man2/mbind.2:215
533 msgid "The B<MPOL_DEFAULT> mode requests that any nondefault policy be removed, restoring default behavior.  When applied to a range of memory via B<mbind>(), this means to use the process policy, which may have been set with B<set_mempolicy>(2).  If the mode of the process policy is also B<MPOL_DEFAULT>, the system-wide default policy will be used.  The system-wide default policy allocates pages on the node of the CPU that triggers the allocation.  For B<MPOL_DEFAULT>, the I<nodemask> and I<maxnode> arguments must be specify the empty set of nodes."
534 msgstr "モード B<MPOL_DEFAULT> はデフォルトではないプロセスのメモリポリシーを削除し、 デフォルトの動作に戻すことを指定するものである。 B<mbind>()  経由で、あるメモリ領域に対して B<MPOL_DEFAULT> が適用された場合、プロセスのデフォルトポリシーを使用することを意味する。 プロセスのデフォルトポリシーは、 B<set_mempolicy>(2)  で変更されているかもしれない。 プロセスのポリシーのモードも B<MPOL_DEFAULT> の場合、システム全体のデフォルトポリシーが使用される。 システム全体のデフォルトポリシーでは、割り当てのきっかけとなった CPU のノードからページの割り当てを行う。 B<MPOL_DEFAULT> では、引き数 I<nodemask> と I<maxnode> にノードの空集合を指定しなければならない。"
535
536 #. type: Plain text
537 #: build/C/man2/mbind.2:232
538 msgid "The B<MPOL_BIND> mode specifies a strict policy that restricts memory allocation to the nodes specified in I<nodemask>.  If I<nodemask> specifies more than one node, page allocations will come from the node with the lowest numeric node ID first, until that node contains no free memory.  Allocations will then come from the node with the next highest node ID specified in I<nodemask> and so forth, until none of the specified nodes contain free memory.  Pages will not be allocated from any node not specified in the I<nodemask>."
539 msgstr "B<MPOL_BIND> は厳しいポリシーで、メモリ割り当ては I<nodemask> に指定されたノードに限定される。 他のノードへの割り当ては行われない。 I<nodemask> に 2 個以上のノードが指定された場合、ページの割り当ては ノード ID が数字として最小のノードから開始され、 そのノードに空きメモリがなくなるまでそのノードから ページ割り当てが行われる。そのノードに空きメモリがなくなったら、 次に小さなノード ID を持つノードからページ割り当てが行われる。 これを、 I<nodemask> で指定された全てのノードで空きメモリがなくなるまで繰り返す。 I<nodemask> で指定された以外のノードからはページの割り当ては行われない。"
540
541 #. type: Plain text
542 #: build/C/man2/mbind.2:245
543 msgid "The B<MPOL_INTERLEAVE> mode specifies that page allocations be interleaved across the set of nodes specified in I<nodemask>.  This optimizes for bandwidth instead of latency by spreading out pages and memory accesses to those pages across multiple nodes.  To be effective the memory area should be fairly large, at least 1MB or bigger with a fairly uniform access pattern.  Accesses to a single page of the area will still be limited to the memory bandwidth of a single node."
544 msgstr "B<MPOL_INTERLEAVE> は、メモリ割り当てが I<nodemask> に指定されたノード間で交互に行われることを指定するものである。 このポリシーでは、複数のノードにページを広げて配置し、これらのページへの メモリアクセスを分散することで、遅延ではなく、帯域を最適化する。 効果を得るには、メモリ領域をある程度大きくすべきであり、 メモリアクセスのパターンがかなり均一な場合でも 少なくとも 1MB 以上にすべきである。 このモードでも、一つのページへのアクセスに関しては 一つのノードのメモリ帯域が上限となることは変わりない。"
545
546 #. type: Plain text
547 #: build/C/man2/mbind.2:264
548 msgid "B<MPOL_PREFERRED> sets the preferred node for allocation.  The kernel will try to allocate pages from this node first and fall back to other nodes if the preferred nodes is low on free memory.  If I<nodemask> specifies more than one node ID, the first node in the mask will be selected as the preferred node.  If the I<nodemask> and I<maxnode> arguments specify the empty set, then the memory is allocated on the node of the CPU that triggered the allocation.  This is the only way to specify \"local allocation\" for a range of memory via B<mbind>()."
549 msgstr "B<MPOL_PREFERRED> は、割り当て時に優先されるノードを設定する。 カーネルはまず優先ノードにページ割り当てを行おうとし、 優先ノードに空きメモリが少ない場合に他のノードに割り当てを行う。 I<nodemask> に複数のノード ID が指定された場合は、 I<nodemask> 内の最初のノードが優先ノードとして選択される。 引き数 I<nodemask>, I<maxnode> で空集合が指定された場合は、割り当てのきっかけとなった CPU のノードに メモリ割り当てが行われる。 B<mbind>(2)  で、あるメモリ領域に対して「ローカルからの割り当て (local allocation)」を 指定する方法はこれしかない。"
550
551 #.  According to the kernel code, the following is not true
552 #.  --Lee Schermerhorn
553 #.  In 2.6.16 or later the kernel will also try to move pages
554 #.  to the requested node with this flag.
555 #. type: Plain text
556 #: build/C/man2/mbind.2:280
557 msgid "If B<MPOL_MF_STRICT> is passed in I<flags> and I<mode> is not B<MPOL_DEFAULT>, then the call will fail with the error B<EIO> if the existing pages in the memory range don't follow the policy."
558 msgstr "I<flags> に B<MPOL_MF_STRICT> が 指定され、 I<mode> が B<MPOL_DEFAULT> でない場合、 指定されたポリシーに従っていないメモリ領域にページが存在すると、 B<mbind>()  はエラー B<EIO> で失敗する。"
559
560 #. type: Plain text
561 #: build/C/man2/mbind.2:293
562 msgid "If B<MPOL_MF_MOVE> is specified in I<flags>, then the kernel will attempt to move all the existing pages in the memory range so that they follow the policy.  Pages that are shared with other processes will not be moved.  If B<MPOL_MF_STRICT> is also specified, then the call will fail with the error B<EIO> if some pages could not be moved."
563 msgstr "I<flags> に B<MPOL_MF_MOVE> が指定されると、カーネルはそのメモリ領域内の既存の全てのページを移動し、 指定されたポリシーに従うようにしようとする。 他のプロセスと共有されているページは移動されない。 B<MPOL_MF_STRICT> も指定された場合、移動できなかったページがあると、 B<mbind>()  はエラー B<EIO> で失敗する。"
564
565 #.  ---------------------------------------------------------------
566 #. type: Plain text
567 #: build/C/man2/mbind.2:309
568 msgid "If B<MPOL_MF_MOVE_ALL> is passed in I<flags>, then the kernel will attempt to move all existing pages in the memory range regardless of whether other processes use the pages.  The calling process must be privileged (B<CAP_SYS_NICE>)  to use this flag.  If B<MPOL_MF_STRICT> is also specified, then the call will fail with the error B<EIO> if some pages could not be moved."
569 msgstr "I<flags> に B<MPOL_MF_MOVE_ALL> が指定されると、カーネルはそのメモリ領域内の既存の全てのページを、 他のプロセスがページを使用しているかどうかに関わらず移動する。 このフラグを使用するには、呼び出し元のプロセスは特権 (B<CAP_SYS_NICE>)  を持っていなければならない。 B<MPOL_MF_STRICT> も指定された場合、移動できなかったページがあると、 B<mbind>()  はエラー B<EIO> で失敗する。"
570
571 #.  ---------------------------------------------------------------
572 #. type: Plain text
573 #: build/C/man2/mbind.2:317
574 msgid "On success, B<mbind>()  returns 0; on error, -1 is returned and I<errno> is set to indicate the error."
575 msgstr "成功すると、 B<mbind>()  は 0 を返す。エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
576
577 #. type: Plain text
578 #: build/C/man2/mbind.2:330
579 msgid "Part or all of the memory range specified by I<nodemask> and I<maxnode> points outside your accessible address space.  Or, there was an unmapped hole in the specified memory range specified by I<addr> and I<len>."
580 msgstr "I<nodemask> と I<maxnode> で指定されたメモリ領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。 もしくは I<addr> と I<len> で指定されたメモリ領域にマップされていない部分 (unmapped hole)  があった、"
581
582 #.  As at 2.6.23, this limit is "a page worth of bits", e.g.,
583 #.  8 * 4096 bits, assuming a 4kB page size.
584 #. type: Plain text
585 #: build/C/man2/mbind.2:378
586 msgid "An invalid value was specified for I<flags> or I<mode>; or I<addr + len> was less than I<addr>; or I<addr> is not a multiple of the system page size.  Or, I<mode> is B<MPOL_DEFAULT> and I<nodemask> specified a nonempty set; or I<mode> is B<MPOL_BIND> or B<MPOL_INTERLEAVE> and I<nodemask> is empty.  Or, I<maxnode> exceeds a kernel-imposed limit.  Or, I<nodemask> specifies one or more node IDs that are greater than the maximum supported node ID.  Or, none of the node IDs specified by I<nodemask> are on-line and allowed by the process's current cpuset context, or none of the specified nodes contain memory.  Or, the I<mode> argument specified both B<MPOL_F_STATIC_NODES> and B<MPOL_F_RELATIVE_NODES>."
587 msgstr "I<flags> や I<mode> に不正な値が指定された。 I<addr + len> が I<addr> より小さい。 I<addr> がシステムのページサイズの倍数になっていない。 または I<mode> が B<MPOL_DEFAULT> で I<nodemask> に空でない集合が指定された。 I<mode> が B<MPOL_BIND> か B<MPOL_INTERLEAVE> で I<nodemask> が空であった。 I<maxnode> がカーネルに適用された上限を超えている。 I<nodemask> に、サポートされている最大ノード ID より大きいノードが指定された。 I<nodemask> に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで 許可されているノードが一つも含まれていないか、 メモリを含むノードが一つも指定されていない。 I<mode> 引き数に B<MPOL_F_STATIC_NODES> と B<MPOL_F_RELATIVE_NODES> の両方が指定された。"
588
589 #. type: TP
590 #: build/C/man2/mbind.2:378
591 #, no-wrap
592 msgid "B<EIO>"
593 msgstr "B<EIO>"
594
595 #. type: Plain text
596 #: build/C/man2/mbind.2:389
597 msgid "B<MPOL_MF_STRICT> was specified and an existing page was already on a node that does not follow the policy; or B<MPOL_MF_MOVE> or B<MPOL_MF_MOVE_ALL> was specified and the kernel was unable to move all existing pages in the range."
598 msgstr "B<MPOL_MF_STRICT> が指定されたが、このポリシーに従っていないノードに すでにページが存在していた。 もしくは B<MPOL_MF_MOVE> か B<MPOL_MF_MOVE_ALL> が指定されたが、カーネルが指定された領域内の既存の全てのページを 移動することができなかった。"
599
600 #. type: TP
601 #: build/C/man2/mbind.2:389 build/C/man2/set_mempolicy.2:272
602 #, no-wrap
603 msgid "B<ENOMEM>"
604 msgstr "B<ENOMEM>"
605
606 #. type: Plain text
607 #: build/C/man2/mbind.2:392 build/C/man2/set_mempolicy.2:275
608 msgid "Insufficient kernel memory was available."
609 msgstr "利用可能なカーネルメモリが十分でなかった。"
610
611 #. type: TP
612 #: build/C/man2/mbind.2:392 build/C/man2/migrate_pages.2:97
613 #: build/C/man2/move_pages.2:180
614 #, no-wrap
615 msgid "B<EPERM>"
616 msgstr "B<EPERM>"
617
618 #.  ---------------------------------------------------------------
619 #. type: Plain text
620 #: build/C/man2/mbind.2:402
621 msgid "The I<flags> argument included the B<MPOL_MF_MOVE_ALL> flag and the caller does not have the B<CAP_SYS_NICE> privilege."
622 msgstr "I<flags> 引き数に B<MPOL_MF_MOVE_ALL> フラグが含まれているが、呼び出し元が B<CAP_SYS_NICE> 特権を持たない。"
623
624 #. type: Plain text
625 #: build/C/man2/mbind.2:406
626 msgid "The B<mbind>()  system call was added to the Linux kernel in version 2.6.7."
627 msgstr "B<mbind>()  システムコールはバージョン 2.6.7 で Linux カーネルに追加された。"
628
629 #. type: Plain text
630 #: build/C/man2/mbind.2:416
631 msgid "NUMA policy is not supported on a memory-mapped file range that was mapped with the B<MAP_SHARED> flag."
632 msgstr "NUMA ポリシーは、 B<MAP_SHARED> フラグが指定されてマップされたメモリマップ・ファイルの領域では サポートされていない。"
633
634 #. type: Plain text
635 #: build/C/man2/mbind.2:448
636 msgid "The B<MPOL_DEFAULT> mode can have different effects for B<mbind>()  and B<set_mempolicy>(2).  When B<MPOL_DEFAULT> is specified for B<set_mempolicy>(2), the process's policy reverts to system default policy or local allocation.  When B<MPOL_DEFAULT> is specified for a range of memory using B<mbind>(), any pages subsequently allocated for that range will use the process's policy, as set by B<set_mempolicy>(2).  This effectively removes the explicit policy from the specified range, \"falling back\" to a possibly nondefault policy.  To select explicit \"local allocation\" for a memory range, specify a I<mode> of B<MPOL_PREFERRED> with an empty set of nodes.  This method will work for B<set_mempolicy>(2), as well."
637 msgstr "B<MPOL_DEFAULT> モードは、 B<mbind>()  と B<set_mempolicy>(2)  で異なる効果を持つことができる。 B<set_mempolicy>(2)  で B<MPOL_DEFAULT> が指定された場合、そのプロセスのポリシーはシステムの デフォルトポリシー、すなわちローカルからの割り当て、に戻る。 B<mbind>()  を使ってメモリのある領域に B<MPOL_DEFAULT> が指定された場合、その範囲に対してそれ以降に行われるページの割り当てでは、 B<set_mempolicy>(2)  で設定したのと同じように、そのプロセスのポリシーが適用される。 これにより、特定のメモリ領域についてだけ明示的なポリシーを削除し、 デフォルトのポリシーに「戻す」ことができる。 あるメモリ領域に対して「ローカルからの割り当て」を明示的に設定するには、 I<mode> に B<MPOL_PREFERRED> を指定し、 I<nodemask> に空集合のノードを指定すればよい。 この方法は B<set_mempolicy>(2)  でも通用する。"
638
639 #. type: Plain text
640 #: build/C/man2/mbind.2:452
641 msgid "Support for huge page policy was added with 2.6.16.  For interleave policy to be effective on huge page mappings the policied memory needs to be tens of megabytes or larger."
642 msgstr "2.6.16 でヒュージページ・ポリシーへの対応が追加された。 インターリーブ・ポリシーがヒュージページのマッピングで効果を持つには、 ポリシーが適用されるメモリが数十メガバイト以上である必要がある。"
643
644 #. type: Plain text
645 #: build/C/man2/mbind.2:455
646 msgid "B<MPOL_MF_STRICT> is ignored on huge page mappings."
647 msgstr "B<MPOL_MF_STRICT> はヒュージページのマッピングでは無視される。"
648
649 #. type: Plain text
650 #: build/C/man2/mbind.2:460
651 msgid "B<MPOL_MF_MOVE> and B<MPOL_MF_MOVE_ALL> are available only on Linux 2.6.16 and later."
652 msgstr "B<MPOL_MF_MOVE> と B<MPOL_MF_MOVE_ALL> は Linux 2.6.16 以降でのみ利用可能である。"
653
654 #. type: Plain text
655 #: build/C/man2/mbind.2:471
656 msgid "B<get_mempolicy>(2), B<getcpu>(2), B<mmap>(2), B<set_mempolicy>(2), B<shmat>(2), B<shmget>(2), B<numa>(3), B<cpuset>(7), B<numa>(7), B<numactl>(8)"
657 msgstr ""
658 "B<get_mempolicy>(2), B<getcpu>(2), B<mmap>(2), B<set_mempolicy>(2),\n"
659 "B<shmat>(2), B<shmget>(2), B<numa>(3), B<cpuset>(7), B<numa>(7),\n"
660 "B<numactl>(8)"
661
662 #. type: TH
663 #: build/C/man2/migrate_pages.2:18
664 #, no-wrap
665 msgid "MIGRATE_PAGES"
666 msgstr "MIGRATE_PAGES"
667
668 #. type: TH
669 #: build/C/man2/migrate_pages.2:18
670 #, no-wrap
671 msgid "2012-08-01"
672 msgstr "2012-08-01"
673
674 #. type: Plain text
675 #: build/C/man2/migrate_pages.2:21
676 msgid "migrate_pages - move all pages in a process to another set of nodes"
677 msgstr "migrate_pages - プロセスの全ページを別のノード集合に移動する"
678
679 #. type: Plain text
680 #: build/C/man2/migrate_pages.2:28
681 #, no-wrap
682 msgid ""
683 "B<long migrate_pages(int >I<pid>B<, unsigned long >I<maxnode,>\n"
684 "B<                   const unsigned long *>I<old_nodes,>\n"
685 "B<                   const unsigned long *>I<new_nodes>B<);>\n"
686 msgstr ""
687 "B<long migrate_pages(int >I<pid>B<, unsigned long >I<maxnode,>\n"
688 "B<                   const unsigned long *>I<old_nodes,>\n"
689 "B<                   const unsigned long *>I<new_nodes>B<);>\n"
690
691 #. type: Plain text
692 #: build/C/man2/migrate_pages.2:31 build/C/man2/move_pages.2:31
693 msgid "Link with I<-lnuma>."
694 msgstr "I<-lnuma> とリンクする。"
695
696 #. type: Plain text
697 #: build/C/man2/migrate_pages.2:47
698 msgid "B<migrate_pages>()  attempts to move all pages of the process I<pid> that are in memory nodes I<old_nodes> to the memory nodes in I<new_nodes>.  Pages not located in any node in I<old_nodes> will not be migrated.  As far as possible, the kernel maintains the relative topology relationship inside I<old_nodes> during the migration to I<new_nodes>."
699 msgstr ""
700 "B<MIGRATE_PAGES>() は、メモリノード I<old_nodes> にあるプロセス I<pid>\n"
701 "の全ページを、メモリノード I<new_nodes> に移動しようとする。I<old_nodes> で\n"
702 "指定されたメモリノードに置かれていないページは移動されない。\n"
703 "カーネルは、 I<new_nodes> への移動の際に、 I<old_nodes> 内の相対的な\n"
704 "トポロジー関係を可能な限り維持しようとする。"
705
706 #. type: Plain text
707 #: build/C/man2/migrate_pages.2:69
708 msgid "The I<old_nodes> and I<new_nodes> arguments are pointers to bit masks of node numbers, with up to I<maxnode> bits in each mask.  These masks are maintained as arrays of unsigned I<long> integers (in the last I<long> integer, the bits beyond those specified by I<maxnode> are ignored).  The I<maxnode> argument is the maximum node number in the bit mask plus one (this is the same as in B<mbind>(2), but different from B<select>(2))."
709 msgstr ""
710 "引き数 I<old_nodes> と I<new_nodes> は、最大で I<maxnode> ビットから\n"
711 "構成されるノード番号のビットマスクへのポインタである。\n"
712 "各ビットマスクは符号なし I<long> 整数の配列として管理される\n"
713 "(I<maxnode> で指定された長さを越えた部分のビットは無視される)。\n"
714 "引き数 I<maxnode> は最大ノード番号であり、ビットマスクの長さに 1 を\n"
715 "加えた値となる (これは B<mbind>(2) と同じだが、 B<select>(2) とは違う)。"
716
717 #. type: Plain text
718 #: build/C/man2/migrate_pages.2:83
719 msgid "The I<pid> argument is the ID of the process whose pages are to be moved.  To move pages in another process, the caller must be privileged (B<CAP_SYS_NICE>)  or the real or effective user ID of the calling process must match the real or saved-set user ID of the target process.  If I<pid> is 0, then B<migrate_pages>()  moves pages of the calling process."
720 msgstr ""
721 "引き数 I<pid> は、移動を行うページの所有者のプロセス ID である。\n"
722 "別のプロセスのページを移動するには、呼び出したプロセスが特権\n"
723 "(B<CAP_SYS_NICE>) を持っているか、呼び出したプロセスの実ユーザ ID か\n"
724 "実効ユーザ ID がページ移動の対象プロセスの実ユーザ ID か saved-set \n"
725 "ユーザ ID と一致していなければならない。I<pid> が 0 の場合、\n"
726 "B<migrate_pages>() は呼び出したプロセスのページを移動する。"
727
728 #. type: Plain text
729 #: build/C/man2/migrate_pages.2:88
730 msgid "Pages shared with another process will be moved only if the initiating process has the B<CAP_SYS_NICE> privilege."
731 msgstr ""
732 "別のプロセスと共有しているページは、呼び出したプロセスが\n"
733 "B<CAP_SYS_NICE> 特権を持っている場合にのみ移動される。"
734
735 #. type: Plain text
736 #: build/C/man2/migrate_pages.2:96
737 msgid "On success B<migrate_pages>()  returns the number of pages that could not be moved (i.e., a return of zero means that all pages were successfully moved).  On error, it returns -1, and sets I<errno> to indicate the error."
738 msgstr ""
739 "B<migrate_pages>() は、移動できなかったページ数を返す\n"
740 "(つまり、移動に成功した場合は返り値は 0 となる)。\n"
741 "エラーの場合、 -1 を返し、 I<errno> にエラーを示す値を設定する。"
742
743 #. type: Plain text
744 #: build/C/man2/migrate_pages.2:106
745 msgid "Insufficient privilege (B<CAP_SYS_NICE>)  to move pages of the process specified by I<pid>, or insufficient privilege (B<CAP_SYS_NICE>)  to access the specified target nodes."
746 msgstr ""
747 "I<pid> で指定されたプロセスのページを移動するのに必要な特権\n"
748 "(B<CAP_SYS_NICE>) がなかった。または、指定された対象ノードにアクセス\n"
749 "するのに必要な権限 (B<CAP_SYS_NICE>) がなかった。"
750
751 #. type: TP
752 #: build/C/man2/migrate_pages.2:106 build/C/man2/move_pages.2:189
753 #, no-wrap
754 msgid "B<ESRCH>"
755 msgstr "B<ESRCH>"
756
757 #.  FIXME Document the other errors that can occur for migrate_pages()
758 #. type: Plain text
759 #: build/C/man2/migrate_pages.2:112
760 msgid "No process matching I<pid> could be found."
761 msgstr "プロセス ID が I<pid> のプロセスが見つからなかった。"
762
763 #. type: Plain text
764 #: build/C/man2/migrate_pages.2:116
765 msgid "The B<migrate_pages>()  system call first appeared on Linux in version 2.6.16."
766 msgstr "B<migrate_pages>() システムコールは Linux 2.6.16 で初めて登場した。"
767
768 #. type: Plain text
769 #: build/C/man2/migrate_pages.2:130
770 msgid "Use B<get_mempolicy>(2)  with the B<MPOL_F_MEMS_ALLOWED> flag to obtain the set of nodes that are allowed by the calling process's cpuset.  Note that this information is subject to change at any time by manual or automatic reconfiguration of the cpuset."
771 msgstr ""
772 "呼び出し元プロセスの CPU 集合で許可されているノード集合を取得するには、\n"
773 "B<MPOL_F_MEMS_ALLOWED> フラグを付けて B<get_mempolicy>(2) を使うこと。\n"
774 "この情報は、手動/自動に限らず CPU 集合の再構成によりいつでも\n"
775 "変更されることがある点に注意してほしい。"
776
777 #. type: Plain text
778 #: build/C/man2/migrate_pages.2:142
779 msgid "Use of B<migrate_pages>()  may result in pages whose location (node) violates the memory policy established for the specified addresses (see B<mbind>(2))  and/or the specified process (see B<set_mempolicy>(2)).  That is, memory policy does not constrain the destination nodes used by B<migrate_pages>()."
780 msgstr ""
781 "B<migrate_pages> を使用すると、ページが置かれる場所 (ノード) が、指定\n"
782 "されたアドレスに対して設定されたメモリポリシー (B<mbind>(2) 参照) や\n"
783 "指定されたプロセスに対して設定されたメモリポリシー\n"
784 "(B<set_mempolicy>(2) 参照) に違反する状況になる可能性がある。\n"
785 "すなわち、メモリポリシーによる制約は B<migrate_pages>() による移動先\n"
786 "ノードの選択には適用されないということである。"
787
788 #. type: Plain text
789 #: build/C/man2/migrate_pages.2:148 build/C/man2/move_pages.2:227
790 msgid "The I<E<lt>numaif.hE<gt>> header is not included with glibc, but requires installing I<libnuma-devel> or a similar package."
791 msgstr "ヘッダファイル I<E<lt>numaif.hE<gt>> は glibc には含まれておらず、 I<libnuma-devel> か同様のパッケージをインストールする必要がある。"
792
793 #. type: Plain text
794 #: build/C/man2/migrate_pages.2:158 build/C/man2/move_pages.2:237
795 msgid "B<get_mempolicy>(2), B<mbind>(2), B<set_mempolicy>(2), B<numa>(3), B<numa_maps>(5), B<cpuset>(7), B<numa>(7), B<migratepages>(8), B<numastat>(8)"
796 msgstr "B<get_mempolicy>(2), B<mbind>(2), B<set_mempolicy>(2), B<numa>(3), B<numa_maps>(5), B<cpuset>(7), B<numa>(7), B<migratepages>(8), B<numastat>(8)"
797
798 #. type: Plain text
799 #: build/C/man2/migrate_pages.2:161
800 msgid "I<Documentation/vm/page_migration> in the Linux kernel source tree"
801 msgstr "Linux カーネルソースの I<Documentation/vm/page_migration>"
802
803 #. type: TH
804 #: build/C/man2/move_pages.2:19
805 #, no-wrap
806 msgid "MOVE_PAGES"
807 msgstr "MOVE_PAGES"
808
809 #. type: TH
810 #: build/C/man2/move_pages.2:19
811 #, no-wrap
812 msgid "2010-06-11"
813 msgstr "2010-06-11"
814
815 #. type: Plain text
816 #: build/C/man2/move_pages.2:22
817 msgid "move_pages - move individual pages of a process to another node"
818 msgstr "move_pages - あるプロセスの個々のページを別のノードに移動する"
819
820 #. type: Plain text
821 #: build/C/man2/move_pages.2:28
822 #, no-wrap
823 msgid ""
824 "B<long move_pages(int >I<pid>B<, unsigned long count, void **>I<pages>B<,>\n"
825 "B<                const int *>I<nodes>B<, int *>I<status>B<, int >I<flags>B<);>\n"
826 msgstr ""
827 "B<long move_pages(int >I<pid>B<, unsigned long count, void **>I<pages>B<,>\n"
828 "B<                const int *>I<nodes>B<, int *>I<status>B<, int >I<flags>B<);>\n"
829
830 #. type: Plain text
831 #: build/C/man2/move_pages.2:44
832 msgid "B<move_pages>()  moves the specified I<pages> of the process I<pid> to the memory nodes specified by I<nodes>.  The result of the move is reflected in I<status>.  The I<flags> indicate constraints on the pages to be moved."
833 msgstr "B<move_pages>()  は、プロセス I<pid> の指定されたページ I<pages> を I<nodes> で指定されたメモリノードに移動する。 移動の結果は I<status> に反映される。 I<flags> では移動されるページに関する制約を指定する。"
834
835 #. type: Plain text
836 #: build/C/man2/move_pages.2:57
837 msgid "I<pid> is the ID of the process in which pages are to be moved.  To move pages in another process, the caller must be privileged (B<CAP_SYS_NICE>)  or the real or effective user ID of the calling process must match the real or saved-set user ID of the target process.  If I<pid> is 0, then B<move_pages>()  moves pages of the calling process."
838 msgstr "I<pid> は、移動されるページが属するプロセスの ID である。 別のプロセスのページを移動するためには、呼び出し元が特権 (B<CAP_SYS_NICE>)  を持っているか、呼び出したプロセスの実ユーザ ID か実効ユーザ ID が ページ移動対象のプロセスの実ユーザ ID か保存 set-user-ID のどちらかと 一致しなければならない。 I<pid> が 0 の場合、 B<move_pages>()  は呼び出したプロセスのページを移動する。"
839
840 #. type: Plain text
841 #: build/C/man2/move_pages.2:65
842 msgid "I<count> is the number of pages to move.  It defines the size of the three arrays I<pages>, I<nodes>, and I<status>."
843 msgstr "I<count> は移動するページ数である。 I<count> により I<pages>, I<nodes>, I<status> の 3 つの配列の大きさが定義される。"
844
845 #.  FIXME Describe the result if pointers in the 'pages' array are
846 #.  not aligned to page boundaries
847 #. type: Plain text
848 #: build/C/man2/move_pages.2:73
849 msgid "I<pages> is an array of pointers to the pages that should be moved.  These are pointers that should be aligned to page boundaries.  Addresses are specified as seen by the process specified by I<pid>."
850 msgstr "I<pages> は、移動すべきページへのポインタの配列であり、 各ポインタはページ境界に揃えた値を指定すべきである。 I<pid> で指定されたプロセスで見えるアドレスを指定する。"
851
852 #. type: Plain text
853 #: build/C/man2/move_pages.2:86
854 msgid "I<nodes> is an array of integers that specify the desired location for each page.  Each element in the array is a node number.  I<nodes> can also be NULL, in which case B<move_pages>()  does not move any pages but instead will return the node where each page currently resides, in the I<status> array.  Obtaining the status of each page may be necessary to determine pages that need to be moved."
855 msgstr "I<nodes> は、各ページの希望の移動場所を示す整数値の配列であり、 配列の各要素はノード番号である。 I<nodes> には NULL を指定することもでき、この場合には B<move_pages>()  はどのページも移動しないが、各ページが現在配置されているノードを配列 I<status> に格納して返す。どのページを移動する必要があるかを判断するために、 各ページの状態の取得が必要な場合もある。"
856
857 #. type: Plain text
858 #: build/C/man2/move_pages.2:92
859 msgid "I<status> is an array of integers that return the status of each page.  The array contains valid values only if B<move_pages>()  did not return an error."
860 msgstr "I<status> は、各ページの状態を表す整数値の配列である。 この配列に有効な値が格納されるのは、 B<move_pages>()  がエラーを返さなかった場合だけである。"
861
862 #. type: Plain text
863 #: build/C/man2/move_pages.2:104
864 msgid "I<flags> specify what types of pages to move.  B<MPOL_MF_MOVE> means that only pages that are in exclusive use by the process are to be moved.  B<MPOL_MF_MOVE_ALL> means that pages shared between multiple processes can also be moved.  The process must be privileged (B<CAP_SYS_NICE>)  to use B<MPOL_MF_MOVE_ALL>."
865 msgstr "I<flags> には、どの種類のページを移動するかを指定する。 B<MPOL_MF_MOVE> は、そのプロセスが排他的に使用しているページだけを移動することを意味する。 B<MPOL_MF_MOVE_ALL> は、複数のプロセス間で共有されているページも移動できることを意味する。 B<MPOL_MF_MOVE_ALL> を使用するためには、そのプロセスが特権 (B<CAP_SYS_NICE>)  を持っていなければならない。"
866
867 #. type: SS
868 #: build/C/man2/move_pages.2:104
869 #, no-wrap
870 msgid "Page states in the status array"
871 msgstr "status 配列に格納されるページ状態"
872
873 #. type: Plain text
874 #: build/C/man2/move_pages.2:108
875 msgid "The following values can be returned in each element of the I<status> array."
876 msgstr "I<status> 配列の各要素として、以下の値が返される。"
877
878 #. type: TP
879 #: build/C/man2/move_pages.2:108
880 #, no-wrap
881 msgid "B<0..MAX_NUMNODES>"
882 msgstr "B<0..MAX_NUMNODES>"
883
884 #. type: Plain text
885 #: build/C/man2/move_pages.2:111
886 msgid "Identifies the node on which the page resides."
887 msgstr "そのページが配置されているノードを示す。"
888
889 #. type: TP
890 #: build/C/man2/move_pages.2:111
891 #, no-wrap
892 msgid "B<-EACCES>"
893 msgstr "B<-EACCES>"
894
895 #. type: Plain text
896 #: build/C/man2/move_pages.2:116
897 msgid "The page is mapped by multiple processes and can be moved only if B<MPOL_MF_MOVE_ALL> is specified."
898 msgstr "そのページは複数のプロセスによりマップされており、 B<MPOL_MF_MOVE_ALL> が指定された場合にのみ移動できる。"
899
900 #. type: TP
901 #: build/C/man2/move_pages.2:116
902 #, no-wrap
903 msgid "B<-EBUSY>"
904 msgstr "B<-EBUSY>"
905
906 #. type: Plain text
907 #: build/C/man2/move_pages.2:122
908 msgid "The page is currently busy and cannot be moved.  Try again later.  This occurs if a page is undergoing I/O or another kernel subsystem is holding a reference to the page."
909 msgstr "そのページが現在ビジーであり、移動できない。後でもう一度試すこと。 この状況は、ページが I/O の実行中であったり、カーネルの他のサブシステム がそのページへの参照を保持している場合に発生する。"
910
911 #. type: TP
912 #: build/C/man2/move_pages.2:122
913 #, no-wrap
914 msgid "B<-EFAULT>"
915 msgstr "B<-EFAULT>"
916
917 #. type: Plain text
918 #: build/C/man2/move_pages.2:125
919 msgid "This is a zero page or the memory area is not mapped by the process."
920 msgstr "そのページが zero page であるか、そのメモリ領域はそのプロセスにより マップされていない。"
921
922 #. type: TP
923 #: build/C/man2/move_pages.2:125
924 #, no-wrap
925 msgid "B<-EIO>"
926 msgstr "B<-EIO>"
927
928 #. type: Plain text
929 #: build/C/man2/move_pages.2:132
930 msgid "Unable to write back a page.  The page has to be written back in order to move it since the page is dirty and the filesystem does not provide a migration function that would allow the move of dirty pages."
931 msgstr "ページを書き戻す (write back) ことができない。 ページが dirty で、ファイルシステムが dirty なページを移動できるような 移動機能を提供していないため、そのページを移動するためにはページを 書き戻さなければならない。"
932
933 #. type: TP
934 #: build/C/man2/move_pages.2:132
935 #, no-wrap
936 msgid "B<-EINVAL>"
937 msgstr "B<-EINVAL>"
938
939 #. type: Plain text
940 #: build/C/man2/move_pages.2:137
941 msgid "A dirty page cannot be moved.  The filesystem does not provide a migration function and has no ability to write back pages."
942 msgstr "dirty なページを移動できない。 ファイルシステムが dirty なページを移動するための機能を提供しておらず、 ページを書き戻す能力もない。"
943
944 #. type: TP
945 #: build/C/man2/move_pages.2:137
946 #, no-wrap
947 msgid "B<-ENOENT>"
948 msgstr "B<-ENOENT>"
949
950 #. type: Plain text
951 #: build/C/man2/move_pages.2:140
952 msgid "The page is not present."
953 msgstr "ページが存在しない。"
954
955 #. type: TP
956 #: build/C/man2/move_pages.2:140
957 #, no-wrap
958 msgid "B<-ENOMEM>"
959 msgstr "B<-ENOMEM>"
960
961 #. type: Plain text
962 #: build/C/man2/move_pages.2:143
963 msgid "Unable to allocate memory on target node."
964 msgstr "移動先のノードでメモリを確保することができない。"
965
966 #.  FIXME . Is the following quite true: does the wrapper in numactl
967 #.  do the right thing?
968 #. type: Plain text
969 #: build/C/man2/move_pages.2:152
970 msgid "On success B<move_pages>()  returns zero.  On error, it returns -1, and sets I<errno> to indicate the error."
971 msgstr "成功すると、 B<move_pages>()  は 0 を返す。 エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
972
973 #. type: TP
974 #: build/C/man2/move_pages.2:153
975 #, no-wrap
976 msgid "B<E2BIG>"
977 msgstr "B<E2BIG>"
978
979 #. type: Plain text
980 #: build/C/man2/move_pages.2:156
981 msgid "Too many pages to move."
982 msgstr "移動すべきページが多過ぎる。"
983
984 #. type: TP
985 #: build/C/man2/move_pages.2:156
986 #, no-wrap
987 msgid "B<EACCES>"
988 msgstr "B<EACCES>"
989
990 #.  FIXME Clarify "current cpuset" in the description of the EACCESS error.
991 #.  Is that the cpuset of the caller or the target?
992 #. type: Plain text
993 #: build/C/man2/move_pages.2:161
994 msgid "One of the target nodes is not allowed by the current cpuset."
995 msgstr "移動先のノードのいずれかが現在の CPU 集合では許可されていない。"
996
997 #. type: Plain text
998 #: build/C/man2/move_pages.2:164
999 msgid "Parameter array could not be accessed."
1000 msgstr "パラメータ配列にアクセスできなかった。"
1001
1002 #. type: Plain text
1003 #: build/C/man2/move_pages.2:171
1004 msgid "Flags other than B<MPOL_MF_MOVE> and B<MPOL_MF_MOVE_ALL> was specified or an attempt was made to migrate pages of a kernel thread."
1005 msgstr "I<flags> に B<MPOL_MF_MOVE> でも B<MPOL_MF_MOVE_ALL> でもない値が指定されたか、カーネルスレッドのページを移動させようとした。"
1006
1007 #. type: TP
1008 #: build/C/man2/move_pages.2:171
1009 #, no-wrap
1010 msgid "B<ENODEV>"
1011 msgstr "B<ENODEV>"
1012
1013 #. type: Plain text
1014 #: build/C/man2/move_pages.2:174
1015 msgid "One of the target nodes is not online."
1016 msgstr "移動先のノードのいずれかがオンラインでない。"
1017
1018 #. type: TP
1019 #: build/C/man2/move_pages.2:174
1020 #, no-wrap
1021 msgid "B<ENOENT>"
1022 msgstr "B<ENOENT>"
1023
1024 #. type: Plain text
1025 #: build/C/man2/move_pages.2:180
1026 msgid "No pages were found that require moving.  All pages are either already on the target node, not present, had an invalid address or could not be moved because they were mapped by multiple processes."
1027 msgstr "移動が必要なページが全く見つからなかった。 指定された全てのページが、すでに移動先のノードに存在するか、存在しないか、 無効なアドレスであったか、複数のプロセスによってマップされていて移動でき なかったか、のいずれかであった。"
1028
1029 #. type: Plain text
1030 #: build/C/man2/move_pages.2:189
1031 msgid "The caller specified B<MPOL_MF_MOVE_ALL> without sufficient privileges (B<CAP_SYS_NICE>).  Or, the caller attempted to move pages of a process belonging to another user but did not have privilege to do so (B<CAP_SYS_NICE>)."
1032 msgstr "呼び出し元は B<MPOL_MF_MOVE_ALL> を指定したが、十分な特権 (B<CAP_SYS_NICE>)  を持っていない。 または、呼び出し元が他のユーザに属するプロセスのページを移動しようとしたが、 それを行えるだけの特権 (B<CAP_SYS_NICE>)  を持っていなかった。"
1033
1034 #. type: Plain text
1035 #: build/C/man2/move_pages.2:192
1036 msgid "Process does not exist."
1037 msgstr "プロセスが存在しない。"
1038
1039 #. type: Plain text
1040 #: build/C/man2/move_pages.2:195
1041 msgid "B<move_pages>()  first appeared on Linux in version 2.6.18."
1042 msgstr "B<move_pages>()  は、バージョン 2.6.18 で初めて Linux に登場した。"
1043
1044 #.  FIXME Clarify "current cpuset".  Is that the cpuset of the caller
1045 #.  or the target?
1046 #. type: Plain text
1047 #: build/C/man2/move_pages.2:211
1048 msgid "Use B<get_mempolicy>(2)  with the B<MPOL_F_MEMS_ALLOWED> flag to obtain the set of nodes that are allowed by the current cpuset.  Note that this information is subject to change at any time by manual or automatic reconfiguration of the cpuset."
1049 msgstr "現在の CPU 集合で許可されているノードの集合を取得するには、フラグ B<MPOL_F_MEMS_ALLOWED> を指定して B<get_mempolicy>(2)  を使用すればよい。 取得した情報は、CPU 集合の手動または自動での再構成により いつ何時変化してしまうか分からない。"
1050
1051 #. type: Plain text
1052 #: build/C/man2/move_pages.2:221
1053 msgid "Use of this function may result in pages whose location (node) violates the memory policy established for the specified addresses (See B<mbind>(2))  and/or the specified process (See B<set_mempolicy>(2)).  That is, memory policy does not constrain the destination nodes used by B<move_pages>()."
1054 msgstr "この関数を使用すると、ページの位置 (ノード) が 指定されたアドレスに対して設定されたメモリポリシー (B<mbind>(2)  参照) や指定されたプロセスに対して設定されたメモリポリシー (B<set_mempolicy>(2)  参照) に違反してしまう可能性がある。 つまり、メモリポリシーは B<move_pages>()  で使われる移動先ノードを制限しないということである。"
1055
1056 #. type: TH
1057 #: build/C/man7/numa.7:29
1058 #, no-wrap
1059 msgid "NUMA"
1060 msgstr "NUMA"
1061
1062 #. type: TH
1063 #: build/C/man7/numa.7:29
1064 #, no-wrap
1065 msgid "2012-08-05"
1066 msgstr "2012-08-05"
1067
1068 #. type: Plain text
1069 #: build/C/man7/numa.7:32
1070 msgid "numa - overview of Non-Uniform Memory Architecture"
1071 msgstr "numa - 非対称型メモリアーキテクチャの概要"
1072
1073 #. type: Plain text
1074 #: build/C/man7/numa.7:43
1075 msgid "Non-Uniform Memory Access (NUMA) refers to multiprocessor systems whose memory is divided into multiple memory nodes.  The access time of a memory node depends on the relative locations of the accessing CPU and the accessed node.  (This contrasts with a symmetric multiprocessor system, where the access time for all of the memory is the same for all CPUs.)  Normally, each CPU on a NUMA system has a local memory node whose contents can be accessed faster than the memory in the node local to another CPU or the memory on a bus shared by all CPUs."
1076 msgstr ""
1077 "非対称型メモリアクセス (Non-Uniform Memory Access; NUMA) は、\n"
1078 "メモリが複数のメモリノードに分割されているマルチプロセッサシステム\n"
1079 "のことである。メモリノードへのアクセス時間は、アクセス元の CPU と\n"
1080 "アクセス先のノードの相対的な位置関係に依存する\n"
1081 "(これに対し、対称型マルチプロセッサシステムでは、どの CPU から\n"
1082 "どのメモリへのアクセス時間も同じである)。\n"
1083 "通常は、 NUMA システムの各 CPU にはローカルのメモリノードがあり、\n"
1084 "そのメモリノードには、他の CPU のローカルノードや全ての CPU で\n"
1085 "共有されるバス上のメモリよりも早くアクセスすることができる。"
1086
1087 #. type: SS
1088 #: build/C/man7/numa.7:43
1089 #, no-wrap
1090 msgid "NUMA system calls"
1091 msgstr "NUMA システムコール"
1092
1093 #. type: Plain text
1094 #: build/C/man7/numa.7:54
1095 msgid "The Linux kernel implements the following NUMA-related system calls: B<get_mempolicy>(2), B<mbind>(2), B<migrate_pages>(2), B<move_pages>(2), and B<set_mempolicy>(2).  However, applications should normally use the interface provided by I<libnuma>; see \"Library Support\" below."
1096 msgstr ""
1097 "Linux カーネルには、次に示す NUMA 関連のシステムコールが実装されている:\n"
1098 "B<get_mempolicy>(2), B<mbind>(2), B<migrate_pages>(2),\n"
1099 "B<move_pages>(2), B<set_mempolicy>(2).\n"
1100 "ただし、アプリケーションは通常は I<libnuma> が提供するインターフェース\n"
1101 "を使用すべきである。下記の「ライブラリによるサポート」を参照。"
1102
1103 #. type: SS
1104 #: build/C/man7/numa.7:54
1105 #, no-wrap
1106 msgid "/proc/[number]/numa_maps (since Linux 2.6.14)"
1107 msgstr "/proc/[number]/numa_maps (Linux 2.6.14 以降)"
1108
1109 #.  See also Changelog-2.6.14
1110 #. type: Plain text
1111 #: build/C/man7/numa.7:58
1112 msgid "This file displays information about a process's NUMA memory policy and allocation."
1113 msgstr ""
1114 "このファイルは、プロセスの NUMA メモリポリシーと割り当てに関する\n"
1115 "情報を表示する。"
1116
1117 #. type: Plain text
1118 #: build/C/man7/numa.7:62
1119 msgid "Each line contains information about a memory range used by the process, displaying\\(emamong other information\\(emthe effective memory policy for that memory range and on which nodes the pages have been allocated."
1120 msgstr "各行に、そのプロセスが使用しているメモリ領域に関する情報が表示される。その他の情報 \\(em そのメモリ領域に適用されているメモリポリシーや、そのページがどのノード上に割り当てられているか、など \\(em もあわせて表示される。"
1121
1122 #. type: Plain text
1123 #: build/C/man7/numa.7:70
1124 msgid "I<numa_maps> is a read-only file.  When I</proc/E<lt>pidE<gt>/numa_maps> is read, the kernel will scan the virtual address space of the process and report how memory is used.  One line is displayed for each unique memory range of the process."
1125 msgstr ""
1126 "I<numa_maps> は読み出し専用のファイルである。 I</proc/E<lt>pidE<gt>/numa_maps> から読み出しが行われると、 カーネルはそのプロセスの仮想アドレス空間をスキャンし、 メモリの使用状況を報告する。\n"
1127 "プロセスのメモリ領域の情報が 1 行に 1 領域で表示される。"
1128
1129 #. type: Plain text
1130 #: build/C/man7/numa.7:77
1131 msgid "The first field of each line shows the starting address of the memory range.  This field allows a correlation with the contents of the I</proc/E<lt>pidE<gt>/maps> file, which contains the end address of the range and other information, such as the access permissions and sharing."
1132 msgstr "各行の最初のフィールドはメモリ領域の開始アドレスを示す。 このフィールドは I</proc/E<lt>pidE<gt>/maps> ファイルの内容と対応している。 I</proc/E<lt>pidE<gt>/maps> には、メモリ領域の末尾のアドレスや、アクセス許可や共有といった他の情報も含まれる。"
1133
1134 #. type: Plain text
1135 #: build/C/man7/numa.7:85
1136 msgid "The second field shows the memory policy currently in effect for the memory range.  Note that the effective policy is not necessarily the policy installed by the process for that memory range.  Specifically, if the process installed a \"default\" policy for that range, the effective policy for that range will be the process policy, which may or may not be \"default\"."
1137 msgstr ""
1138 "2 番目のフィールドは、 そのメモリ領域に現在適用されているメモリポリシーを示す。 適用されているポリシーは、 必ずしもそのプロセスがこのメモリ領域に対して設定したポリシーとは限らない点に注意すること。\n"
1139 "特に、 プロセスがその領域に対して「デフォルト」ポリシーを設定した場合、その領域に適用されるポリシーはプロセスのポリシーとなり、それが「デフォルト」ポリシーとなる場合もあればそうでない場合もある。"
1140
1141 #. type: Plain text
1142 #: build/C/man7/numa.7:88
1143 msgid "The rest of the line contains information about the pages allocated in the memory range, as follows:"
1144 msgstr "行の残りの部分には、そのメモリ領域に割り当てられたページに関する情報が入る。以下に詳細を示す。"
1145
1146 #. type: TP
1147 #: build/C/man7/numa.7:88
1148 #, no-wrap
1149 msgid "I<NE<lt>nodeE<gt>=E<lt>nr_pagesE<gt>>"
1150 msgstr "I<NE<lt>nodeE<gt>=E<lt>nr_pagesE<gt>>"
1151
1152 #. type: Plain text
1153 #: build/C/man7/numa.7:101
1154 msgid "The number of pages allocated on I<E<lt>nodeE<gt>>.  I<E<lt>nr_pagesE<gt>> includes only pages currently mapped by the process.  Page migration and memory reclaim may have temporarily unmapped pages associated with this memory range.  These pages may show up again only after the process has attempted to reference them.  If the memory range represents a shared memory area or file mapping, other processes may currently have additional pages mapped in a corresponding memory range."
1155 msgstr "I<E<lt>nodeE<gt>> に割り当てられているページ数。 I<E<lt>nr_pagesE<gt>> には、 そのプロセスが現在マッピングしているページだけが含まれる。 ページの移動やメモリの再利用により、 このメモリ領域に関連付けられているが、 一時的にマッピングされていないページが存在する場合がある。 プロセスがそれらのページを参照しようとした後には、 これらのページは再び現れる可能性がある。 メモリ領域が共有メモリやファイルマッピングの場合には、 そのメモリ領域内に別のページを他のプロセスがマッピングしている場合もある。"
1156
1157 #. type: TP
1158 #: build/C/man7/numa.7:101
1159 #, no-wrap
1160 msgid "I<file=E<lt>filenameE<gt>>"
1161 msgstr "I<file=E<lt>filenameE<gt>>"
1162
1163 #. type: Plain text
1164 #: build/C/man7/numa.7:107
1165 msgid "The file backing the memory range.  If the file is mapped as private, write accesses may have generated COW (Copy-On-Write) pages in this memory range.  These pages are displayed as anonymous pages."
1166 msgstr "そのメモリ領域に関連付けられているファイル。 ファイルがプライベート (非公開) でマッピングされている場合、 書き込みアクセスがあると、 このメモリ領域に書き込み時コピー (Copy-On-Write) ページが生成されることがある。 これらのページは無名ページ (anonymous page) として表示される。"
1167
1168 #. type: TP
1169 #: build/C/man7/numa.7:107
1170 #, no-wrap
1171 msgid "I<heap>"
1172 msgstr "I<heap>"
1173
1174 #. type: Plain text
1175 #: build/C/man7/numa.7:110
1176 msgid "Memory range is used for the heap."
1177 msgstr "ヒープに使用されているメモリ範囲。"
1178
1179 #. type: TP
1180 #: build/C/man7/numa.7:110
1181 #, no-wrap
1182 msgid "I<stack>"
1183 msgstr "I<stack>"
1184
1185 #. type: Plain text
1186 #: build/C/man7/numa.7:113
1187 msgid "Memory range is used for the stack."
1188 msgstr "スタックに使用されているメモリ範囲。"
1189
1190 #. type: TP
1191 #: build/C/man7/numa.7:113
1192 #, no-wrap
1193 msgid "I<huge>"
1194 msgstr "I<huge>"
1195
1196 #. type: Plain text
1197 #: build/C/man7/numa.7:117
1198 msgid "Huge memory range.  The page counts shown are huge pages and not regular sized pages."
1199 msgstr ""
1200 "ヒュージメモリの範囲。表示されるページ数は、\n"
1201 "通常の大きさのページではなく、ヒュージページの数である。"
1202
1203 #. type: TP
1204 #: build/C/man7/numa.7:117
1205 #, no-wrap
1206 msgid "I<anon=E<lt>pagesE<gt>>"
1207 msgstr "I<anon=E<lt>pagesE<gt>>"
1208
1209 #. type: Plain text
1210 #: build/C/man7/numa.7:120
1211 msgid "The number of anonymous page in the range."
1212 msgstr "メモリ範囲内の無名ページ (anonymous page) の数。"
1213
1214 #. type: TP
1215 #: build/C/man7/numa.7:120
1216 #, no-wrap
1217 msgid "I<dirty=E<lt>pagesE<gt>>"
1218 msgstr "I<dirty=E<lt>pagesE<gt>>"
1219
1220 #. type: Plain text
1221 #: build/C/man7/numa.7:123
1222 msgid "Number of dirty pages."
1223 msgstr "dirty (変更された) ページの数。"
1224
1225 #. type: TP
1226 #: build/C/man7/numa.7:123
1227 #, no-wrap
1228 msgid "I<mapped=E<lt>pagesE<gt>>"
1229 msgstr "I<mapped=E<lt>pagesE<gt>>"
1230
1231 #. type: Plain text
1232 #: build/C/man7/numa.7:130
1233 msgid "Total number of mapped pages, if different from I<dirty> and I<anon> pages."
1234 msgstr "マッピングされているページ数。 I<dirty> および I<anon> のページ数と異なる値の場合に表示される。"
1235
1236 #. type: TP
1237 #: build/C/man7/numa.7:130
1238 #, no-wrap
1239 msgid "I<mapmax=E<lt>countE<gt>>"
1240 msgstr "I<mapmax=E<lt>countE<gt>>"
1241
1242 #. type: Plain text
1243 #: build/C/man7/numa.7:136
1244 msgid "Maximum mapcount (number of processes mapping a single page) encountered during the scan.  This may be used as an indicator of the degree of sharing occurring in a given memory range."
1245 msgstr "スキャン中に検出した mapcount (一つのページをマッピングしているプロセス数) の最大値。 この値は、 そのメモリ領域でどの程度の共有が行われているかの指標として使うことができる。"
1246
1247 #. type: TP
1248 #: build/C/man7/numa.7:136
1249 #, no-wrap
1250 msgid "I<swapcache=E<lt>countE<gt>>"
1251 msgstr "I<swapcache=E<lt>countE<gt>>"
1252
1253 #. type: Plain text
1254 #: build/C/man7/numa.7:139
1255 msgid "Number of pages that have an associated entry on a swap device."
1256 msgstr "スワップデバイスに対応するエントリーが存在するページ数。"
1257
1258 #. type: TP
1259 #: build/C/man7/numa.7:139
1260 #, no-wrap
1261 msgid "I<active=E<lt>pagesE<gt>>"
1262 msgstr "I<active=E<lt>pagesE<gt>>"
1263
1264 #. type: Plain text
1265 #: build/C/man7/numa.7:145
1266 msgid "The number of pages on the active list.  This field is shown only if different from the number of pages in this range.  This means that some inactive pages exist in the memory range that may be removed from memory by the swapper soon."
1267 msgstr "アクティブリストに入っているページ数。 このフィールドが表示されるのは、 値がこのメモリ領域のページ数と異なる場合だけである。このフィールドが表示されるということは、 このメモリ領域に、まもなくスワッパ (swapper) によりこの領域から削除される可能性がある inactive なページが存在することを意味する。"
1268
1269 #. type: TP
1270 #: build/C/man7/numa.7:145
1271 #, no-wrap
1272 msgid "I<writeback=E<lt>pagesE<gt>>"
1273 msgstr "I<writeback=E<lt>pagesE<gt>>"
1274
1275 #. type: Plain text
1276 #: build/C/man7/numa.7:148
1277 msgid "Number of pages that are currently being written out to disk."
1278 msgstr "現在ディスクに書き出されているページ数。"
1279
1280 #. type: Plain text
1281 #: build/C/man7/numa.7:150
1282 msgid "No standards govern NUMA interfaces."
1283 msgstr "NUMA インターフェースについて規定している標準はない。"
1284
1285 #. type: Plain text
1286 #: build/C/man7/numa.7:157
1287 msgid "The Linux NUMA system calls and I</proc> interface are available only if the kernel was configured and built with the B<CONFIG_NUMA> option."
1288 msgstr ""
1289 "Linux の NUMA システムコールと I</proc> インターフェースは、カーネルが\n"
1290 "設定オプション B<CONFIG_NUMA> を有効にして作成されている場合のみ、利用\n"
1291 "可能である。"
1292
1293 #. type: SS
1294 #: build/C/man7/numa.7:157
1295 #, no-wrap
1296 msgid "Library support"
1297 msgstr "ライブラリによるサポート"
1298
1299 #. type: Plain text
1300 #: build/C/man7/numa.7:166
1301 msgid "Link with I<-lnuma> to get the system call definitions.  I<libnuma> and the required I<E<lt>numaif.hE<gt>> header are available in the I<numactl> package."
1302 msgstr ""
1303 "システムコールの定義を得るには I<-lnuma> でリンクすること。\n"
1304 "I<libnuma> と必要なヘッダファイル I<E<lt>numaif.hE<gt>> は\n"
1305 "I<numactl> パッケージで提供されている。"
1306
1307 #. type: Plain text
1308 #: build/C/man7/numa.7:183
1309 msgid "However, applications should not use these system calls directly.  Instead, the higher level interface provided by the B<numa>(3)  functions in the I<numactl> package is recommended.  The I<numactl> package is available at E<.UR ftp://oss.sgi.com\\:/www\\:/projects\\:/libnuma\\:/download/> E<.UE .> The package is also included in some Linux distributions.  Some distributions include the development library and header in the separate I<numactl-devel> package."
1310 msgstr ""
1311 "ただし、アプリケーションはこれらのシステムコールを直接利用すべきでない。\n"
1312 "推奨される方法は、I<numactl> パッケージの B<numa>(3) の関数群が提供する\n"
1313 "高レベルインターフェースの利用である。 I<numactl> パッケージは\n"
1314 "E<.UR ftp://oss.sgi.com\\:/www\\:/projects\\:/libnuma\\:/download/> E<.UE> で入手できる。\n"
1315 "このパッケージが収録されている Linux ディストリビューションもある。\n"
1316 "ディストリビューションによっては、開発用のライブラリとヘッダファイルは\n"
1317 "別パッケージ I<numactl-devel> で提供されている。"
1318
1319 #. type: Plain text
1320 #: build/C/man7/numa.7:191
1321 msgid "B<get_mempolicy>(2), B<mbind>(2), B<move_pages>(2), B<set_mempolicy>(2), B<numa>(3), B<cpuset>(7), B<numactl>(8)"
1322 msgstr "B<get_mempolicy>(2), B<mbind>(2), B<move_pages>(2), B<set_mempolicy>(2), B<numa>(3), B<cpuset>(7), B<numactl>(8)"
1323
1324 #. type: TH
1325 #: build/C/man2/set_mempolicy.2:27
1326 #, no-wrap
1327 msgid "SET_MEMPOLICY"
1328 msgstr "SET_MEMPOLICY"
1329
1330 #. type: TH
1331 #: build/C/man2/set_mempolicy.2:27
1332 #, no-wrap
1333 msgid "2014-05-28"
1334 msgstr "2014-05-28"
1335
1336 #. type: Plain text
1337 #: build/C/man2/set_mempolicy.2:30
1338 msgid "set_mempolicy - set default NUMA memory policy for a process and its children"
1339 msgstr "set_mempolicy - プロセスとその子プロセスの NUMA メモリの デフォルトポリシーを設定する"
1340
1341 #. type: Plain text
1342 #: build/C/man2/set_mempolicy.2:36
1343 #, no-wrap
1344 msgid ""
1345 "B<long set_mempolicy(int >I<mode>B<, const unsigned long *>I<nodemask>B<,>\n"
1346 "B<                   unsigned long >I<maxnode>B<);>\n"
1347 msgstr ""
1348 "B<long set_mempolicy(int >I<mode>B<, const unsigned long *>I<nodemask>B<,>\n"
1349 "B<                   unsigned long >I<maxnode>B<);>\n"
1350
1351 #. type: Plain text
1352 #: build/C/man2/set_mempolicy.2:49
1353 msgid "B<set_mempolicy>()  sets the NUMA memory policy of the calling process, which consists of a policy mode and zero or more nodes, to the values specified by the I<mode>, I<nodemask> and I<maxnode> arguments."
1354 msgstr "B<set_mempolicy>()  は、呼び出し元プロセスの NUMA ポリシーを I<policy> に設定する。 NUMA ポリシーはポリシーモードと 0 個以上のノードから構成され、 設定内容は引き数 I<mode>, I<nodemask>, I<maxnode> により指定される。"
1355
1356 #. type: Plain text
1357 #: build/C/man2/set_mempolicy.2:75
1358 msgid "This system call defines the default policy for the process.  The process policy governs allocation of pages in the process's address space outside of memory ranges controlled by a more specific policy set by B<mbind>(2).  The process default policy also controls allocation of any pages for memory-mapped files mapped using the B<mmap>(2)  call with the B<MAP_PRIVATE> flag and that are only read [loaded] from by the process and of memory-mapped files mapped using the B<mmap>(2)  call with the B<MAP_SHARED> flag, regardless of the access type.  The policy is applied only when a new page is allocated for the process.  For anonymous memory this is when the page is first touched by the application."
1359 msgstr "B<set_mempolicy>()  は、プロセスのデフォルトポリシーを定める。 プロセスのポリシーは、 B<mbind>(2)  で設定される特定のポリシーにより制御されるメモリ領域以外の プロセスのアドレス空間におけるページの割り当てに適用される。 プロセスのデフォルトポリシーは、 B<MAP_PRIVATE> フラグを指定した B<mmap>(2)  を使ってマップされたメモリマップ・ファイルに対する読み出し専用 (ロードされるだけ) のページの割り当てにも適用される。 また、 B<MAP_SHARED> フラグを指定した B<mmap>(2)  を使ってマップされたメモリマップ・ファイルに対するページの割り当てにも 適用される (この場合はページのアクセス種別に関わらず適用される) 。 設定したポリシーは、プロセスに新規のページが割り当てられるときにのみ 適用される。無名メモリ (anonymous memory) の場合、新規ページの割り当ては アプリケーションが初めてページにアクセスした際に行われる。"
1360
1361 #. type: Plain text
1362 #: build/C/man2/set_mempolicy.2:89
1363 msgid "The I<mode> argument must specify one of B<MPOL_DEFAULT>, B<MPOL_BIND>, B<MPOL_INTERLEAVE>, or B<MPOL_PREFERRED>.  All modes except B<MPOL_DEFAULT> require the caller to specify via the I<nodemask> argument one or more nodes."
1364 msgstr "I<mode> 引き数には B<MPOL_DEFAULT>, B<MPOL_BIND>, B<MPOL_INTERLEAVE>, B<MPOL_PREFERRED> のいずれか一つを指定してしなければならない。 B<MPOL_DEFAULT> 以外のポリシーの場合、呼び出し元は I<nodemask> 引き数で一つ以上のノードを指定する必要がある。"
1365
1366 #. type: Plain text
1367 #: build/C/man2/set_mempolicy.2:97
1368 msgid "The I<mode> argument may also include an optional I<mode flag>.  The supported I<mode flags> are:"
1369 msgstr "I<mode> 引き数には、追加で I<モードフラグ> を含めることもできる。 サポートされている I<モードフラグ> は以下の通りである。"
1370
1371 #. type: TP
1372 #: build/C/man2/set_mempolicy.2:97
1373 #, no-wrap
1374 msgid "B<MPOL_F_STATIC_NODES> (since Linux 2.6.26)"
1375 msgstr "B<MPOL_F_STATIC_NODES> (Linux 2.6.26 以降)"
1376
1377 #. type: Plain text
1378 #: build/C/man2/set_mempolicy.2:107
1379 msgid "A nonempty I<nodemask> specifies physical node ids.  Linux will not remap the I<nodemask> when the process moves to a different cpuset context, nor when the set of nodes allowed by the process's current cpuset context changes."
1380 msgstr "空でない I<nodemask> は、物理ノード ID である。 Linux では、そのプロセスが異なる CPU 集合コンテキスト (cpuset context)  に移動した場合でも、そのプロセスの現在の CPU 集合コンテキストで 許可されているノード集合が変化した場合でも、 I<nodemask> をマッピングし直すことはない。"
1381
1382 #. type: TP
1383 #: build/C/man2/set_mempolicy.2:107
1384 #, no-wrap
1385 msgid "B<MPOL_F_RELATIVE_NODES> (since Linux 2.6.26)"
1386 msgstr "B<MPOL_F_RELATIVE_NODES> (Linux 2.6.26 以降)"
1387
1388 #. type: Plain text
1389 #: build/C/man2/set_mempolicy.2:133
1390 msgid "I<nodemask> points to a bit mask of node IDs that contains up to I<maxnode> bits.  The bit mask size is rounded to the next multiple of I<sizeof(unsigned long)>, but the kernel will use bits only up to I<maxnode>.  A NULL value of I<nodemask> or a I<maxnode> value of zero specifies the empty set of nodes.  If the value of I<maxnode> is zero, the I<nodemask> argument is ignored."
1391 msgstr "I<nodemask> は、最大で I<maxnode> ビットから構成されるノード ID のビットマスクを指す。 ビットマスクの大きさは、直近の I<sizeof(unsigned long)> の倍数に切り上げられるが、カーネルが使用するのは I<maxnode> 個までのビットだけである。 NULL 値の I<nodemask> もしくは値が 0 の I<maxnode> はノードの空集合を表す。 I<maxnode> の値が 0 の場合、 I<nodemask> 引き数は無視される。"
1392
1393 #. type: Plain text
1394 #: build/C/man2/set_mempolicy.2:154
1395 msgid "Where a I<nodemask> is required, it must contain at least one node that is on-line, allowed by the process's current cpuset context, [unless the B<MPOL_F_STATIC_NODES> mode flag is specified], and contains memory.  If the B<MPOL_F_STATIC_NODES> is set in I<mode> and a required I<nodemask> contains no nodes that are allowed by the process's current cpuset context, the memory policy reverts to I<local allocation>.  This effectively overrides the specified policy until the process's cpuset context includes one or more of the nodes specified by I<nodemask>."
1396 msgstr "I<nodemask> が必須の場面では、 I<nodemask> に、オンラインで、そのプロセスの現在の CPU 集合コンテキストで 許可されており (B<MPOL_F_STATIC_NODES> モードフラグが指定されていない場合)、メモリがあるノードが 少なくとも一つ入っていなければならない。 I<mode> に B<MPOL_F_STATIC_NODES> がセットされ、 I<nodemask> が必須の場面で、 I<nodemask> に、そのプロセスの現在の CPU 集合コンテキストで許可されたノードが 一つも含まれていない場合には、メモリのポリシーとしてデフォルトの 「ローカルから割り当て (local allocation)」が適用される。 そのプロセスの CPU 集合コンテキストが I<nodemask> で指定されたノードを少なくとも一つ含むようになるまでは、 結果的に指定された動作が上書きされることになる。"
1397
1398 #. type: Plain text
1399 #: build/C/man2/set_mempolicy.2:165
1400 msgid "The B<MPOL_DEFAULT> mode specifies that any nondefault process memory policy be removed, so that the memory policy \"falls back\" to the system default policy.  The system default policy is \"local allocation\"\\(emthat is, allocate memory on the node of the CPU that triggered the allocation.  I<nodemask> must be specified as NULL.  If the \"local node\" contains no free memory, the system will attempt to allocate memory from a \"near by\" node."
1401 msgstr "B<MPOL_DEFAULT> モードは、デフォルトではないプロセスのメモリポリシーを削除することを 指定するものである。これにより、メモリポリシーはシステムの デフォルトポリシーに「戻る」ことになる。 システムのデフォルトポリシーは「ローカルからの割り当て (local allocation)」、 つまりメモリ割り当てのきっかけとなった CPU のノードのメモリが割り当てられる。 I<nodemask> には NULL を指定しなければならない。 「自ノード (local node)」に空きメモリが全くない場合、システムは 「近くの (near by) ノード」からメモリを割り当てようと試みる。"
1402
1403 #. type: Plain text
1404 #: build/C/man2/set_mempolicy.2:182
1405 msgid "The B<MPOL_BIND> mode defines a strict policy that restricts memory allocation to the nodes specified in I<nodemask>.  If I<nodemask> specifies more than one node, page allocations will come from the node with the lowest numeric node ID first, until that node contains no free memory.  Allocations will then come from the node with the next highest node ID specified in I<nodemask> and so forth, until none of the specified nodes contain free memory.  Pages will not be allocated from any node not specified in the I<nodemask>."
1406 msgstr "B<MPOL_BIND> モードは厳密なポリシーで、メモリ割り当ては I<nodemask> に指定されたノードに限定される。 I<nodemask> に 2 個以上のノードが指定された場合、ページの割り当ては ノード ID が数字として最小のノードから開始され、 そのノードに空きメモリがなくなるまでそのノードから ページ割り当てが行われる。そのノードに空きメモリがなくなったら、 次に小さなノード ID を持つノードからページ割り当てが行われる。 これを、 I<nodemask> で指定された全てのノードで空きメモリがなくなるまで繰り返す。 I<nodemask> で指定された以外のノードからはページの割り当ては行われない。"
1407
1408 #.  NOTE:  the following sentence doesn't make sense in the context
1409 #.  of set_mempolicy() -- no memory area specified.
1410 #.  To be effective the memory area should be fairly large,
1411 #.  at least 1MB or bigger.
1412 #. type: Plain text
1413 #: build/C/man2/set_mempolicy.2:196
1414 msgid "B<MPOL_INTERLEAVE> interleaves page allocations across the nodes specified in I<nodemask> in numeric node ID order.  This optimizes for bandwidth instead of latency by spreading out pages and memory accesses to those pages across multiple nodes.  However, accesses to a single page will still be limited to the memory bandwidth of a single node."
1415 msgstr "B<MPOL_INTERLEAVE> では、ページ割り当てを I<nodemask> に指定されたノードの間でノード ID の数字順で交互に行う。 このポリシーでは、複数のノードにページを広げて配置し、これらのページへのメモリ アクセスを分散することで、遅延ではなく、帯域を最適化する。 ただし、一つのページへのアクセスに関しては依然として一つのノードのメモリ帯域 が上限となる。"
1416
1417 #. type: Plain text
1418 #: build/C/man2/set_mempolicy.2:213
1419 msgid "B<MPOL_PREFERRED> sets the preferred node for allocation.  The kernel will try to allocate pages from this node first and fall back to \"near by\" nodes if the preferred node is low on free memory.  If I<nodemask> specifies more than one node ID, the first node in the mask will be selected as the preferred node.  If the I<nodemask> and I<maxnode> arguments specify the empty set, then the policy specifies \"local allocation\" (like the system default policy discussed above)."
1420 msgstr "B<MPOL_PREFERRED> は、割り当て時に優先されるノード (preferred node) を設定する。 カーネルはまず優先ノードからページ割り当てを行おうとし、 優先ノードに空きメモリが少ない場合に「近くの (near by)」ノードから 割り当てを行う。 I<nodemask> に複数のノード ID が指定された場合は、 I<nodemask> 内の最初のノードが優先ノードとして選択される。 引き数 I<nodemask>, I<maxnode> で空集合が指定された場合は、ポリシーは (上述のシステムの デフォルトポリシーと同様に) 「ローカルからの割り当て」となる。"
1421
1422 #. type: Plain text
1423 #: build/C/man2/set_mempolicy.2:220
1424 msgid "The process memory policy is preserved across an B<execve>(2), and is inherited by child processes created using B<fork>(2)  or B<clone>(2)."
1425 msgstr "プロセスのメモリポリシーは B<execve>(2)  の前後で保持され、 B<fork>(2)  や B<clone>(2)  を使って作成された子プロセスに継承される。"
1426
1427 #. type: Plain text
1428 #: build/C/man2/set_mempolicy.2:227
1429 msgid "On success, B<set_mempolicy>()  returns 0; on error, -1 is returned and I<errno> is set to indicate the error."
1430 msgstr "成功すると、 B<set_mempolicy>()  は 0 を返す。エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
1431
1432 #. type: Plain text
1433 #: build/C/man2/set_mempolicy.2:272
1434 msgid "I<mode> is invalid.  Or, I<mode> is B<MPOL_DEFAULT> and I<nodemask> is nonempty, or I<mode> is B<MPOL_BIND> or B<MPOL_INTERLEAVE> and I<nodemask> is empty.  Or, I<maxnode> specifies more than a page worth of bits.  Or, I<nodemask> specifies one or more node IDs that are greater than the maximum supported node ID.  Or, none of the node IDs specified by I<nodemask> are on-line and allowed by the process's current cpuset context, or none of the specified nodes contain memory.  Or, the I<mode> argument specified both B<MPOL_F_STATIC_NODES> and B<MPOL_F_RELATIVE_NODES>."
1435 msgstr "I<mode> が不正である。 I<mode> が B<MPOL_DEFAULT> で、 I<nodemask> が空ではない。 I<mode> が B<MPOL_BIND> か B<MPOL_INTERLEAVE> で、 I<nodemask> が空である。 I<maxnode> で実際に意味があるビット数より多くのビット数が指定された。 I<nodemask> に、サポートされている最大ノード ID より大きいノードが指定された。 I<nodemask> に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキストで 許可されているノードが一つも含まれていないか、 メモリを含むノードが一つも指定されていない。 I<mode> 引き数に B<MPOL_F_STATIC_NODES> と B<MPOL_F_RELATIVE_NODES> の両方が指定された。"
1436
1437 #. type: Plain text
1438 #: build/C/man2/set_mempolicy.2:279
1439 msgid "The B<set_mempolicy>(), system call was added to the Linux kernel in version 2.6.7."
1440 msgstr "B<set_mempolicy>()  システムコールはバージョン 2.6.7 で Linux カーネルに追加された。"
1441
1442 #. type: Plain text
1443 #: build/C/man2/set_mempolicy.2:286
1444 msgid "Process policy is not remembered if the page is swapped out.  When such a page is paged back in, it will use the policy of the process or memory range that is in effect at the time the page is allocated."
1445 msgstr "ページがスワップ・アウトされる場合には、 プロセスポリシーの設定は推奨されない。 スワップ・アウトされたページがページ・インする際にも、 ページ割り当て時に適用されるプロセスポリシーやメモリ領域ポリシーが 使用される。"
1446
1447 #. type: Plain text
1448 #: build/C/man2/set_mempolicy.2:298
1449 msgid "B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<numa>(3), B<cpuset>(7), B<numa>(7), B<numactl>(8)"
1450 msgstr "B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<numa>(3), B<cpuset>(7), B<numa>(7), B<numactl>(8)"