OSDN Git Service

LDP: Address fuzzy changes (numa)
[linuxjm/jm.git] / manual / LDP_man-pages / 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: 2021-03-12 14:00+0900\n"
10 "PO-Revision-Date: 2021-04-04 03:02+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 "2017-09-15"
28 msgstr "2017-09-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:35 build/C/man2/migrate_pages.2:18
33 #: build/C/man2/move_pages.2:20 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:35 build/C/man2/migrate_pages.2:18
42 #: build/C/man2/move_pages.2:20 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:36 build/C/man2/migrate_pages.2:19
51 #: build/C/man2/move_pages.2:21 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 thread"
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:38 build/C/man2/migrate_pages.2:21
65 #: build/C/man2/move_pages.2:23 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<long get_mempolicy(int *>I<mode>B<, unsigned long *>I<nodemask>B<,>\n"
80 "B<                  unsigned long >I<maxnode>B<, void *>I<addr>B<,>\n"
81 "B<                  unsigned long >I<flags>B<);>\n"
82 msgstr ""
83 "B<long get_mempolicy(int *>I<mode>B<, unsigned long *>I<nodemask>B<,>\n"
84 "B<                  unsigned long >I<maxnode>B<, void *>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:47
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:22
96 #: build/C/man2/mbind.2:48 build/C/man2/migrate_pages.2:31
97 #: build/C/man2/move_pages.2:32 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 ""
106 "B<get_mempolicy>()  retrieves the NUMA policy of the calling thread or of a "
107 "memory address, depending on the setting of I<flags>."
108 msgstr "B<get_mempolicy>() は、呼び出し元スレッドもしくは指定されたメモリーアドレスの NUMA ポリシーを I<flags> の設定に従って取得する。"
109
110 #. type: Plain text
111 #: build/C/man2/get_mempolicy.2:50 build/C/man2/set_mempolicy.2:54
112 msgid ""
113 "A NUMA machine has different memory controllers with different distances to "
114 "specific CPUs.  The memory policy defines from which node memory is "
115 "allocated for the thread."
116 msgstr "NUMA (非対称メモリーアクセス) マシンでは、CPU により メモリーコントローラーが異なり、距離も異なっている。 メモリーポリシーは、どのノードからメモリーをそのスレッドに 割り当てるかを定めるものである。"
117
118 #. type: Plain text
119 #: build/C/man2/get_mempolicy.2:72
120 #, fuzzy
121 #| msgid ""
122 #| "If I<flags> is specified as 0, then information about the calling "
123 #| "process's default policy (as set by B<set_mempolicy>(2))  is returned.  "
124 #| "The policy returned [I<mode> and I<nodemask>] may be used to restore the "
125 #| "process's policy to its state at the time of the call to "
126 #| "B<get_mempolicy>()  using B<set_mempolicy>(2)."
127 msgid ""
128 "If I<flags> is specified as 0, then information about the calling thread's "
129 "default policy (as set by B<set_mempolicy>(2))  is returned, in the buffers "
130 "pointed to by I<mode> and I<nodemask>.  The value returned in these "
131 "arguments may be used to restore the thread's policy to its state at the "
132 "time of the call to B<get_mempolicy>()  using B<set_mempolicy>(2).  When "
133 "I<flags> is 0, I<addr> must be specified as NULL."
134 msgstr ""
135 "I<flags> に 0 が指定された場合、 (B<set_mempolicy>(2)  で設定された)  呼び出"
136 "し元プロセスのデフォルトポリシーに関する情報を返す。 返されたポリシー "
137 "[I<mode> と I<nodemask>] を B<set_mempolicy>(2)  に渡すことで、そのプロセスの"
138 "ポリシーを B<get_mempolicy>()  を呼び出した時点の状態に戻すことができる。"
139
140 #. type: Plain text
141 #: build/C/man2/get_mempolicy.2:94
142 msgid ""
143 "If I<flags> specifies B<MPOL_F_MEMS_ALLOWED> (available since Linux 2.6.24), "
144 "the I<mode> argument is ignored and the set of nodes (memories) that the "
145 "thread is allowed to specify in subsequent calls to B<mbind>(2)  or "
146 "B<set_mempolicy>(2)  (in the absence of any I<mode flags>)  is returned in "
147 "I<nodemask>.  It is not permitted to combine B<MPOL_F_MEMS_ALLOWED> with "
148 "either B<MPOL_F_ADDR> or B<MPOL_F_NODE>."
149 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> と同時に指定することはできない。"
150
151 #. type: Plain text
152 #: build/C/man2/get_mempolicy.2:108
153 msgid ""
154 "If I<flags> specifies B<MPOL_F_ADDR>, then information is returned about the "
155 "policy governing the memory address given in I<addr>.  This policy may be "
156 "different from the thread's default policy if B<mbind>(2)  or one of the "
157 "helper functions described in B<numa>(3)  has been used to establish a "
158 "policy for the memory range containing I<addr>."
159 msgstr "I<flags> に B<MPOL_F_ADDR> が指定された場合、 I<addr> で指定されたメモリーアドレスに適用されているポリシーに関する情報を返す。 B<mbind>(2)  や B<numa>(3)  で説明されているヘルパー関数を使って、 I<addr> を含むメモリー領域に対するポリシーが設定されていた場合には、 返されるポリシーはスレッドのデフォルトポリシーと違うことがある。"
160
161 #. type: Plain text
162 #: build/C/man2/get_mempolicy.2:129
163 msgid ""
164 "If the I<mode> argument is not NULL, then B<get_mempolicy>()  will store the "
165 "policy mode and any optional I<mode flags> of the requested NUMA policy in "
166 "the location pointed to by this argument.  If I<nodemask> is not NULL, then "
167 "the nodemask associated with the policy will be stored in the location "
168 "pointed to by this argument.  I<maxnode> specifies the number of node IDs "
169 "that can be stored into I<nodemask>\\(emthat is, the maximum node ID plus "
170 "one.  The value specified by I<maxnode> is always rounded to a multiple of "
171 "I<sizeof(unsigned\\ long)*8>."
172 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)*8> の倍数に切り上げられる。"
173
174 #. type: Plain text
175 #: build/C/man2/get_mempolicy.2:146
176 msgid ""
177 "If I<flags> specifies both B<MPOL_F_NODE> and B<MPOL_F_ADDR>, "
178 "B<get_mempolicy>()  will return the node ID of the node on which the address "
179 "I<addr> is allocated into the location pointed to by I<mode>.  If no page "
180 "has yet been allocated for the specified address, B<get_mempolicy>()  will "
181 "allocate a page as if the thread had performed a read (load) access to that "
182 "address, and return the ID of the node where that page was allocated."
183 msgstr "I<flags> で B<MPOL_F_NODE> と B<MPOL_F_ADDR> の両方が指定された場合、 B<get_mempolicy>()  はアドレス I<addr> が割り当てられているノードのノード ID を I<mode> が指す場所に入れて返す。 指定されたアドレスにどのページもまだ割り当てられていない場合、 B<get_mempolicy>()  は、あたかもそのスレッドがそのアドレスに対して読み込みアクセスを 実行したかのようにページの割り当てを行い、ページが割り当てられた ノードの ID を返す。"
184
185 #.  Note:  code returns next interleave node via 'mode' argument -Lee Schermerhorn
186 #. type: Plain text
187 #: build/C/man2/get_mempolicy.2:171
188 msgid ""
189 "If I<flags> specifies B<MPOL_F_NODE>, but not B<MPOL_F_ADDR>, and the "
190 "thread's current policy is B<MPOL_INTERLEAVE>, then B<get_mempolicy>()  will "
191 "return in the location pointed to by a non-NULL I<mode> argument, the node "
192 "ID of the next node that will be used for interleaving of internal kernel "
193 "pages allocated on behalf of the thread.  These allocations include pages "
194 "for memory-mapped files in process memory ranges mapped using the "
195 "B<mmap>(2)  call with the B<MAP_PRIVATE> flag for read accesses, and in "
196 "memory ranges mapped with the B<MAP_SHARED> flag for all accesses."
197 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)  したメモリー領域の、メモリーマップされたファイルに対するページも含まれる。"
198
199 #. type: Plain text
200 #: build/C/man2/get_mempolicy.2:173
201 msgid "Other flag values are reserved."
202 msgstr "他のフラグは予約されている。"
203
204 #. type: Plain text
205 #: build/C/man2/get_mempolicy.2:176
206 msgid "For an overview of the possible policies see B<set_mempolicy>(2)."
207 msgstr "設定可能なポリシーの概要については B<set_mempolicy>(2)  を参照。"
208
209 #. type: SH
210 #: build/C/man2/get_mempolicy.2:176 build/C/man2/getcpu.2:58
211 #: build/C/man2/mbind.2:328 build/C/man2/migrate_pages.2:88
212 #: build/C/man2/move_pages.2:162 build/C/man2/set_mempolicy.2:244
213 #, no-wrap
214 msgid "RETURN VALUE"
215 msgstr "返り値"
216
217 #. type: Plain text
218 #: build/C/man2/get_mempolicy.2:183
219 msgid ""
220 "On success, B<get_mempolicy>()  returns 0; on error, -1 is returned and "
221 "I<errno> is set to indicate the error."
222 msgstr ""
223 "成功すると、 B<get_mempolicy>()  は 0 を返す。エラーの場合、-1 を返し、 "
224 "I<errno> にエラーを示す値を設定する。"
225
226 #. type: SH
227 #: build/C/man2/get_mempolicy.2:183 build/C/man2/getcpu.2:63
228 #: build/C/man2/mbind.2:336 build/C/man2/migrate_pages.2:96
229 #: build/C/man2/move_pages.2:173 build/C/man2/set_mempolicy.2:251
230 #, no-wrap
231 msgid "ERRORS"
232 msgstr "エラー"
233
234 #. type: TP
235 #: build/C/man2/get_mempolicy.2:184 build/C/man2/getcpu.2:64
236 #: build/C/man2/mbind.2:338 build/C/man2/migrate_pages.2:97
237 #: build/C/man2/move_pages.2:190 build/C/man2/set_mempolicy.2:252
238 #, no-wrap
239 msgid "B<EFAULT>"
240 msgstr "B<EFAULT>"
241
242 #. type: Plain text
243 #: build/C/man2/get_mempolicy.2:191 build/C/man2/set_mempolicy.2:259
244 msgid ""
245 "Part of all of the memory range specified by I<nodemask> and I<maxnode> "
246 "points outside your accessible address space."
247 msgstr ""
248 "I<nodemask> と I<maxnode> で指定されたメモリー領域の一部または全部が、 呼び出"
249 "し元がアクセス可能なアドレス空間外を指している。"
250
251 #. type: TP
252 #: build/C/man2/get_mempolicy.2:191 build/C/man2/mbind.2:349
253 #: build/C/man2/migrate_pages.2:104 build/C/man2/move_pages.2:193
254 #: build/C/man2/set_mempolicy.2:259
255 #, no-wrap
256 msgid "B<EINVAL>"
257 msgstr "B<EINVAL>"
258
259 #. type: Plain text
260 #: build/C/man2/get_mempolicy.2:235
261 msgid ""
262 "The value specified by I<maxnode> is less than the number of node IDs "
263 "supported by the system.  Or I<flags> specified values other than "
264 "B<MPOL_F_NODE> or B<MPOL_F_ADDR>; or I<flags> specified B<MPOL_F_ADDR> and "
265 "I<addr> is NULL, or I<flags> did not specify B<MPOL_F_ADDR> and I<addr> is "
266 "not NULL.  Or, I<flags> specified B<MPOL_F_NODE> but not B<MPOL_F_ADDR> and "
267 "the current thread policy is not B<MPOL_INTERLEAVE>.  Or, I<flags> specified "
268 "B<MPOL_F_MEMS_ALLOWED> with either B<MPOL_F_ADDR> or B<MPOL_F_NODE>.  (And "
269 "there are other B<EINVAL> cases.)"
270 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> となる場合がある。)"
271
272 #. type: SH
273 #: build/C/man2/get_mempolicy.2:235 build/C/man2/getcpu.2:67
274 #: build/C/man2/mbind.2:421 build/C/man2/migrate_pages.2:136
275 #: build/C/man2/move_pages.2:215 build/C/man2/set_mempolicy.2:299
276 #, no-wrap
277 msgid "VERSIONS"
278 msgstr "バージョン"
279
280 #. type: Plain text
281 #: build/C/man2/get_mempolicy.2:239
282 msgid ""
283 "The B<get_mempolicy>()  system call was added to the Linux kernel in version "
284 "2.6.7."
285 msgstr ""
286 "B<get_mempolicy>()  システムコールはバージョン 2.6.7 で Linux カーネルに追加"
287 "された。"
288
289 #. type: SH
290 #: build/C/man2/get_mempolicy.2:239 build/C/man2/getcpu.2:74
291 #: build/C/man2/mbind.2:425 build/C/man2/migrate_pages.2:140
292 #: build/C/man2/move_pages.2:218 build/C/man7/numa.7:148
293 #: build/C/man2/set_mempolicy.2:303
294 #, no-wrap
295 msgid "CONFORMING TO"
296 msgstr "準拠"
297
298 #. type: Plain text
299 #: build/C/man2/get_mempolicy.2:241 build/C/man2/mbind.2:427
300 #: build/C/man2/migrate_pages.2:142 build/C/man2/move_pages.2:220
301 #: build/C/man2/set_mempolicy.2:305
302 msgid "This system call is Linux-specific."
303 msgstr "このシステムコールは Linux 固有である。"
304
305 #. type: SH
306 #: build/C/man2/get_mempolicy.2:241 build/C/man2/getcpu.2:77
307 #: build/C/man2/mbind.2:427 build/C/man2/migrate_pages.2:142
308 #: build/C/man2/move_pages.2:220 build/C/man7/numa.7:150
309 #: build/C/man2/set_mempolicy.2:305
310 #, no-wrap
311 msgid "NOTES"
312 msgstr "注意"
313
314 #. type: Plain text
315 #: build/C/man2/get_mempolicy.2:244 build/C/man2/mbind.2:430
316 #: build/C/man2/migrate_pages.2:145 build/C/man2/move_pages.2:223
317 #: build/C/man2/set_mempolicy.2:313
318 msgid "For information on library support, see B<numa>(7)."
319 msgstr "ライブラリによるサポートについては B<numa>(7)  を参照。"
320
321 #. type: SH
322 #: build/C/man2/get_mempolicy.2:244 build/C/man2/getcpu.2:136
323 #: build/C/man2/mbind.2:483 build/C/man2/migrate_pages.2:172
324 #: build/C/man2/move_pages.2:250 build/C/man7/numa.7:183
325 #: build/C/man2/set_mempolicy.2:313
326 #, no-wrap
327 msgid "SEE ALSO"
328 msgstr "関連項目"
329
330 #. type: Plain text
331 #: build/C/man2/get_mempolicy.2:252
332 msgid ""
333 "B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<set_mempolicy>(2), B<numa>(3), "
334 "B<numa>(7), B<numactl>(8)"
335 msgstr ""
336 "B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<set_mempolicy>(2), B<numa>(3), "
337 "B<numa>(7), B<numactl>(8)"
338
339 #. type: SH
340 #: build/C/man2/get_mempolicy.2:252 build/C/man2/getcpu.2:143
341 #: build/C/man2/mbind.2:494 build/C/man2/migrate_pages.2:185
342 #: build/C/man2/move_pages.2:260 build/C/man7/numa.7:191
343 #: build/C/man2/set_mempolicy.2:322
344 #, no-wrap
345 msgid "COLOPHON"
346 msgstr "この文書について"
347
348 #. type: Plain text
349 #: build/C/man2/get_mempolicy.2:260 build/C/man2/getcpu.2:151
350 #: build/C/man2/mbind.2:502 build/C/man2/migrate_pages.2:193
351 #: build/C/man2/move_pages.2:268 build/C/man7/numa.7:199
352 #: build/C/man2/set_mempolicy.2:330
353 msgid ""
354 "This page is part of release 5.10 of the Linux I<man-pages> project.  A "
355 "description of the project, information about reporting bugs, and the latest "
356 "version of this page, can be found at \\%https://www.kernel.org/doc/man-"
357 "pages/."
358 msgstr "この man ページは Linux I<man-pages> プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は \\%https://www.kernel.org/doc/man-pages/ に書かれている。"
359
360 #. type: TH
361 #: build/C/man2/getcpu.2:12
362 #, no-wrap
363 msgid "GETCPU"
364 msgstr "GETCPU"
365
366 #. type: TH
367 #: build/C/man2/getcpu.2:12 build/C/man2/migrate_pages.2:18
368 #, no-wrap
369 msgid "2019-03-06"
370 msgstr "2019-03-06"
371
372 #. type: Plain text
373 #: build/C/man2/getcpu.2:15
374 msgid ""
375 "getcpu - determine CPU and NUMA node on which the calling thread is running"
376 msgstr "getcpu - 呼び出し元スレッドが動作している CPU と NUMA ノードを判定する"
377
378 #. type: Plain text
379 #: build/C/man2/getcpu.2:18
380 #, no-wrap
381 msgid "B<#include E<lt>linux/getcpu.hE<gt>>\n"
382 msgstr "B<#include E<lt>linux/getcpu.hE<gt>>\n"
383
384 #. type: Plain text
385 #: build/C/man2/getcpu.2:21
386 #, no-wrap
387 msgid "B<int getcpu(unsigned *>I<cpu>B<, unsigned *>I<node>B<, struct getcpu_cache *>I<tcache>B<);>\n"
388 msgstr "B<int getcpu(unsigned *>I<cpu>B<, unsigned *>I<node>B<, struct getcpu_cache *>I<tcache>B<);>\n"
389
390 #. type: Plain text
391 #: build/C/man2/getcpu.2:39
392 msgid ""
393 "The B<getcpu>()  system call identifies the processor and node on which the "
394 "calling thread or process is currently running and writes them into the "
395 "integers pointed to by the I<cpu> and I<node> arguments.  The processor is a "
396 "unique small integer identifying a CPU.  The node is a unique small "
397 "identifier identifying a NUMA node.  When either I<cpu> or I<node> is NULL "
398 "nothing is written to the respective pointer."
399 msgstr ""
400 "B<getcpu>() システムコールは、呼び出し元のスレッドやプロセスが\n"
401 "現在動作しているプロセッサやノードの情報を特定し、\n"
402 "それぞれ引き数 I<cpu> と I<node> が指す整数に書き込む。\n"
403 "プロセッサ情報は CPU を識別するための一意な小さな整数である。\n"
404 "ノード情報は NUMAノードを識別するための一意な小さな整数である。\n"
405 "I<cpu> か I<node> のいずれかが NULL であれば、\n"
406 "その引き数に対応する情報の書き込みは行われない。"
407
408 #. type: Plain text
409 #: build/C/man2/getcpu.2:43
410 msgid ""
411 "The third argument to this system call is nowadays unused, and should be "
412 "specified as NULL unless portability to Linux 2.6.23 or earlier is required "
413 "(see NOTES)."
414 msgstr ""
415 "このシステムコールの 3 番目の引き数は現在は使われておらず、 Linux 2.6.23 以前"
416 "への移植性が必要な場合以外は NULL を渡すべきである (「注意」を参照)。"
417
418 #. type: Plain text
419 #: build/C/man2/getcpu.2:58
420 msgid ""
421 "The information placed in I<cpu> is guaranteed to be current only at the "
422 "time of the call: unless the CPU affinity has been fixed using "
423 "B<sched_setaffinity>(2), the kernel might change the CPU at any time.  "
424 "(Normally this does not happen because the scheduler tries to minimize "
425 "movements between CPUs to keep caches hot, but it is possible.)  The caller "
426 "must allow for the possibility that the information returned in I<cpu> and "
427 "I<node> is no longer current by the time the call returns."
428 msgstr ""
429 "I<cpu> に格納された情報が最新だと保証できるのは、システムコールが呼ばれ\n"
430 "た時点だけである。B<sched_setaffinity>(2) を使って CPU affinity が固定\n"
431 "されていない限り、カーネルはいつでも CPU を変更してもよい (スケジューラ\n"
432 "はキャッシュが有効に働くように CPU の移動を最小限にしようとするので、\n"
433 "通常は CPU が変更されることはないが、起きる可能性はある)。\n"
434 "I<cpu> や I<node> で返された情報が呼び出しが返った時点ですでに\n"
435 "最新の状況と異なる可能性があり、呼び出し元はこの可能性を考慮して\n"
436 "おかなければならない。"
437
438 #. type: Plain text
439 #: build/C/man2/getcpu.2:63
440 msgid ""
441 "On success, 0 is returned.  On error, -1 is returned, and I<errno> is set "
442 "appropriately."
443 msgstr ""
444 "成功すると、0 を返す。\n"
445 "エラーの場合、-1 を返し、 I<errno> にエラーを示す値を設定する。"
446
447 #. type: Plain text
448 #: build/C/man2/getcpu.2:67
449 msgid "Arguments point outside the calling process's address space."
450 msgstr "引き数が呼び出したプロセスのアドレス空間外を指している。"
451
452 #. type: Plain text
453 #: build/C/man2/getcpu.2:74
454 msgid ""
455 "B<getcpu>()  was added in kernel 2.6.19 for x86-64 and i386.  Library "
456 "support was added in glibc 2.29 (Earlier glibc versions did not provide a "
457 "wrapper for this system call, necessitating the use of B<syscall>(2).)"
458 msgstr ""
459
460 #. type: Plain text
461 #: build/C/man2/getcpu.2:77
462 msgid "B<getcpu>()  is Linux-specific."
463 msgstr "B<getcpu>() は Linux 固有である。"
464
465 #. type: Plain text
466 #: build/C/man2/getcpu.2:85
467 #, fuzzy
468 #| msgid ""
469 #| "Linux makes a best effort to make this call as fast possible.  The "
470 #| "intention of B<getcpu>()  is to allow programs to make optimizations with "
471 #| "per-CPU data or for NUMA optimization."
472 msgid ""
473 "Linux makes a best effort to make this call as fast as possible.  (On some "
474 "architectures, this is done via an implementation in the B<vdso>(7).)  The "
475 "intention of B<getcpu>()  is to allow programs to make optimizations with "
476 "per-CPU data or for NUMA optimization."
477 msgstr ""
478 "Linux はこのシステムコールを可能な限り早く実行しようとする。\n"
479 "B<getcpu>() は、CPU 毎のデータに対する最適化や NUMA 環境での最適化を\n"
480 "プログラムが行えるようにすることを目的として実装されているからである。"
481
482 #.  commit 4307d1e5ada595c87f9a4d16db16ba5edb70dcb1
483 #.  Author: Ingo Molnar <mingo@elte.hu>
484 #.  Date:   Wed Nov 7 18:37:48 2007 +0100
485 #.  x86: ignore the sys_getcpu() tcache parameter
486 #.  ===== Before kernel 2.6.24: =====
487 #.  .I tcache
488 #.  is a pointer to a
489 #.  .IR "struct getcpu_cache"
490 #.  that is used as a cache by
491 #.  .BR getcpu ().
492 #.  The caller should put the cache into a thread-local variable
493 #.  if the process is multithreaded,
494 #.  because the cache cannot be shared between different threads.
495 #.  .I tcache
496 #.  can be NULL.
497 #.  If it is not NULL
498 #.  .BR getcpu ()
499 #.  will use it to speed up operation.
500 #.  The information inside the cache is private to the system call
501 #.  and should not be accessed by the user program.
502 #.  The information placed in the cache can change between kernel releases.
503 #.  When no cache is specified
504 #.  .BR getcpu ()
505 #.  will be slower,
506 #.  but always retrieve the current CPU and node information.
507 #.  With a cache
508 #.  .BR getcpu ()
509 #.  is faster.
510 #.  However, the cached information is updated only once per jiffy (see
511 #.  .BR time (7)).
512 #.  This means that the information could theoretically be out of date,
513 #.  although in practice the scheduler's attempt to maintain
514 #.  soft CPU affinity means that the information is unlikely to change
515 #.  over the course of the caching interval.
516 #. type: Plain text
517 #: build/C/man2/getcpu.2:136
518 msgid ""
519 "The I<tcache> argument is unused since Linux 2.6.24.  In earlier kernels, if "
520 "this argument was non-NULL, then it specified a pointer to a caller-"
521 "allocated buffer in thread-local storage that was used to provide a caching "
522 "mechanism for B<getcpu>().  Use of the cache could speed B<getcpu>()  calls, "
523 "at the cost that there was a very small chance that the returned information "
524 "would be out of date.  The caching mechanism was considered to cause "
525 "problems when migrating threads between CPUs, and so the argument is now "
526 "ignored."
527 msgstr ""
528 "I<tcache> 引き数は Linux 2.6.24 以降では使用されない。以前のバージョン\n"
529 "のカーネルでは、この引き数が NULL 以外の場合、この引き数には、呼び出し\n"
530 "元が割り当てたスレッド専用の記憶領域 (thread-local storage) 内のバッファー\n"
531 "を指すポインターが指定され、このバッファーは B<getcpu>() 用のキャッシュ機構\n"
532 "を提供するために利用されていた。非常に低い確率だが古い情報を返してしま\n"
533 "うデメリットはあるものの、このキャッシュを使うことで B<getcpu>() システ\n"
534 "ムコールを高速化できた。このキャッシュ機構はCPU 間でのスレッドの移動時\n"
535 "に問題になると考えられ、この引き数は今では無視されるようになっている。"
536
537 #. type: Plain text
538 #: build/C/man2/getcpu.2:143
539 msgid ""
540 "B<mbind>(2), B<sched_setaffinity>(2), B<set_mempolicy>(2), "
541 "B<sched_getcpu>(3), B<cpuset>(7), B<vdso>(7)"
542 msgstr "B<mbind>(2), B<sched_setaffinity>(2), B<set_mempolicy>(2), B<sched_getcpu>(3), B<cpuset>(7), B<vdso>(7)"
543
544 #. type: TH
545 #: build/C/man2/mbind.2:35
546 #, no-wrap
547 msgid "MBIND"
548 msgstr "MBIND"
549
550 #. type: TH
551 #: build/C/man2/mbind.2:35 build/C/man2/move_pages.2:20
552 #, no-wrap
553 msgid "2020-06-09"
554 msgstr "2020-06-09"
555
556 #. type: Plain text
557 #: build/C/man2/mbind.2:38
558 msgid "mbind - set memory policy for a memory range"
559 msgstr "mbind - メモリー領域に対してメモリーポリシーを設定する"
560
561 #. type: Plain text
562 #: build/C/man2/mbind.2:41 build/C/man2/migrate_pages.2:24
563 #: build/C/man2/move_pages.2:26 build/C/man2/set_mempolicy.2:33
564 #, no-wrap
565 msgid "B<#include E<lt>numaif.hE<gt>>\n"
566 msgstr "B<#include E<lt>numaif.hE<gt>>\n"
567
568 #. type: Plain text
569 #: build/C/man2/mbind.2:45
570 #, no-wrap
571 msgid ""
572 "B<long mbind(void *>I<addr>B<, unsigned long >I<len>B<, int >I<mode>B<,>\n"
573 "B<           const unsigned long *>I<nodemask>B<, unsigned long >I<maxnode>B<,>\n"
574 "B<           unsigned >I<flags>B<);>\n"
575 msgstr ""
576 "B<long mbind(void *>I<addr>B<, unsigned long >I<len>B<, int >I<mode>B<,>\n"
577 "B<           const unsigned long *>I<nodemask>B<, unsigned long >I<maxnode>B<,>\n"
578 "B<           unsigned >I<flags>B<);>\n"
579
580 #. type: Plain text
581 #: build/C/man2/mbind.2:58
582 msgid ""
583 "B<mbind>()  sets the NUMA memory policy, which consists of a policy mode and "
584 "zero or more nodes, for the memory range starting with I<addr> and "
585 "continuing for I<len> bytes.  The memory policy defines from which node "
586 "memory is allocated."
587 msgstr ""
588 "B<mbind>()  は、 I<addr> から始まる長さ I<len> バイトの範囲のメモリーに NUMA "
589 "メモリーポリシーを設定する。 NUMA ポリシーはポリシーモードと 0 個以上のノード"
590 "から構成される。 メモリーポリシーはどのノードからメモリーを割り当てるかを決定"
591 "する。"
592
593 #. type: Plain text
594 #: build/C/man2/mbind.2:80
595 msgid ""
596 "If the memory range specified by the I<addr> and I<len> arguments includes "
597 "an \"anonymous\" region of memory\\(emthat is a region of memory created "
598 "using the B<mmap>(2)  system call with the B<MAP_ANONYMOUS>\\(emor a memory-"
599 "mapped file, mapped using the B<mmap>(2)  system call with the "
600 "B<MAP_PRIVATE> flag, pages will be allocated only according to the specified "
601 "policy when the application writes (stores) to the page.  For anonymous "
602 "regions, an initial read access will use a shared page in the kernel "
603 "containing all zeros.  For a file mapped with B<MAP_PRIVATE>, an initial "
604 "read access will allocate pages according to the memory policy of the thread "
605 "that causes the page to be allocated.  This may not be the thread that "
606 "called B<mbind>()."
607 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>() を呼び出したスレッドと同じとは限らない。"
608
609 #. type: Plain text
610 #: build/C/man2/mbind.2:88
611 msgid ""
612 "The specified policy will be ignored for any B<MAP_SHARED> mappings in the "
613 "specified memory range.  Rather the pages will be allocated according to the "
614 "memory policy of the thread that caused the page to be allocated.  Again, "
615 "this may not be the thread that called B<mbind>()."
616 msgstr "指定されたメモリー範囲内にある B<MAP_SHARED> のマッピングでは指定されたポリシーは無視され、 ページ割り当てが発生するきっかけとなったスレッドのメモリポリシーに したがってページの割り当てが行われることになる。 繰り返しになるが、ページ割り当てのきっかけとなったスレッドは、 B<mbind>()  を呼び出したスレッドと同じとは限らない。"
617
618 #. type: Plain text
619 #: build/C/man2/mbind.2:105
620 msgid ""
621 "If the specified memory range includes a shared memory region created using "
622 "the B<shmget>(2)  system call and attached using the B<shmat>(2)  system "
623 "call, pages allocated for the anonymous or shared memory region will be "
624 "allocated according to the policy specified, regardless of which process "
625 "attached to the shared memory segment causes the allocation.  If, however, "
626 "the shared memory region was created with the B<SHM_HUGETLB> flag, the huge "
627 "pages will be allocated according to the policy specified only if the page "
628 "allocation is caused by the process that calls B<mbind>()  for that region."
629 msgstr ""
630 "指定されたメモリー範囲に、 B<shmget>(2)  システムコールを使って作成された"
631 "り、 B<shmat>(2)  システムコールを使って付加 (attach) されたりした共有メモ"
632 "リー領域が 含まれる場合、無名メモリー領域や共有メモリー領域に対するページ割り"
633 "当ては、 共有メモリーセグメントへポリシーの設定を行ったプロセスがページ割り当"
634 "て のきっかけとなったかに関わらず、指定されたポリシーにしたがって割り当て が"
635 "行われる。 しかしながら、共有メモリー領域が B<SHM_HUGETLB> フラグを指定して作"
636 "成された場合には、ヒュージページ (huge page) の割り当てが 指定されたポリシー"
637 "にしたがって行われるのは、その領域に対して B<mbind>()  を呼び出したプロセスが"
638 "ページ割り当てのきっかけとなった場合のみである。"
639
640 #. type: Plain text
641 #: build/C/man2/mbind.2:116
642 msgid ""
643 "By default, B<mbind>()  has an effect only for new allocations; if the pages "
644 "inside the range have been already touched before setting the policy, then "
645 "the policy has no effect.  This default behavior may be overridden by the "
646 "B<MPOL_MF_MOVE> and B<MPOL_MF_MOVE_ALL> flags described below."
647 msgstr ""
648 "デフォルトでは、 B<mbind>()  は新規のメモリー割り当てに対してのみ効果を持"
649 "つ。 ポリシーが設定される前にすでに使用されている範囲内のページに対しては、 "
650 "ポリシーは影響しない。 このデフォルトの動作は、以下で説明するフラグ "
651 "B<MPOL_MF_MOVE> や B<MPOL_MF_MOVE_ALL> により上書きされる可能性がある。"
652
653 #. type: Plain text
654 #: build/C/man2/mbind.2:133
655 msgid ""
656 "The I<mode> argument must specify one of B<MPOL_DEFAULT>, B<MPOL_BIND>, "
657 "B<MPOL_INTERLEAVE>, B<MPOL_PREFERRED>, or B<MPOL_LOCAL> (which are described "
658 "in detail below).  All policy modes except B<MPOL_DEFAULT> require the "
659 "caller to specify the node or nodes to which the mode applies, via the "
660 "I<nodemask> argument."
661 msgstr "I<mode> 引き数には、 B<MPOL_DEFAULT>, B<MPOL_BIND>, B<MPOL_INTERLEAVE>, B<MPOL_PREFERRED>, B<MPOL_LOCAL> (詳細は下記参照) のいずれか一つを指定しなければならない。 B<MPOL_DEFAULT> 以外のポリシーモードの場合、呼び出し元は I<nodemask> 引き数でそのポリシーモードを適用するノードを指定する必要がある。"
662
663 #. type: Plain text
664 #: build/C/man2/mbind.2:141 build/C/man2/set_mempolicy.2:100
665 msgid ""
666 "The I<mode> argument may also include an optional I<mode flag>.  The "
667 "supported I<mode flags> are:"
668 msgstr ""
669 "I<mode> 引き数には、追加で I<モードフラグ> を含めることもできる。 サポートさ"
670 "れている I<モードフラグ> は以下の通りである。"
671
672 #. type: TP
673 #: build/C/man2/mbind.2:141
674 #, no-wrap
675 msgid "B<MPOL_F_STATIC_NODES> (since Linux-2.6.26)"
676 msgstr "B<MPOL_F_STATIC_NODES> (Linux-2.6.26 以降)"
677
678 #. type: Plain text
679 #: build/C/man2/mbind.2:151
680 msgid ""
681 "A nonempty I<nodemask> specifies physical node IDs.  Linux does not remap "
682 "the I<nodemask> when the thread moves to a different cpuset context, nor "
683 "when the set of nodes allowed by the thread's current cpuset context changes."
684 msgstr "空でない I<nodemask> は、物理ノード ID である。 Linux では、そのスレッドが異なる CPU 集合コンテキスト (cpuset context)  に移動した場合でも、そのスレッドの現在の CPU 集合コンテキストで 許可されているノード集合が変化した場合でも、 I<nodemask> をマッピングし直すことはない。"
685
686 #. type: TP
687 #: build/C/man2/mbind.2:151
688 #, no-wrap
689 msgid "B<MPOL_F_RELATIVE_NODES> (since Linux-2.6.26)"
690 msgstr "B<MPOL_F_RELATIVE_NODES> (Linux-2.6.26 以降)"
691
692 #. type: Plain text
693 #: build/C/man2/mbind.2:157
694 msgid ""
695 "A nonempty I<nodemask> specifies node IDs that are relative to the set of "
696 "node IDs allowed by the thread's current cpuset."
697 msgstr "空でない I<nodemask> は、そのスレッドの現在の CPU 集合で許可されているノード ID 集合 における相対的なノード ID である。"
698
699 #. type: Plain text
700 #: build/C/man2/mbind.2:185
701 msgid ""
702 "I<nodemask> points to a bit mask of nodes containing up to I<maxnode> bits.  "
703 "The bit mask size is rounded to the next multiple of I<sizeof(unsigned "
704 "long)>, but the kernel will use bits only up to I<maxnode>.  A NULL value of "
705 "I<nodemask> or a I<maxnode> value of zero specifies the empty set of nodes.  "
706 "If the value of I<maxnode> is zero, the I<nodemask> argument is ignored.  "
707 "Where a I<nodemask> is required, it must contain at least one node that is "
708 "on-line, allowed by the thread's current cpuset context (unless the "
709 "B<MPOL_F_STATIC_NODES> mode flag is specified), and contains memory."
710 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> モードフラグが指定されていない場合)、メモリーがあるノードが 少なくとも一つ入っていなければならない。"
711
712 #. type: Plain text
713 #: build/C/man2/mbind.2:189 build/C/man2/set_mempolicy.2:161
714 msgid "The I<mode> argument must include one of the following values:"
715 msgstr "I<mode> 引き数には、以下の値のいずれかひとつを含めなければならない。"
716
717 #. type: TP
718 #: build/C/man2/mbind.2:189 build/C/man2/set_mempolicy.2:161
719 #, no-wrap
720 msgid "B<MPOL_DEFAULT>"
721 msgstr "B<MPOL_DEFAULT>"
722
723 #. type: Plain text
724 #: build/C/man2/mbind.2:210
725 msgid ""
726 "This mode requests that any nondefault policy be removed, restoring default "
727 "behavior.  When applied to a range of memory via B<mbind>(), this means to "
728 "use the thread memory policy, which may have been set with "
729 "B<set_mempolicy>(2).  If the mode of the thread memory policy is also "
730 "B<MPOL_DEFAULT>, the system-wide default policy will be used.  The system-"
731 "wide default policy allocates pages on the node of the CPU that triggers the "
732 "allocation.  For B<MPOL_DEFAULT>, the I<nodemask> and I<maxnode> arguments "
733 "must be specify the empty set of nodes."
734 msgstr "このモードはデフォルトではないメモリーポリシーを削除し、 デフォルトの動作に戻すことを指定するものである。 B<mbind>()  経由で、あるメモリー領域に対して B<MPOL_DEFAULT> が適用された場合、スレッドのメモリポリシーを使用することを意味する。 スレッドのメモリポリシーは、 B<set_mempolicy>(2)  で変更されているかもしれない。 スレッドのメモリポリシーのモードも B<MPOL_DEFAULT> の場合、システム全体のデフォルトポリシーが使用される。 システム全体のデフォルトポリシーでは、割り当てのきっかけとなった CPU のノードからページの割り当てを行う。 B<MPOL_DEFAULT> では、引き数 I<nodemask> と I<maxnode> にノードの空集合を指定しなければならない。"
735
736 #. type: TP
737 #: build/C/man2/mbind.2:210 build/C/man2/set_mempolicy.2:171
738 #, no-wrap
739 msgid "B<MPOL_BIND>"
740 msgstr "B<MPOL_BIND>"
741
742 #.  commit 19770b32609b6bf97a3dece2529089494cbfc549
743 #. type: Plain text
744 #: build/C/man2/mbind.2:231
745 #, fuzzy
746 #| msgid ""
747 #| "The B<MPOL_BIND> mode specifies a strict policy that restricts memory "
748 #| "allocation to the nodes specified in I<nodemask>.  If I<nodemask> "
749 #| "specifies more than one node, page allocations will come from the node "
750 #| "with the lowest numeric node ID first, until that node contains no free "
751 #| "memory.  Allocations will then come from the node with the next highest "
752 #| "node ID specified in I<nodemask> and so forth, until none of the "
753 #| "specified nodes contain free memory.  Pages will not be allocated from "
754 #| "any node not specified in the I<nodemask>."
755 msgid ""
756 "This mode specifies a strict policy that restricts memory allocation to the "
757 "nodes specified in I<nodemask>.  If I<nodemask> specifies more than one "
758 "node, page allocations will come from the node with sufficient free memory "
759 "that is closest to the node where the allocation takes place.  Pages will "
760 "not be allocated from any node not specified in the IR nodemask .  (Before "
761 "Linux 2.6.26, page allocations came from the node with the lowest numeric "
762 "node ID first, until that node contained no free memory.  Allocations then "
763 "came from the node with the next highest node ID specified in I<nodemask> "
764 "and so forth, until none of the specified nodes contained free memory.)"
765 msgstr ""
766 "B<MPOL_BIND> は厳しいポリシーで、メモリー割り当ては I<nodemask> に指定された"
767 "ノードに限定される。 他のノードへの割り当ては行われない。 I<nodemask> に 2 個"
768 "以上のノードが指定された場合、ページの割り当ては ノード ID が数字として最小の"
769 "ノードから開始され、 そのノードに空きメモリーがなくなるまでそのノードから "
770 "ページ割り当てが行われる。そのノードに空きメモリーがなくなったら、 次に小さな"
771 "ノード ID を持つノードからページ割り当てが行われる。 これを、 I<nodemask> で"
772 "指定された全てのノードで空きメモリーがなくなるまで繰り返す。 I<nodemask> で指"
773 "定された以外のノードからはページの割り当ては行われない。"
774
775 #. type: TP
776 #: build/C/man2/mbind.2:231 build/C/man2/set_mempolicy.2:187
777 #, no-wrap
778 msgid "B<MPOL_INTERLEAVE>"
779 msgstr "B<MPOL_INTERLEAVE>"
780
781 #. type: Plain text
782 #: build/C/man2/mbind.2:243
783 msgid ""
784 "This mode specifies that page allocations be interleaved across the set of "
785 "nodes specified in I<nodemask>.  This optimizes for bandwidth instead of "
786 "latency by spreading out pages and memory accesses to those pages across "
787 "multiple nodes.  To be effective the memory area should be fairly large, at "
788 "least 1\\ MB or bigger with a fairly uniform access pattern.  Accesses to a "
789 "single page of the area will still be limited to the memory bandwidth of a "
790 "single node."
791 msgstr "このモードは、メモリー割り当てが I<nodemask> に指定されたノード間で交互に行われることを指定するものである。 このポリシーでは、複数のノードにページを広げて配置し、これらのページへの メモリーアクセスを分散することで、遅延ではなく、帯域を最適化する。 効果を得るには、メモリー領域をある程度大きくすべきであり、 メモリーアクセスのパターンがかなり均一な場合でも 少なくとも 1\\ MB 以上にすべきである。 このモードでも、一つのページへのアクセスに関しては 一つのノードのメモリー帯域が上限となることは変わりない。"
792
793 #. type: TP
794 #: build/C/man2/mbind.2:243 build/C/man2/set_mempolicy.2:201
795 #, no-wrap
796 msgid "B<MPOL_PREFERRED>"
797 msgstr "B<MPOL_PREFERRED>"
798
799 #. type: Plain text
800 #: build/C/man2/mbind.2:259
801 msgid ""
802 "This mode sets the preferred node for allocation.  The kernel will try to "
803 "allocate pages from this node first and fall back to other nodes if the "
804 "preferred nodes is low on free memory.  If I<nodemask> specifies more than "
805 "one node ID, the first node in the mask will be selected as the preferred "
806 "node.  If the I<nodemask> and I<maxnode> arguments specify the empty set, "
807 "then the memory is allocated on the node of the CPU that triggered the "
808 "allocation."
809 msgstr "このモードは、割り当て時に優先されるノードを設定する。 カーネルはまず優先ノードにページ割り当てを行おうとし、 優先ノードに空きメモリーが少ない場合に他のノードに割り当てを行う。 I<nodemask> に複数のノード ID が指定された場合は、 I<nodemask> 内の最初のノードが優先ノードとして選択される。 引き数 I<nodemask>, I<maxnode> で空集合が指定された場合は、割り当てのきっかけとなった CPU のノードに メモリー割り当てが行われる。"
810
811 #. type: TP
812 #: build/C/man2/mbind.2:259 build/C/man2/set_mempolicy.2:218
813 #, no-wrap
814 msgid "B<MPOL_LOCAL> (since Linux 3.8)"
815 msgstr "B<MPOL_LOCAL> (Linux 3.8 以降)"
816
817 #.  commit 479e2802d09f1e18a97262c4c6f8f17ae5884bd8
818 #.  commit f2a07f40dbc603c15f8b06e6ec7f768af67b424f
819 #. type: Plain text
820 #: build/C/man2/mbind.2:283
821 msgid ""
822 "This mode specifies \"local allocation\"; the memory is allocated on the "
823 "node of the CPU that triggered the allocation (the \"local node\").  The "
824 "I<nodemask> and I<maxnode> arguments must specify the empty set.  If the "
825 "\"local node\" is low on free memory, the kernel will try to allocate memory "
826 "from other nodes.  The kernel will allocate memory from the \"local node\" "
827 "whenever memory for this node is available.  If the \"local node\" is not "
828 "allowed by the thread's current cpuset context, the kernel will try to "
829 "allocate memory from other nodes.  The kernel will allocate memory from the "
830 "\"local node\" whenever it becomes allowed by the thread's current cpuset "
831 "context.  By contrast, B<MPOL_DEFAULT> reverts to the memory policy of the "
832 "thread (which may be set via B<set_mempolicy>(2)); that policy may be "
833 "something other than \"local allocation\"."
834 msgstr ""
835
836 #.  According to the kernel code, the following is not true
837 #.  --Lee Schermerhorn
838 #.  In 2.6.16 or later the kernel will also try to move pages
839 #.  to the requested node with this flag.
840 #. type: Plain text
841 #: build/C/man2/mbind.2:299
842 msgid ""
843 "If B<MPOL_MF_STRICT> is passed in I<flags> and I<mode> is not "
844 "B<MPOL_DEFAULT>, then the call fails with the error B<EIO> if the existing "
845 "pages in the memory range don't follow the policy."
846 msgstr ""
847 "I<flags> に B<MPOL_MF_STRICT> が 指定され、 I<mode> が B<MPOL_DEFAULT> でない"
848 "場合、 指定されたポリシーに従っていないメモリー領域にページが存在すると、 "
849 "B<mbind>()  はエラー B<EIO> で失敗する。"
850
851 #. type: Plain text
852 #: build/C/man2/mbind.2:312
853 msgid ""
854 "If B<MPOL_MF_MOVE> is specified in I<flags>, then the kernel will attempt to "
855 "move all the existing pages in the memory range so that they follow the "
856 "policy.  Pages that are shared with other processes will not be moved.  If "
857 "B<MPOL_MF_STRICT> is also specified, then the call fails with the error "
858 "B<EIO> if some pages could not be moved."
859 msgstr ""
860 "I<flags> に B<MPOL_MF_MOVE> が指定されると、カーネルはそのメモリー領域内の既"
861 "存の全てのページを移動し、 指定されたポリシーに従うようにしようとする。 他の"
862 "プロセスと共有されているページは移動されない。 B<MPOL_MF_STRICT> も指定された"
863 "場合、移動できなかったページがあると、 B<mbind>()  はエラー B<EIO> で失敗す"
864 "る。"
865
866 #.  ---------------------------------------------------------------
867 #. type: Plain text
868 #: build/C/man2/mbind.2:328
869 msgid ""
870 "If B<MPOL_MF_MOVE_ALL> is passed in I<flags>, then the kernel will attempt "
871 "to move all existing pages in the memory range regardless of whether other "
872 "processes use the pages.  The calling thread must be privileged "
873 "(B<CAP_SYS_NICE>)  to use this flag.  If B<MPOL_MF_STRICT> is also "
874 "specified, then the call fails with the error B<EIO> if some pages could not "
875 "be moved."
876 msgstr "I<flags> に B<MPOL_MF_MOVE_ALL> が指定されると、カーネルはそのメモリー領域内の既存の全てのページを、 他のプロセスがページを使用しているかどうかに関わらず移動する。 このフラグを使用するには、呼び出し元のスレッドは特権 (B<CAP_SYS_NICE>)  を持っていなければならない。 B<MPOL_MF_STRICT> も指定された場合、移動できなかったページがあると、 B<mbind>()  はエラー B<EIO> で失敗する。"
877
878 #.  ---------------------------------------------------------------
879 #. type: Plain text
880 #: build/C/man2/mbind.2:336
881 msgid ""
882 "On success, B<mbind>()  returns 0; on error, -1 is returned and I<errno> is "
883 "set to indicate the error."
884 msgstr ""
885 "成功すると、 B<mbind>()  は 0 を返す。エラーの場合、-1 を返し、 I<errno> にエ"
886 "ラーを示す値を設定する。"
887
888 #. type: Plain text
889 #: build/C/man2/mbind.2:349
890 msgid ""
891 "Part or all of the memory range specified by I<nodemask> and I<maxnode> "
892 "points outside your accessible address space.  Or, there was an unmapped "
893 "hole in the specified memory range specified by I<addr> and I<len>."
894 msgstr ""
895 "I<nodemask> と I<maxnode> で指定されたメモリー領域の一部または全部が、 呼び出"
896 "し元がアクセス可能なアドレス空間外を指している。 もしくは I<addr> と I<len> "
897 "で指定されたメモリー領域にマップされていない部分 (unmapped hole)  があった、"
898
899 #.  As at 2.6.23, this limit is "a page worth of bits", e.g.,
900 #.  8 * 4096 bits, assuming a 4kB page size.
901 #. type: Plain text
902 #: build/C/man2/mbind.2:397
903 msgid ""
904 "An invalid value was specified for I<flags> or I<mode>; or I<addr + len> was "
905 "less than I<addr>; or I<addr> is not a multiple of the system page size.  "
906 "Or, I<mode> is B<MPOL_DEFAULT> and I<nodemask> specified a nonempty set; or "
907 "I<mode> is B<MPOL_BIND> or B<MPOL_INTERLEAVE> and I<nodemask> is empty.  Or, "
908 "I<maxnode> exceeds a kernel-imposed limit.  Or, I<nodemask> specifies one or "
909 "more node IDs that are greater than the maximum supported node ID.  Or, none "
910 "of the node IDs specified by I<nodemask> are on-line and allowed by the "
911 "thread's current cpuset context, or none of the specified nodes contain "
912 "memory.  Or, the I<mode> argument specified both B<MPOL_F_STATIC_NODES> and "
913 "B<MPOL_F_RELATIVE_NODES>."
914 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> の両方が指定された。"
915
916 #. type: TP
917 #: build/C/man2/mbind.2:397
918 #, no-wrap
919 msgid "B<EIO>"
920 msgstr "B<EIO>"
921
922 #. type: Plain text
923 #: build/C/man2/mbind.2:408
924 msgid ""
925 "B<MPOL_MF_STRICT> was specified and an existing page was already on a node "
926 "that does not follow the policy; or B<MPOL_MF_MOVE> or B<MPOL_MF_MOVE_ALL> "
927 "was specified and the kernel was unable to move all existing pages in the "
928 "range."
929 msgstr ""
930 "B<MPOL_MF_STRICT> が指定されたが、このポリシーに従っていないノードに すでに"
931 "ページが存在していた。 もしくは B<MPOL_MF_MOVE> か B<MPOL_MF_MOVE_ALL> が指定"
932 "されたが、カーネルが指定された領域内の既存の全てのページを 移動することができ"
933 "なかった。"
934
935 #. type: TP
936 #: build/C/man2/mbind.2:408 build/C/man2/set_mempolicy.2:296
937 #, no-wrap
938 msgid "B<ENOMEM>"
939 msgstr "B<ENOMEM>"
940
941 #. type: Plain text
942 #: build/C/man2/mbind.2:411 build/C/man2/set_mempolicy.2:299
943 msgid "Insufficient kernel memory was available."
944 msgstr "利用可能なカーネルメモリーが十分でなかった。"
945
946 #. type: TP
947 #: build/C/man2/mbind.2:411 build/C/man2/migrate_pages.2:121
948 #: build/C/man2/move_pages.2:203
949 #, no-wrap
950 msgid "B<EPERM>"
951 msgstr "B<EPERM>"
952
953 #.  ---------------------------------------------------------------
954 #. type: Plain text
955 #: build/C/man2/mbind.2:421
956 msgid ""
957 "The I<flags> argument included the B<MPOL_MF_MOVE_ALL> flag and the caller "
958 "does not have the B<CAP_SYS_NICE> privilege."
959 msgstr ""
960 "I<flags> 引き数に B<MPOL_MF_MOVE_ALL> フラグが含まれているが、呼び出し元が "
961 "B<CAP_SYS_NICE> 特権を持たない。"
962
963 #. type: Plain text
964 #: build/C/man2/mbind.2:425
965 msgid ""
966 "The B<mbind>()  system call was added to the Linux kernel in version 2.6.7."
967 msgstr ""
968 "B<mbind>()  システムコールはバージョン 2.6.7 で Linux カーネルに追加された。"
969
970 #. type: Plain text
971 #: build/C/man2/mbind.2:435
972 msgid ""
973 "NUMA policy is not supported on a memory-mapped file range that was mapped "
974 "with the B<MAP_SHARED> flag."
975 msgstr ""
976 "NUMA ポリシーは、 B<MAP_SHARED> フラグが指定されてマップされたメモリーマップ"
977 "ファイルの領域では サポートされていない。"
978
979 #. type: Plain text
980 #: build/C/man2/mbind.2:469
981 msgid ""
982 "The B<MPOL_DEFAULT> mode can have different effects for B<mbind>()  and "
983 "B<set_mempolicy>(2).  When B<MPOL_DEFAULT> is specified for "
984 "B<set_mempolicy>(2), the thread's memory policy reverts to the system "
985 "default policy or local allocation.  When B<MPOL_DEFAULT> is specified for a "
986 "range of memory using B<mbind>(), any pages subsequently allocated for that "
987 "range will use the thread's memory policy, as set by B<set_mempolicy>(2).  "
988 "This effectively removes the explicit policy from the specified range, "
989 "\"falling back\" to a possibly nondefault policy.  To select explicit "
990 "\"local allocation\" for a memory range, specify a I<mode> of B<MPOL_LOCAL> "
991 "or B<MPOL_PREFERRED> with an empty set of nodes.  This method will work for "
992 "B<set_mempolicy>(2), as well."
993 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_LOCAL> か B<MPOL_PREFERRED> を指定し、 I<nodemask> に空集合のノードを指定すればよい。 この方法は B<set_mempolicy>(2)  でも通用する。"
994
995 #. type: Plain text
996 #: build/C/man2/mbind.2:473
997 msgid ""
998 "Support for huge page policy was added with 2.6.16.  For interleave policy "
999 "to be effective on huge page mappings the policied memory needs to be tens "
1000 "of megabytes or larger."
1001 msgstr ""
1002 "2.6.16 でヒュージページポリシーへの対応が追加された。 インターリーブポリシー"
1003 "がヒュージページのマッピングで効果を持つには、 ポリシーが適用されるメモリーが"
1004 "数十メガバイト以上である必要がある。"
1005
1006 #.  commit dcf1763546d76c372f3136c8d6b2b6e77f140cf0
1007 #. type: Plain text
1008 #: build/C/man2/mbind.2:478
1009 msgid "Before Linux 5.7.  B<MPOL_MF_STRICT> was ignored on huge page mappings."
1010 msgstr "Linux 5.7 より前では、 B<MPOL_MF_STRICT> はヒュージページのマッピングでは無視されていた。"
1011
1012 #. type: Plain text
1013 #: build/C/man2/mbind.2:483
1014 msgid ""
1015 "B<MPOL_MF_MOVE> and B<MPOL_MF_MOVE_ALL> are available only on Linux 2.6.16 "
1016 "and later."
1017 msgstr ""
1018 "B<MPOL_MF_MOVE> と B<MPOL_MF_MOVE_ALL> は Linux 2.6.16 以降でのみ利用可能であ"
1019 "る。"
1020
1021 #. type: Plain text
1022 #: build/C/man2/mbind.2:494
1023 msgid ""
1024 "B<get_mempolicy>(2), B<getcpu>(2), B<mmap>(2), B<set_mempolicy>(2), "
1025 "B<shmat>(2), B<shmget>(2), B<numa>(3), B<cpuset>(7), B<numa>(7), "
1026 "B<numactl>(8)"
1027 msgstr ""
1028 "B<get_mempolicy>(2), B<getcpu>(2), B<mmap>(2), B<set_mempolicy>(2),\n"
1029 "B<shmat>(2), B<shmget>(2), B<numa>(3), B<cpuset>(7), B<numa>(7),\n"
1030 "B<numactl>(8)"
1031
1032 #. type: TH
1033 #: build/C/man2/migrate_pages.2:18
1034 #, no-wrap
1035 msgid "MIGRATE_PAGES"
1036 msgstr "MIGRATE_PAGES"
1037
1038 #. type: Plain text
1039 #: build/C/man2/migrate_pages.2:21
1040 msgid "migrate_pages - move all pages in a process to another set of nodes"
1041 msgstr "migrate_pages - プロセスの全ページを別のノード集合に移動する"
1042
1043 #. type: Plain text
1044 #: build/C/man2/migrate_pages.2:28
1045 #, no-wrap
1046 msgid ""
1047 "B<long migrate_pages(int >I<pid>B<, unsigned long >I<maxnode,>\n"
1048 "B<                   const unsigned long *>I<old_nodes,>\n"
1049 "B<                   const unsigned long *>I<new_nodes>B<);>\n"
1050 msgstr ""
1051 "B<long migrate_pages(int >I<pid>B<, unsigned long >I<maxnode,>\n"
1052 "B<                   const unsigned long *>I<old_nodes,>\n"
1053 "B<                   const unsigned long *>I<new_nodes>B<);>\n"
1054
1055 #. type: Plain text
1056 #: build/C/man2/migrate_pages.2:31 build/C/man2/move_pages.2:32
1057 msgid "Link with I<-lnuma>."
1058 msgstr "I<-lnuma> とリンクする。"
1059
1060 #. type: Plain text
1061 #: build/C/man2/migrate_pages.2:47
1062 msgid ""
1063 "B<migrate_pages>()  attempts to move all pages of the process I<pid> that "
1064 "are in memory nodes I<old_nodes> to the memory nodes in I<new_nodes>.  Pages "
1065 "not located in any node in I<old_nodes> will not be migrated.  As far as "
1066 "possible, the kernel maintains the relative topology relationship inside "
1067 "I<old_nodes> during the migration to I<new_nodes>."
1068 msgstr ""
1069 "B<MIGRATE_PAGES>() は、メモリーノード I<old_nodes> にあるプロセス I<pid>\n"
1070 "の全ページを、メモリーノード I<new_nodes> に移動しようとする。I<old_nodes> "
1071 "で\n"
1072 "指定されたメモリーノードに置かれていないページは移動されない。\n"
1073 "カーネルは、 I<new_nodes> への移動の際に、 I<old_nodes> 内の相対的な\n"
1074 "トポロジー関係を可能な限り維持しようとする。"
1075
1076 #. type: Plain text
1077 #: build/C/man2/migrate_pages.2:69
1078 msgid ""
1079 "The I<old_nodes> and I<new_nodes> arguments are pointers to bit masks of "
1080 "node numbers, with up to I<maxnode> bits in each mask.  These masks are "
1081 "maintained as arrays of unsigned I<long> integers (in the last I<long> "
1082 "integer, the bits beyond those specified by I<maxnode> are ignored).  The "
1083 "I<maxnode> argument is the maximum node number in the bit mask plus one "
1084 "(this is the same as in B<mbind>(2), but different from B<select>(2))."
1085 msgstr ""
1086 "引き数 I<old_nodes> と I<new_nodes> は、最大で I<maxnode> ビットから\n"
1087 "構成されるノード番号のビットマスクへのポインターである。\n"
1088 "各ビットマスクは符号なし I<long> 整数の配列として管理される\n"
1089 "(I<maxnode> で指定された長さを越えた部分のビットは無視される)。\n"
1090 "引き数 I<maxnode> は最大ノード番号であり、ビットマスクの長さに 1 を\n"
1091 "加えた値となる (これは B<mbind>(2) と同じだが、 B<select>(2) とは違う)。"
1092
1093 #. type: Plain text
1094 #: build/C/man2/migrate_pages.2:83
1095 msgid ""
1096 "The I<pid> argument is the ID of the process whose pages are to be moved.  "
1097 "To move pages in another process, the caller must be privileged "
1098 "(B<CAP_SYS_NICE>)  or the real or effective user ID of the calling process "
1099 "must match the real or saved-set user ID of the target process.  If I<pid> "
1100 "is 0, then B<migrate_pages>()  moves pages of the calling process."
1101 msgstr ""
1102 "引き数 I<pid> は、移動を行うページの所有者のプロセス ID である。\n"
1103 "別のプロセスのページを移動するには、呼び出したプロセスが特権\n"
1104 "(B<CAP_SYS_NICE>) を持っているか、呼び出したプロセスの実ユーザー ID か\n"
1105 "実効ユーザー ID がページ移動の対象プロセスの実ユーザー ID か saved-set \n"
1106 "ユーザー ID と一致していなければならない。I<pid> が 0 の場合、\n"
1107 "B<migrate_pages>() は呼び出したプロセスのページを移動する。"
1108
1109 #. type: Plain text
1110 #: build/C/man2/migrate_pages.2:88
1111 msgid ""
1112 "Pages shared with another process will be moved only if the initiating "
1113 "process has the B<CAP_SYS_NICE> privilege."
1114 msgstr ""
1115 "別のプロセスと共有しているページは、呼び出したプロセスが\n"
1116 "B<CAP_SYS_NICE> 特権を持っている場合にのみ移動される。"
1117
1118 #. type: Plain text
1119 #: build/C/man2/migrate_pages.2:96
1120 msgid ""
1121 "On success B<migrate_pages>()  returns the number of pages that could not be "
1122 "moved (i.e., a return of zero means that all pages were successfully "
1123 "moved).  On error, it returns -1, and sets I<errno> to indicate the error."
1124 msgstr ""
1125 "B<migrate_pages>() は、移動できなかったページ数を返す\n"
1126 "(つまり、移動に成功した場合は返り値は 0 となる)。\n"
1127 "エラーの場合、 -1 を返し、 I<errno> にエラーを示す値を設定する。"
1128
1129 #. type: Plain text
1130 #: build/C/man2/migrate_pages.2:104
1131 msgid ""
1132 "Part or all of the memory range specified by I<old_nodes>/I<new_nodes> and "
1133 "I<maxnode> points outside your accessible address space."
1134 msgstr "I<old_nodes>/I<new_nodes> と I<maxnode> で指定されたメモリー領域の一部または全部が、 呼び出し元がアクセス可能なアドレス空間外を指している。"
1135
1136 #.  As at 3.5, this limit is "a page worth of bits", e.g.,
1137 #.  8 * 4096 bits, assuming a 4kB page size.
1138 #. type: Plain text
1139 #: build/C/man2/migrate_pages.2:121
1140 #, fuzzy
1141 #| msgid ""
1142 #| "I<mode> is invalid.  Or, I<mode> is B<MPOL_DEFAULT> and I<nodemask> is "
1143 #| "nonempty, or I<mode> is B<MPOL_BIND> or B<MPOL_INTERLEAVE> and "
1144 #| "I<nodemask> is empty.  Or, I<maxnode> specifies more than a page worth of "
1145 #| "bits.  Or, I<nodemask> specifies one or more node IDs that are greater "
1146 #| "than the maximum supported node ID.  Or, none of the node IDs specified "
1147 #| "by I<nodemask> are on-line and allowed by the process's current cpuset "
1148 #| "context, or none of the specified nodes contain memory.  Or, the I<mode> "
1149 #| "argument specified both B<MPOL_F_STATIC_NODES> and "
1150 #| "B<MPOL_F_RELATIVE_NODES>."
1151 msgid ""
1152 "The value specified by I<maxnode> exceeds a kernel-imposed limit.  Or, "
1153 "I<old_nodes> or I<new_nodes> specifies one or more node IDs that are greater "
1154 "than the maximum supported node ID.  Or, none of the node IDs specified by "
1155 "I<new_nodes> are on-line and allowed by the process's current cpuset "
1156 "context, or none of the specified nodes contain memory."
1157 msgstr ""
1158 "I<mode> が不正である。 I<mode> が B<MPOL_DEFAULT> で、 I<nodemask> が空ではな"
1159 "い。 I<mode> が B<MPOL_BIND> か B<MPOL_INTERLEAVE> で、 I<nodemask> が空であ"
1160 "る。 I<maxnode> で実際に意味があるビット数より多くのビット数が指定された。 "
1161 "I<nodemask> に、サポートされている最大ノード ID より大きいノードが指定され"
1162 "た。 I<nodemask> に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキ"
1163 "ストで 許可されているノードが一つも含まれていないか、 メモリーを含むノードが"
1164 "一つも指定されていない。 I<mode> 引き数に B<MPOL_F_STATIC_NODES> と "
1165 "B<MPOL_F_RELATIVE_NODES> の両方が指定された。"
1166
1167 #. type: Plain text
1168 #: build/C/man2/migrate_pages.2:130
1169 msgid ""
1170 "Insufficient privilege (B<CAP_SYS_NICE>)  to move pages of the process "
1171 "specified by I<pid>, or insufficient privilege (B<CAP_SYS_NICE>)  to access "
1172 "the specified target nodes."
1173 msgstr ""
1174 "I<pid> で指定されたプロセスのページを移動するのに必要な特権\n"
1175 "(B<CAP_SYS_NICE>) がなかった。または、指定された対象ノードにアクセス\n"
1176 "するのに必要な権限 (B<CAP_SYS_NICE>) がなかった。"
1177
1178 #. type: TP
1179 #: build/C/man2/migrate_pages.2:130 build/C/man2/move_pages.2:212
1180 #, no-wrap
1181 msgid "B<ESRCH>"
1182 msgstr "B<ESRCH>"
1183
1184 #.  FIXME Document the other errors that can occur for migrate_pages()
1185 #. type: Plain text
1186 #: build/C/man2/migrate_pages.2:136
1187 msgid "No process matching I<pid> could be found."
1188 msgstr "プロセス ID が I<pid> のプロセスが見つからなかった。"
1189
1190 #. type: Plain text
1191 #: build/C/man2/migrate_pages.2:140
1192 msgid ""
1193 "The B<migrate_pages>()  system call first appeared on Linux in version "
1194 "2.6.16."
1195 msgstr "B<migrate_pages>() システムコールは Linux 2.6.16 で初めて登場した。"
1196
1197 #. type: Plain text
1198 #: build/C/man2/migrate_pages.2:154
1199 msgid ""
1200 "Use B<get_mempolicy>(2)  with the B<MPOL_F_MEMS_ALLOWED> flag to obtain the "
1201 "set of nodes that are allowed by the calling process's cpuset.  Note that "
1202 "this information is subject to change at any time by manual or automatic "
1203 "reconfiguration of the cpuset."
1204 msgstr ""
1205 "呼び出し元プロセスの CPU 集合で許可されているノード集合を取得するには、\n"
1206 "B<MPOL_F_MEMS_ALLOWED> フラグを付けて B<get_mempolicy>(2) を使うこと。\n"
1207 "この情報は、手動/自動に限らず CPU 集合の再構成によりいつでも\n"
1208 "変更されることがある点に注意してほしい。"
1209
1210 #. type: Plain text
1211 #: build/C/man2/migrate_pages.2:166
1212 msgid ""
1213 "Use of B<migrate_pages>()  may result in pages whose location (node) "
1214 "violates the memory policy established for the specified addresses (see "
1215 "B<mbind>(2))  and/or the specified process (see B<set_mempolicy>(2)).  That "
1216 "is, memory policy does not constrain the destination nodes used by "
1217 "B<migrate_pages>()."
1218 msgstr ""
1219 "B<migrate_pages> を使用すると、ページが置かれる場所 (ノード) が、指定\n"
1220 "されたアドレスに対して設定されたメモリーポリシー (B<mbind>(2) 参照) や\n"
1221 "指定されたプロセスに対して設定されたメモリーポリシー\n"
1222 "(B<set_mempolicy>(2) 参照) に違反する状況になる可能性がある。\n"
1223 "すなわち、メモリーポリシーによる制約は B<migrate_pages>() による移動先\n"
1224 "ノードの選択には適用されないということである。"
1225
1226 #. type: Plain text
1227 #: build/C/man2/migrate_pages.2:172 build/C/man2/move_pages.2:250
1228 msgid ""
1229 "The I<E<lt>numaif.hE<gt>> header is not included with glibc, but requires "
1230 "installing I<libnuma-devel> or a similar package."
1231 msgstr ""
1232 "ヘッダーファイル I<E<lt>numaif.hE<gt>> は glibc には含まれておらず、 "
1233 "I<libnuma-devel> か同様のパッケージをインストールする必要がある。"
1234
1235 #. type: Plain text
1236 #: build/C/man2/migrate_pages.2:182 build/C/man2/move_pages.2:260
1237 msgid ""
1238 "B<get_mempolicy>(2), B<mbind>(2), B<set_mempolicy>(2), B<numa>(3), "
1239 "B<numa_maps>(5), B<cpuset>(7), B<numa>(7), B<migratepages>(8), B<numastat>(8)"
1240 msgstr ""
1241 "B<get_mempolicy>(2), B<mbind>(2), B<set_mempolicy>(2), B<numa>(3), "
1242 "B<numa_maps>(5), B<cpuset>(7), B<numa>(7), B<migratepages>(8), B<numastat>(8)"
1243
1244 #. type: Plain text
1245 #: build/C/man2/migrate_pages.2:185
1246 msgid "I<Documentation/vm/page_migration.rst> in the Linux kernel source tree"
1247 msgstr "Linux カーネルソースの I<Documentation/vm/page_migration.rst>"
1248
1249 #. type: TH
1250 #: build/C/man2/move_pages.2:20
1251 #, no-wrap
1252 msgid "MOVE_PAGES"
1253 msgstr "MOVE_PAGES"
1254
1255 #. type: Plain text
1256 #: build/C/man2/move_pages.2:23
1257 msgid "move_pages - move individual pages of a process to another node"
1258 msgstr "move_pages - あるプロセスの個々のページを別のノードに移動する"
1259
1260 #. type: Plain text
1261 #: build/C/man2/move_pages.2:29
1262 #, no-wrap
1263 msgid ""
1264 "B<long move_pages(int >I<pid>B<, unsigned long count, void **>I<pages>B<,>\n"
1265 "B<                const int *>I<nodes>B<, int *>I<status>B<, int >I<flags>B<);>\n"
1266 msgstr ""
1267 "B<long move_pages(int >I<pid>B<, unsigned long count, void **>I<pages>B<,>\n"
1268 "B<                const int *>I<nodes>B<, int *>I<status>B<, int >I<flags>B<);>\n"
1269
1270 #. type: Plain text
1271 #: build/C/man2/move_pages.2:45
1272 msgid ""
1273 "B<move_pages>()  moves the specified I<pages> of the process I<pid> to the "
1274 "memory nodes specified by I<nodes>.  The result of the move is reflected in "
1275 "I<status>.  The I<flags> indicate constraints on the pages to be moved."
1276 msgstr ""
1277 "B<move_pages>()  は、プロセス I<pid> の指定されたページ I<pages> を I<nodes> "
1278 "で指定されたメモリーノードに移動する。 移動の結果は I<status> に反映される。 "
1279 "I<flags> では移動されるページに関する制約を指定する。"
1280
1281 #. type: Plain text
1282 #: build/C/man2/move_pages.2:53
1283 msgid ""
1284 "I<pid> is the ID of the process in which pages are to be moved.  If I<pid> "
1285 "is 0, then B<move_pages>()  moves pages of the calling process."
1286 msgstr ""
1287
1288 #. type: Plain text
1289 #: build/C/man2/move_pages.2:55
1290 msgid "To move pages in another process requires the following privileges:"
1291 msgstr ""
1292
1293 #. type: IP
1294 #: build/C/man2/move_pages.2:55 build/C/man2/move_pages.2:61
1295 #, no-wrap
1296 msgid "*"
1297 msgstr "*"
1298
1299 #. type: Plain text
1300 #: build/C/man2/move_pages.2:61
1301 msgid ""
1302 "In kernels up to and including Linux 4.12: the caller must be privileged "
1303 "(B<CAP_SYS_NICE>)  or the real or effective user ID of the calling process "
1304 "must match the real or saved-set user ID of the target process."
1305 msgstr "Linux 4.12 以前のカーネルでは、呼び出し元が特権 (B<CAP_SYS_NICE>)  を持っているか、呼び出したプロセスの実ユーザー ID か実効ユーザー ID が ページ移動対象のプロセスの実ユーザー ID か保存 set-user-ID のどちらかと一致しなければならない。"
1306
1307 #.  commit 197e7e521384a23b9e585178f3f11c9fa08274b9
1308 #. type: Plain text
1309 #: build/C/man2/move_pages.2:73
1310 msgid ""
1311 "The older rules allowed the caller to discover various virtual address "
1312 "choices made by the kernel that could lead to the defeat of address-space-"
1313 "layout randomization for a process owned by the same UID as the caller, the "
1314 "rules were changed starting with Linux 4.13.  Since Linux 4.13, permission "
1315 "is governed by a ptrace access mode B<PTRACE_MODE_READ_REALCREDS> check with "
1316 "respect to the target process; see B<ptrace>(2)."
1317 msgstr ""
1318
1319 #. type: Plain text
1320 #: build/C/man2/move_pages.2:81
1321 msgid ""
1322 "I<count> is the number of pages to move.  It defines the size of the three "
1323 "arrays I<pages>, I<nodes>, and I<status>."
1324 msgstr ""
1325 "I<count> は移動するページ数である。 I<count> により I<pages>, I<nodes>, "
1326 "I<status> の 3 つの配列の大きさが定義される。"
1327
1328 #.  FIXME Describe the result if pointers in the 'pages' array are
1329 #.  not aligned to page boundaries
1330 #. type: Plain text
1331 #: build/C/man2/move_pages.2:89
1332 msgid ""
1333 "I<pages> is an array of pointers to the pages that should be moved.  These "
1334 "are pointers that should be aligned to page boundaries.  Addresses are "
1335 "specified as seen by the process specified by I<pid>."
1336 msgstr ""
1337 "I<pages> は、移動すべきページへのポインターの配列であり、 各ポインターはペー"
1338 "ジ境界に揃えた値を指定すべきである。 I<pid> で指定されたプロセスで見えるアド"
1339 "レスを指定する。"
1340
1341 #. type: Plain text
1342 #: build/C/man2/move_pages.2:102
1343 msgid ""
1344 "I<nodes> is an array of integers that specify the desired location for each "
1345 "page.  Each element in the array is a node number.  I<nodes> can also be "
1346 "NULL, in which case B<move_pages>()  does not move any pages but instead "
1347 "will return the node where each page currently resides, in the I<status> "
1348 "array.  Obtaining the status of each page may be necessary to determine "
1349 "pages that need to be moved."
1350 msgstr ""
1351 "I<nodes> は、各ページの希望の移動場所を示す整数値の配列であり、 配列の各要素"
1352 "はノード番号である。 I<nodes> には NULL を指定することもでき、この場合には "
1353 "B<move_pages>()  はどのページも移動しないが、各ページが現在配置されているノー"
1354 "ドを配列 I<status> に格納して返す。どのページを移動する必要があるかを判断する"
1355 "ために、 各ページの状態の取得が必要な場合もある。"
1356
1357 #. type: Plain text
1358 #: build/C/man2/move_pages.2:111
1359 #, fuzzy
1360 #| msgid ""
1361 #| "I<status> is an array of integers that return the status of each page.  "
1362 #| "The array contains valid values only if B<move_pages>()  did not return "
1363 #| "an error."
1364 msgid ""
1365 "I<status> is an array of integers that return the status of each page.  The "
1366 "array contains valid values only if B<move_pages>()  did not return an "
1367 "error.  Preinitialization of the array to a value which cannot represent a "
1368 "real numa node or valid error of status array could help to identify pages "
1369 "that have been migrated."
1370 msgstr ""
1371 "I<status> は、各ページの状態を表す整数値の配列である。 この配列に有効な値が格"
1372 "納されるのは、 B<move_pages>()  がエラーを返さなかった場合だけである。"
1373
1374 #. type: Plain text
1375 #: build/C/man2/move_pages.2:123
1376 msgid ""
1377 "I<flags> specify what types of pages to move.  B<MPOL_MF_MOVE> means that "
1378 "only pages that are in exclusive use by the process are to be moved.  "
1379 "B<MPOL_MF_MOVE_ALL> means that pages shared between multiple processes can "
1380 "also be moved.  The process must be privileged (B<CAP_SYS_NICE>)  to use "
1381 "B<MPOL_MF_MOVE_ALL>."
1382 msgstr ""
1383 "I<flags> には、どの種類のページを移動するかを指定する。 B<MPOL_MF_MOVE> は、"
1384 "そのプロセスが排他的に使用しているページだけを移動することを意味する。 "
1385 "B<MPOL_MF_MOVE_ALL> は、複数のプロセス間で共有されているページも移動できるこ"
1386 "とを意味する。 B<MPOL_MF_MOVE_ALL> を使用するためには、そのプロセスが特権 "
1387 "(B<CAP_SYS_NICE>)  を持っていなければならない。"
1388
1389 #. type: SS
1390 #: build/C/man2/move_pages.2:123
1391 #, no-wrap
1392 msgid "Page states in the status array"
1393 msgstr "status 配列に格納されるページ状態"
1394
1395 #. type: Plain text
1396 #: build/C/man2/move_pages.2:127
1397 msgid ""
1398 "The following values can be returned in each element of the I<status> array."
1399 msgstr "I<status> 配列の各要素として、以下の値が返される。"
1400
1401 #. type: TP
1402 #: build/C/man2/move_pages.2:127
1403 #, no-wrap
1404 msgid "B<0..MAX_NUMNODES>"
1405 msgstr "B<0..MAX_NUMNODES>"
1406
1407 #. type: Plain text
1408 #: build/C/man2/move_pages.2:130
1409 msgid "Identifies the node on which the page resides."
1410 msgstr "そのページが配置されているノードを示す。"
1411
1412 #. type: TP
1413 #: build/C/man2/move_pages.2:130
1414 #, no-wrap
1415 msgid "B<-EACCES>"
1416 msgstr "B<-EACCES>"
1417
1418 #. type: Plain text
1419 #: build/C/man2/move_pages.2:135
1420 msgid ""
1421 "The page is mapped by multiple processes and can be moved only if "
1422 "B<MPOL_MF_MOVE_ALL> is specified."
1423 msgstr ""
1424 "そのページは複数のプロセスによりマップされており、 B<MPOL_MF_MOVE_ALL> が指定"
1425 "された場合にのみ移動できる。"
1426
1427 #. type: TP
1428 #: build/C/man2/move_pages.2:135
1429 #, no-wrap
1430 msgid "B<-EBUSY>"
1431 msgstr "B<-EBUSY>"
1432
1433 #. type: Plain text
1434 #: build/C/man2/move_pages.2:141
1435 msgid ""
1436 "The page is currently busy and cannot be moved.  Try again later.  This "
1437 "occurs if a page is undergoing I/O or another kernel subsystem is holding a "
1438 "reference to the page."
1439 msgstr ""
1440 "そのページが現在ビジーであり、移動できない。後でもう一度試すこと。 この状況"
1441 "は、ページが I/O の実行中であったり、カーネルの他のサブシステム がそのページ"
1442 "への参照を保持している場合に発生する。"
1443
1444 #. type: TP
1445 #: build/C/man2/move_pages.2:141
1446 #, no-wrap
1447 msgid "B<-EFAULT>"
1448 msgstr "B<-EFAULT>"
1449
1450 #. type: Plain text
1451 #: build/C/man2/move_pages.2:144
1452 msgid "This is a zero page or the memory area is not mapped by the process."
1453 msgstr ""
1454 "そのページが zero page であるか、そのメモリー領域はそのプロセスにより マップ"
1455 "されていない。"
1456
1457 #. type: TP
1458 #: build/C/man2/move_pages.2:144
1459 #, no-wrap
1460 msgid "B<-EIO>"
1461 msgstr "B<-EIO>"
1462
1463 #. type: Plain text
1464 #: build/C/man2/move_pages.2:151
1465 msgid ""
1466 "Unable to write back a page.  The page has to be written back in order to "
1467 "move it since the page is dirty and the filesystem does not provide a "
1468 "migration function that would allow the move of dirty pages."
1469 msgstr ""
1470 "ページを書き戻す (write back) ことができない。 ページが dirty で、ファイルシ"
1471 "ステムが dirty なページを移動できるような 移動機能を提供していないため、その"
1472 "ページを移動するためにはページを 書き戻さなければならない。"
1473
1474 #. type: TP
1475 #: build/C/man2/move_pages.2:151
1476 #, no-wrap
1477 msgid "B<-EINVAL>"
1478 msgstr "B<-EINVAL>"
1479
1480 #. type: Plain text
1481 #: build/C/man2/move_pages.2:156
1482 msgid ""
1483 "A dirty page cannot be moved.  The filesystem does not provide a migration "
1484 "function and has no ability to write back pages."
1485 msgstr ""
1486 "dirty なページを移動できない。 ファイルシステムが dirty なページを移動するた"
1487 "めの機能を提供しておらず、 ページを書き戻す能力もない。"
1488
1489 #. type: TP
1490 #: build/C/man2/move_pages.2:156
1491 #, no-wrap
1492 msgid "B<-ENOENT>"
1493 msgstr "B<-ENOENT>"
1494
1495 #. type: Plain text
1496 #: build/C/man2/move_pages.2:159
1497 msgid "The page is not present."
1498 msgstr "ページが存在しない。"
1499
1500 #. type: TP
1501 #: build/C/man2/move_pages.2:159
1502 #, no-wrap
1503 msgid "B<-ENOMEM>"
1504 msgstr "B<-ENOMEM>"
1505
1506 #. type: Plain text
1507 #: build/C/man2/move_pages.2:162
1508 msgid "Unable to allocate memory on target node."
1509 msgstr "移動先のノードでメモリーを確保することができない。"
1510
1511 #.  FIXME . Is the following quite true: does the wrapper in numactl
1512 #.  do the right thing?
1513 #. type: Plain text
1514 #: build/C/man2/move_pages.2:173
1515 #, fuzzy
1516 #| msgid ""
1517 #| "On success B<move_pages>()  returns zero.  On error, it returns -1, and "
1518 #| "sets I<errno> to indicate the error."
1519 msgid ""
1520 "On success B<move_pages>()  returns zero.  On error, it returns -1, and sets "
1521 "I<errno> to indicate the error.  If positive value is returned, it is the "
1522 "number of nonmigrated pages."
1523 msgstr ""
1524 "成功すると、 B<move_pages>()  は 0 を返す。 エラーの場合、-1 を返し、 "
1525 "I<errno> にエラーを示す値を設定する。"
1526
1527 #. type: TP
1528 #: build/C/man2/move_pages.2:174
1529 #, no-wrap
1530 msgid "B<Positive value>"
1531 msgstr ""
1532
1533 #.  commit a49bd4d7163707de377aee062f17befef6da891b
1534 #.  commit 3140a2273009c01c27d316f35ab76a37e105fdd8
1535 #. type: Plain text
1536 #: build/C/man2/move_pages.2:185
1537 msgid ""
1538 "The number of nonmigrated pages if they were the result of nonfatal reasons "
1539 "(since Linux 4.17).  B<E2BIG> Too many pages to move.  Since Linux 2.6.29, "
1540 "the kernel no longer generates this error."
1541 msgstr ""
1542
1543 #. type: TP
1544 #: build/C/man2/move_pages.2:185
1545 #, no-wrap
1546 msgid "B<EACCES>"
1547 msgstr "B<EACCES>"
1548
1549 #.  FIXME Clarify "current cpuset" in the description of the EACCES error.
1550 #.  Is that the cpuset of the caller or the target?
1551 #. type: Plain text
1552 #: build/C/man2/move_pages.2:190
1553 msgid "One of the target nodes is not allowed by the current cpuset."
1554 msgstr "移動先のノードのいずれかが現在の CPU 集合では許可されていない。"
1555
1556 #. type: Plain text
1557 #: build/C/man2/move_pages.2:193
1558 msgid "Parameter array could not be accessed."
1559 msgstr "パラメーター配列にアクセスできなかった。"
1560
1561 #. type: Plain text
1562 #: build/C/man2/move_pages.2:200
1563 msgid ""
1564 "Flags other than B<MPOL_MF_MOVE> and B<MPOL_MF_MOVE_ALL> was specified or an "
1565 "attempt was made to migrate pages of a kernel thread."
1566 msgstr ""
1567 "I<flags> に B<MPOL_MF_MOVE> でも B<MPOL_MF_MOVE_ALL> でもない値が指定された"
1568 "か、カーネルスレッドのページを移動させようとした。"
1569
1570 #. type: TP
1571 #: build/C/man2/move_pages.2:200
1572 #, no-wrap
1573 msgid "B<ENODEV>"
1574 msgstr "B<ENODEV>"
1575
1576 #. type: Plain text
1577 #: build/C/man2/move_pages.2:203
1578 msgid "One of the target nodes is not online."
1579 msgstr "移動先のノードのいずれかがオンラインでない。"
1580
1581 #. type: Plain text
1582 #: build/C/man2/move_pages.2:212
1583 msgid ""
1584 "The caller specified B<MPOL_MF_MOVE_ALL> without sufficient privileges "
1585 "(B<CAP_SYS_NICE>).  Or, the caller attempted to move pages of a process "
1586 "belonging to another user but did not have privilege to do so "
1587 "(B<CAP_SYS_NICE>)."
1588 msgstr ""
1589 "呼び出し元は B<MPOL_MF_MOVE_ALL> を指定したが、十分な特権 (B<CAP_SYS_NICE>)  "
1590 "を持っていない。 または、呼び出し元が他のユーザーに属するプロセスのページを移"
1591 "動しようとしたが、 それを行えるだけの特権 (B<CAP_SYS_NICE>)  を持っていなかっ"
1592 "た。"
1593
1594 #. type: Plain text
1595 #: build/C/man2/move_pages.2:215
1596 msgid "Process does not exist."
1597 msgstr "プロセスが存在しない。"
1598
1599 #. type: Plain text
1600 #: build/C/man2/move_pages.2:218
1601 msgid "B<move_pages>()  first appeared on Linux in version 2.6.18."
1602 msgstr "B<move_pages>()  は、バージョン 2.6.18 で初めて Linux に登場した。"
1603
1604 #.  FIXME Clarify "current cpuset".  Is that the cpuset of the caller
1605 #.  or the target?
1606 #. type: Plain text
1607 #: build/C/man2/move_pages.2:234
1608 msgid ""
1609 "Use B<get_mempolicy>(2)  with the B<MPOL_F_MEMS_ALLOWED> flag to obtain the "
1610 "set of nodes that are allowed by the current cpuset.  Note that this "
1611 "information is subject to change at any time by manual or automatic "
1612 "reconfiguration of the cpuset."
1613 msgstr ""
1614 "現在の CPU 集合で許可されているノードの集合を取得するには、フラグ "
1615 "B<MPOL_F_MEMS_ALLOWED> を指定して B<get_mempolicy>(2)  を使用すればよい。 取"
1616 "得した情報は、CPU 集合の手動または自動での再構成により いつ何時変化してしまう"
1617 "か分からない。"
1618
1619 #. type: Plain text
1620 #: build/C/man2/move_pages.2:244
1621 msgid ""
1622 "Use of this function may result in pages whose location (node) violates the "
1623 "memory policy established for the specified addresses (See B<mbind>(2))  and/"
1624 "or the specified process (See B<set_mempolicy>(2)).  That is, memory policy "
1625 "does not constrain the destination nodes used by B<move_pages>()."
1626 msgstr ""
1627 "この関数を使用すると、ページの位置 (ノード) が 指定されたアドレスに対して設定"
1628 "されたメモリーポリシー (B<mbind>(2)  参照) や指定されたプロセスに対して設定さ"
1629 "れたメモリーポリシー (B<set_mempolicy>(2)  参照) に違反してしまう可能性があ"
1630 "る。 つまり、メモリーポリシーは B<move_pages>()  で使われる移動先ノードを制限"
1631 "しないということである。"
1632
1633 #. type: TH
1634 #: build/C/man7/numa.7:29
1635 #, no-wrap
1636 msgid "NUMA"
1637 msgstr "NUMA"
1638
1639 #. type: TH
1640 #: build/C/man7/numa.7:29
1641 #, no-wrap
1642 msgid "2012-08-05"
1643 msgstr "2012-08-05"
1644
1645 #. type: Plain text
1646 #: build/C/man7/numa.7:32
1647 msgid "numa - overview of Non-Uniform Memory Architecture"
1648 msgstr "numa - 非対称型メモリーアーキテクチャーの概要"
1649
1650 #. type: Plain text
1651 #: build/C/man7/numa.7:43
1652 msgid ""
1653 "Non-Uniform Memory Access (NUMA) refers to multiprocessor systems whose "
1654 "memory is divided into multiple memory nodes.  The access time of a memory "
1655 "node depends on the relative locations of the accessing CPU and the accessed "
1656 "node.  (This contrasts with a symmetric multiprocessor system, where the "
1657 "access time for all of the memory is the same for all CPUs.)  Normally, each "
1658 "CPU on a NUMA system has a local memory node whose contents can be accessed "
1659 "faster than the memory in the node local to another CPU or the memory on a "
1660 "bus shared by all CPUs."
1661 msgstr ""
1662 "非対称型メモリーアクセス (Non-Uniform Memory Access; NUMA) は、\n"
1663 "メモリーが複数のメモリーノードに分割されているマルチプロセッサシステム\n"
1664 "のことである。メモリーノードへのアクセス時間は、アクセス元の CPU と\n"
1665 "アクセス先のノードの相対的な位置関係に依存する\n"
1666 "(これに対し、対称型マルチプロセッサシステムでは、どの CPU から\n"
1667 "どのメモリーへのアクセス時間も同じである)。\n"
1668 "通常は、 NUMA システムの各 CPU にはローカルのメモリーノードがあり、\n"
1669 "そのメモリーノードには、他の CPU のローカルノードや全ての CPU で\n"
1670 "共有されるバス上のメモリーよりも早くアクセスすることができる。"
1671
1672 #. type: SS
1673 #: build/C/man7/numa.7:43
1674 #, no-wrap
1675 msgid "NUMA system calls"
1676 msgstr "NUMA システムコール"
1677
1678 #. type: Plain text
1679 #: build/C/man7/numa.7:54
1680 msgid ""
1681 "The Linux kernel implements the following NUMA-related system calls: "
1682 "B<get_mempolicy>(2), B<mbind>(2), B<migrate_pages>(2), B<move_pages>(2), and "
1683 "B<set_mempolicy>(2).  However, applications should normally use the "
1684 "interface provided by I<libnuma>; see \"Library Support\" below."
1685 msgstr ""
1686 "Linux カーネルには、次に示す NUMA 関連のシステムコールが実装されている:\n"
1687 "B<get_mempolicy>(2), B<mbind>(2), B<migrate_pages>(2),\n"
1688 "B<move_pages>(2), B<set_mempolicy>(2).\n"
1689 "ただし、アプリケーションは通常は I<libnuma> が提供するインターフェース\n"
1690 "を使用すべきである。下記の「ライブラリによるサポート」を参照。"
1691
1692 #. type: SS
1693 #: build/C/man7/numa.7:54
1694 #, no-wrap
1695 msgid "/proc/[number]/numa_maps (since Linux 2.6.14)"
1696 msgstr "/proc/[number]/numa_maps (Linux 2.6.14 以降)"
1697
1698 #.  See also Changelog-2.6.14
1699 #. type: Plain text
1700 #: build/C/man7/numa.7:58
1701 msgid ""
1702 "This file displays information about a process's NUMA memory policy and "
1703 "allocation."
1704 msgstr ""
1705 "このファイルは、プロセスの NUMA メモリーポリシーと割り当てに関する\n"
1706 "情報を表示する。"
1707
1708 #. type: Plain text
1709 #: build/C/man7/numa.7:62
1710 msgid ""
1711 "Each line contains information about a memory range used by the process, "
1712 "displaying\\(emamong other information\\(emthe effective memory policy for "
1713 "that memory range and on which nodes the pages have been allocated."
1714 msgstr ""
1715 "各行に、そのプロセスが使用しているメモリー領域に関する情報が表示される。その"
1716 "他の情報 \\(em そのメモリー領域に適用されているメモリーポリシーや、そのページ"
1717 "がどのノード上に割り当てられているか、など \\(em もあわせて表示される。"
1718
1719 #. type: Plain text
1720 #: build/C/man7/numa.7:70
1721 msgid ""
1722 "I<numa_maps> is a read-only file.  When I</proc/E<lt>pidE<gt>/numa_maps> is "
1723 "read, the kernel will scan the virtual address space of the process and "
1724 "report how memory is used.  One line is displayed for each unique memory "
1725 "range of the process."
1726 msgstr ""
1727 "I<numa_maps> は読み出し専用のファイルである。 I</proc/E<lt>pidE<gt>/"
1728 "numa_maps> から読み出しが行われると、 カーネルはそのプロセスの仮想アドレス空"
1729 "間をスキャンし、 メモリーの使用状況を報告する。\n"
1730 "プロセスのメモリー領域の情報が 1 行に 1 領域で表示される。"
1731
1732 #. type: Plain text
1733 #: build/C/man7/numa.7:77
1734 msgid ""
1735 "The first field of each line shows the starting address of the memory "
1736 "range.  This field allows a correlation with the contents of the I</proc/"
1737 "E<lt>pidE<gt>/maps> file, which contains the end address of the range and "
1738 "other information, such as the access permissions and sharing."
1739 msgstr ""
1740 "各行の最初のフィールドはメモリー領域の開始アドレスを示す。 このフィールドは "
1741 "I</proc/E<lt>pidE<gt>/maps> ファイルの内容と対応している。 I</proc/"
1742 "E<lt>pidE<gt>/maps> には、メモリー領域の末尾のアドレスや、アクセス許可や共有"
1743 "といった他の情報も含まれる。"
1744
1745 #. type: Plain text
1746 #: build/C/man7/numa.7:85
1747 msgid ""
1748 "The second field shows the memory policy currently in effect for the memory "
1749 "range.  Note that the effective policy is not necessarily the policy "
1750 "installed by the process for that memory range.  Specifically, if the "
1751 "process installed a \"default\" policy for that range, the effective policy "
1752 "for that range will be the process policy, which may or may not be \"default"
1753 "\"."
1754 msgstr ""
1755 "2 番目のフィールドは、 そのメモリー領域に現在適用されているメモリーポリシーを"
1756 "示す。 適用されているポリシーは、 必ずしもそのプロセスがこのメモリー領域に対"
1757 "して設定したポリシーとは限らない点に注意すること。\n"
1758 "特に、 プロセスがその領域に対して「デフォルト」ポリシーを設定した場合、その領"
1759 "域に適用されるポリシーはプロセスのポリシーとなり、それが「デフォルト」ポリ"
1760 "シーとなる場合もあればそうでない場合もある。"
1761
1762 #. type: Plain text
1763 #: build/C/man7/numa.7:88
1764 msgid ""
1765 "The rest of the line contains information about the pages allocated in the "
1766 "memory range, as follows:"
1767 msgstr ""
1768 "行の残りの部分には、そのメモリー領域に割り当てられたページに関する情報が入"
1769 "る。以下に詳細を示す。"
1770
1771 #. type: TP
1772 #: build/C/man7/numa.7:88
1773 #, no-wrap
1774 msgid "I<NE<lt>nodeE<gt>=E<lt>nr_pagesE<gt>>"
1775 msgstr "I<NE<lt>nodeE<gt>=E<lt>nr_pagesE<gt>>"
1776
1777 #. type: Plain text
1778 #: build/C/man7/numa.7:101
1779 msgid ""
1780 "The number of pages allocated on I<E<lt>nodeE<gt>>.  I<E<lt>nr_pagesE<gt>> "
1781 "includes only pages currently mapped by the process.  Page migration and "
1782 "memory reclaim may have temporarily unmapped pages associated with this "
1783 "memory range.  These pages may show up again only after the process has "
1784 "attempted to reference them.  If the memory range represents a shared memory "
1785 "area or file mapping, other processes may currently have additional pages "
1786 "mapped in a corresponding memory range."
1787 msgstr ""
1788 "I<E<lt>nodeE<gt>> に割り当てられているページ数。 I<E<lt>nr_pagesE<gt>> に"
1789 "は、 そのプロセスが現在マッピングしているページだけが含まれる。 ページの移動"
1790 "やメモリーの再利用により、 このメモリー領域に関連付けられているが、 一時的に"
1791 "マッピングされていないページが存在する場合がある。 プロセスがそれらのページを"
1792 "参照しようとした後には、 これらのページは再び現れる可能性がある。 メモリー領"
1793 "域が共有メモリーやファイルマッピングの場合には、 そのメモリー領域内に別のペー"
1794 "ジを他のプロセスがマッピングしている場合もある。"
1795
1796 #. type: TP
1797 #: build/C/man7/numa.7:101
1798 #, no-wrap
1799 msgid "I<file=E<lt>filenameE<gt>>"
1800 msgstr "I<file=E<lt>filenameE<gt>>"
1801
1802 #. type: Plain text
1803 #: build/C/man7/numa.7:107
1804 msgid ""
1805 "The file backing the memory range.  If the file is mapped as private, write "
1806 "accesses may have generated COW (Copy-On-Write) pages in this memory range.  "
1807 "These pages are displayed as anonymous pages."
1808 msgstr ""
1809 "そのメモリー領域に関連付けられているファイル。 ファイルがプライベート (非公"
1810 "開) でマッピングされている場合、 書き込みアクセスがあると、 このメモリー領域"
1811 "に書き込み時コピー (Copy-On-Write) ページが生成されることがある。 これらの"
1812 "ページは無名ページ (anonymous page) として表示される。"
1813
1814 #. type: TP
1815 #: build/C/man7/numa.7:107
1816 #, no-wrap
1817 msgid "I<heap>"
1818 msgstr "I<heap>"
1819
1820 #. type: Plain text
1821 #: build/C/man7/numa.7:110
1822 msgid "Memory range is used for the heap."
1823 msgstr "ヒープに使用されているメモリー範囲。"
1824
1825 #. type: TP
1826 #: build/C/man7/numa.7:110
1827 #, no-wrap
1828 msgid "I<stack>"
1829 msgstr "I<stack>"
1830
1831 #. type: Plain text
1832 #: build/C/man7/numa.7:113
1833 msgid "Memory range is used for the stack."
1834 msgstr "スタックに使用されているメモリー範囲。"
1835
1836 #. type: TP
1837 #: build/C/man7/numa.7:113
1838 #, no-wrap
1839 msgid "I<huge>"
1840 msgstr "I<huge>"
1841
1842 #. type: Plain text
1843 #: build/C/man7/numa.7:117
1844 msgid ""
1845 "Huge memory range.  The page counts shown are huge pages and not regular "
1846 "sized pages."
1847 msgstr ""
1848 "ヒュージメモリーの範囲。表示されるページ数は、\n"
1849 "通常の大きさのページではなく、ヒュージページの数である。"
1850
1851 #. type: TP
1852 #: build/C/man7/numa.7:117
1853 #, no-wrap
1854 msgid "I<anon=E<lt>pagesE<gt>>"
1855 msgstr "I<anon=E<lt>pagesE<gt>>"
1856
1857 #. type: Plain text
1858 #: build/C/man7/numa.7:120
1859 msgid "The number of anonymous page in the range."
1860 msgstr "メモリー範囲内の無名ページ (anonymous page) の数。"
1861
1862 #. type: TP
1863 #: build/C/man7/numa.7:120
1864 #, no-wrap
1865 msgid "I<dirty=E<lt>pagesE<gt>>"
1866 msgstr "I<dirty=E<lt>pagesE<gt>>"
1867
1868 #. type: Plain text
1869 #: build/C/man7/numa.7:123
1870 msgid "Number of dirty pages."
1871 msgstr "dirty (変更された) ページの数。"
1872
1873 #. type: TP
1874 #: build/C/man7/numa.7:123
1875 #, no-wrap
1876 msgid "I<mapped=E<lt>pagesE<gt>>"
1877 msgstr "I<mapped=E<lt>pagesE<gt>>"
1878
1879 #. type: Plain text
1880 #: build/C/man7/numa.7:130
1881 msgid ""
1882 "Total number of mapped pages, if different from I<dirty> and I<anon> pages."
1883 msgstr ""
1884 "マッピングされているページ数。 I<dirty> および I<anon> のページ数と異なる値の"
1885 "場合に表示される。"
1886
1887 #. type: TP
1888 #: build/C/man7/numa.7:130
1889 #, no-wrap
1890 msgid "I<mapmax=E<lt>countE<gt>>"
1891 msgstr "I<mapmax=E<lt>countE<gt>>"
1892
1893 #. type: Plain text
1894 #: build/C/man7/numa.7:136
1895 msgid ""
1896 "Maximum mapcount (number of processes mapping a single page) encountered "
1897 "during the scan.  This may be used as an indicator of the degree of sharing "
1898 "occurring in a given memory range."
1899 msgstr ""
1900 "スキャン中に検出した mapcount (一つのページをマッピングしているプロセス数) の"
1901 "最大値。 この値は、 そのメモリー領域でどの程度の共有が行われているかの指標と"
1902 "して使うことができる。"
1903
1904 #. type: TP
1905 #: build/C/man7/numa.7:136
1906 #, no-wrap
1907 msgid "I<swapcache=E<lt>countE<gt>>"
1908 msgstr "I<swapcache=E<lt>countE<gt>>"
1909
1910 #. type: Plain text
1911 #: build/C/man7/numa.7:139
1912 msgid "Number of pages that have an associated entry on a swap device."
1913 msgstr "スワップデバイスに対応するエントリーが存在するページ数。"
1914
1915 #. type: TP
1916 #: build/C/man7/numa.7:139
1917 #, no-wrap
1918 msgid "I<active=E<lt>pagesE<gt>>"
1919 msgstr "I<active=E<lt>pagesE<gt>>"
1920
1921 #. type: Plain text
1922 #: build/C/man7/numa.7:145
1923 msgid ""
1924 "The number of pages on the active list.  This field is shown only if "
1925 "different from the number of pages in this range.  This means that some "
1926 "inactive pages exist in the memory range that may be removed from memory by "
1927 "the swapper soon."
1928 msgstr ""
1929 "アクティブリストに入っているページ数。 このフィールドが表示されるのは、 値が"
1930 "このメモリー領域のページ数と異なる場合だけである。このフィールドが表示される"
1931 "ということは、 このメモリー領域に、まもなくスワッパ (swapper) によりこの領域"
1932 "から削除される可能性がある inactive なページが存在することを意味する。"
1933
1934 #. type: TP
1935 #: build/C/man7/numa.7:145
1936 #, no-wrap
1937 msgid "I<writeback=E<lt>pagesE<gt>>"
1938 msgstr "I<writeback=E<lt>pagesE<gt>>"
1939
1940 #. type: Plain text
1941 #: build/C/man7/numa.7:148
1942 msgid "Number of pages that are currently being written out to disk."
1943 msgstr "現在ディスクに書き出されているページ数。"
1944
1945 #. type: Plain text
1946 #: build/C/man7/numa.7:150
1947 msgid "No standards govern NUMA interfaces."
1948 msgstr "NUMA インターフェースについて規定している標準はない。"
1949
1950 #. type: Plain text
1951 #: build/C/man7/numa.7:157
1952 msgid ""
1953 "The Linux NUMA system calls and I</proc> interface are available only if the "
1954 "kernel was configured and built with the B<CONFIG_NUMA> option."
1955 msgstr ""
1956 "Linux の NUMA システムコールと I</proc> インターフェースは、カーネルが\n"
1957 "設定オプション B<CONFIG_NUMA> を有効にして作成されている場合のみ、利用\n"
1958 "可能である。"
1959
1960 #. type: SS
1961 #: build/C/man7/numa.7:157
1962 #, no-wrap
1963 msgid "Library support"
1964 msgstr "ライブラリによるサポート"
1965
1966 #. type: Plain text
1967 #: build/C/man7/numa.7:166
1968 msgid ""
1969 "Link with I<-lnuma> to get the system call definitions.  I<libnuma> and the "
1970 "required I<E<lt>numaif.hE<gt>> header are available in the I<numactl> "
1971 "package."
1972 msgstr ""
1973 "システムコールの定義を得るには I<-lnuma> でリンクすること。\n"
1974 "I<libnuma> と必要なヘッダーファイル I<E<lt>numaif.hE<gt>> は\n"
1975 "I<numactl> パッケージで提供されている。"
1976
1977 #. type: Plain text
1978 #: build/C/man7/numa.7:183
1979 msgid ""
1980 "However, applications should not use these system calls directly.  Instead, "
1981 "the higher level interface provided by the B<numa>(3)  functions in the "
1982 "I<numactl> package is recommended.  The I<numactl> package is available at "
1983 "E<.UR ftp://oss.sgi.com\\:/www\\:/projects\\:/libnuma\\:/download/> E<.UE .> "
1984 "The package is also included in some Linux distributions.  Some "
1985 "distributions include the development library and header in the separate "
1986 "I<numactl-devel> package."
1987 msgstr ""
1988 "ただし、アプリケーションはこれらのシステムコールを直接利用すべきでない。\n"
1989 "推奨される方法は、I<numactl> パッケージの B<numa>(3) の関数群が提供する\n"
1990 "高レベルインターフェースの利用である。 I<numactl> パッケージは\n"
1991 "E<.UR ftp://oss.sgi.com\\:/www\\:/projects\\:/libnuma\\:/download/> E<.UE> で"
1992 "入手できる。\n"
1993 "このパッケージが収録されている Linux ディストリビューションもある。\n"
1994 "ディストリビューションによっては、開発用のライブラリとヘッダーファイルは\n"
1995 "別パッケージ I<numactl-devel> で提供されている。"
1996
1997 #. type: Plain text
1998 #: build/C/man7/numa.7:191
1999 msgid ""
2000 "B<get_mempolicy>(2), B<mbind>(2), B<move_pages>(2), B<set_mempolicy>(2), "
2001 "B<numa>(3), B<cpuset>(7), B<numactl>(8)"
2002 msgstr ""
2003 "B<get_mempolicy>(2), B<mbind>(2), B<move_pages>(2), B<set_mempolicy>(2), "
2004 "B<numa>(3), B<cpuset>(7), B<numactl>(8)"
2005
2006 #. type: TH
2007 #: build/C/man2/set_mempolicy.2:27
2008 #, no-wrap
2009 msgid "SET_MEMPOLICY"
2010 msgstr "SET_MEMPOLICY"
2011
2012 #. type: TH
2013 #: build/C/man2/set_mempolicy.2:27
2014 #, no-wrap
2015 msgid "2020-12-21"
2016 msgstr "2020-12-21"
2017
2018 #. type: Plain text
2019 #: build/C/man2/set_mempolicy.2:30
2020 msgid ""
2021 "set_mempolicy - set default NUMA memory policy for a thread and its children"
2022 msgstr "set_mempolicy - スレッドとその子スレッドの NUMA メモリーの デフォルトポリシーを設定する"
2023
2024 #. type: Plain text
2025 #: build/C/man2/set_mempolicy.2:36
2026 #, no-wrap
2027 msgid ""
2028 "B<long set_mempolicy(int >I<mode>B<, const unsigned long *>I<nodemask>B<,>\n"
2029 "B<                   unsigned long >I<maxnode>B<);>\n"
2030 msgstr ""
2031 "B<long set_mempolicy(int >I<mode>B<, const unsigned long *>I<nodemask>B<,>\n"
2032 "B<                   unsigned long >I<maxnode>B<);>\n"
2033
2034 #. type: Plain text
2035 #: build/C/man2/set_mempolicy.2:49
2036 msgid ""
2037 "B<set_mempolicy>()  sets the NUMA memory policy of the calling thread, which "
2038 "consists of a policy mode and zero or more nodes, to the values specified by "
2039 "the I<mode>, I<nodemask>, and I<maxnode> arguments."
2040 msgstr "B<set_mempolicy>()  は、呼び出し元スレッドの NUMA ポリシーを I<policy> に設定する。 NUMA ポリシーはポリシーモードと 0 個以上のノードから構成され、 設定内容は引き数 I<mode>, I<nodemask>, I<maxnode> により指定される。"
2041
2042 #. type: Plain text
2043 #: build/C/man2/set_mempolicy.2:75
2044 msgid ""
2045 "This system call defines the default policy for the thread.  The thread "
2046 "policy governs allocation of pages in the process's address space outside of "
2047 "memory ranges controlled by a more specific policy set by B<mbind>(2).  The "
2048 "thread default policy also controls allocation of any pages for memory-"
2049 "mapped files mapped using the B<mmap>(2)  call with the B<MAP_PRIVATE> flag "
2050 "and that are only read (loaded) from by the thread and of memory-mapped "
2051 "files mapped using the B<mmap>(2)  call with the B<MAP_SHARED> flag, "
2052 "regardless of the access type.  The policy is applied only when a new page "
2053 "is allocated for the thread.  For anonymous memory this is when the page is "
2054 "first touched by the thread."
2055 msgstr "B<set_mempolicy>()  は、スレッドのデフォルトポリシーを定める。スレッドのポリシーは、 B<mbind>(2)  で設定される特定のポリシーにより制御されるメモリー領域以外のスレッドのアドレス空間におけるページの割り当てに適用される。 スレッドのデフォルトポリシーは、 B<MAP_PRIVATE> フラグを指定した B<mmap>(2)  を使ってマップされたメモリーマップファイルに対する読み出し専用 (ロードされるだけ) のページの割り当てにも適用される。 また、 B<MAP_SHARED> フラグを指定した B<mmap>(2)  を使ってマップされたメモリーマップファイルに対するページの割り当てにも 適用される (この場合はページのアクセス種別に関わらず適用される) 。 設定したポリシーは、スレッドに新規のページが割り当てられるときにのみ 適用される。無名メモリー (anonymous memory) の場合、新規ページの割り当ては アプリケーションが初めてページにアクセスした際に行われる。"
2056
2057 #. type: Plain text
2058 #: build/C/man2/set_mempolicy.2:92
2059 msgid ""
2060 "The I<mode> argument must specify one of B<MPOL_DEFAULT>, B<MPOL_BIND>, "
2061 "B<MPOL_INTERLEAVE>, B<MPOL_PREFERRED>, or B<MPOL_LOCAL> (which are described "
2062 "in detail below).  All modes except B<MPOL_DEFAULT> require the caller to "
2063 "specify the node or nodes to which the mode applies, via the I<nodemask> "
2064 "argument."
2065 msgstr "I<mode> 引き数には、 B<MPOL_DEFAULT>, B<MPOL_BIND>, B<MPOL_INTERLEAVE>, B<MPOL_PREFERRED>, B<MPOL_LOCAL> (詳細は下記参照) のいずれか一つを指定しなければならない。 B<MPOL_DEFAULT> 以外のポリシーモードの場合、呼び出し元は I<nodemask> 引き数でそのポリシーモードを適用するノードを指定する必要がある。"
2066
2067 #. type: TP
2068 #: build/C/man2/set_mempolicy.2:100
2069 #, no-wrap
2070 msgid "B<MPOL_F_STATIC_NODES> (since Linux 2.6.26)"
2071 msgstr "B<MPOL_F_STATIC_NODES> (Linux 2.6.26 以降)"
2072
2073 #. type: Plain text
2074 #: build/C/man2/set_mempolicy.2:110
2075 msgid ""
2076 "A nonempty I<nodemask> specifies physical node IDs.  Linux will not remap "
2077 "the I<nodemask> when the process moves to a different cpuset context, nor "
2078 "when the set of nodes allowed by the process's current cpuset context "
2079 "changes."
2080 msgstr ""
2081 "空でない I<nodemask> は、物理ノード ID である。 Linux では、そのプロセスが異"
2082 "なる CPU 集合コンテキスト (cpuset context)  に移動した場合でも、そのプロセス"
2083 "の現在の CPU 集合コンテキストで 許可されているノード集合が変化した場合でも、 "
2084 "I<nodemask> をマッピングし直すことはない。"
2085
2086 #. type: TP
2087 #: build/C/man2/set_mempolicy.2:110
2088 #, no-wrap
2089 msgid "B<MPOL_F_RELATIVE_NODES> (since Linux 2.6.26)"
2090 msgstr "B<MPOL_F_RELATIVE_NODES> (Linux 2.6.26 以降)"
2091
2092 #. type: Plain text
2093 #: build/C/man2/set_mempolicy.2:116
2094 msgid ""
2095 "A nonempty I<nodemask> specifies node IDs that are relative to the set of "
2096 "node IDs allowed by the process's current cpuset."
2097 msgstr ""
2098 "空でない I<nodemask> は、そのプロセスの現在の CPU 集合で許可されているノード "
2099 "ID 集合 における相対的なノード ID である。"
2100
2101 #. type: Plain text
2102 #: build/C/man2/set_mempolicy.2:136
2103 msgid ""
2104 "I<nodemask> points to a bit mask of node IDs that contains up to I<maxnode> "
2105 "bits.  The bit mask size is rounded to the next multiple of "
2106 "I<sizeof(unsigned long)>, but the kernel will use bits only up to "
2107 "I<maxnode>.  A NULL value of I<nodemask> or a I<maxnode> value of zero "
2108 "specifies the empty set of nodes.  If the value of I<maxnode> is zero, the "
2109 "I<nodemask> argument is ignored."
2110 msgstr ""
2111 "I<nodemask> は、最大で I<maxnode> ビットから構成されるノード ID のビットマス"
2112 "クを指す。 ビットマスクの大きさは、直近の I<sizeof(unsigned long)> の倍数に切"
2113 "り上げられるが、カーネルが使用するのは I<maxnode> 個までのビットだけである。 "
2114 "NULL 値の I<nodemask> もしくは値が 0 の I<maxnode> はノードの空集合を表す。 "
2115 "I<maxnode> の値が 0 の場合、 I<nodemask> 引き数は無視される。"
2116
2117 #. type: Plain text
2118 #: build/C/man2/set_mempolicy.2:157
2119 msgid ""
2120 "Where a I<nodemask> is required, it must contain at least one node that is "
2121 "on-line, allowed by the process's current cpuset context, (unless the "
2122 "B<MPOL_F_STATIC_NODES> mode flag is specified), and contains memory.  If the "
2123 "B<MPOL_F_STATIC_NODES> is set in I<mode> and a required I<nodemask> contains "
2124 "no nodes that are allowed by the process's current cpuset context, the "
2125 "memory policy reverts to I<local allocation>.  This effectively overrides "
2126 "the specified policy until the process's cpuset context includes one or more "
2127 "of the nodes specified by I<nodemask>."
2128 msgstr ""
2129 "I<nodemask> が必須の場面では、 I<nodemask> に、オンラインで、そのプロセスの現"
2130 "在の CPU 集合コンテキストで 許可されており (B<MPOL_F_STATIC_NODES> モードフラ"
2131 "グが指定されていない場合)、メモリーがあるノードが 少なくとも一つ入っていなけ"
2132 "ればならない。 I<mode> に B<MPOL_F_STATIC_NODES> がセットされ、 I<nodemask> "
2133 "が必須の場面で、 I<nodemask> に、そのプロセスの現在の CPU 集合コンテキストで"
2134 "許可されたノードが 一つも含まれていない場合には、メモリーのポリシーとしてデ"
2135 "フォルトの 「ローカルから割り当て (local allocation)」が適用される。 そのプロ"
2136 "セスの CPU 集合コンテキストが I<nodemask> で指定されたノードを少なくとも一つ"
2137 "含むようになるまでは、 結果的に指定された動作が上書きされることになる。"
2138
2139 #. type: Plain text
2140 #: build/C/man2/set_mempolicy.2:171
2141 msgid ""
2142 "This mode specifies that any nondefault thread memory policy be removed, so "
2143 "that the memory policy \"falls back\" to the system default policy.  The "
2144 "system default policy is \"local allocation\"\\(emthat is, allocate memory "
2145 "on the node of the CPU that triggered the allocation.  I<nodemask> must be "
2146 "specified as NULL.  If the \"local node\" contains no free memory, the "
2147 "system will attempt to allocate memory from a \"near by\" node."
2148 msgstr "このモードは、デフォルトではないスレッドのメモリーポリシーを削除することを 指定するものである。これにより、メモリーポリシーはシステムの デフォルトポリシーに「戻る」ことになる。 システムのデフォルトポリシーは「ローカルからの割り当て (local allocation)」、 つまりメモリー割り当てのきっかけとなった CPU のノードのメモリーが割り当てられる。 I<nodemask> には NULL を指定しなければならない。 「自ノード (local node)」に空きメモリーが全くない場合、システムは 「近くの (near by) ノード」からメモリーを割り当てようと試みる。"
2149
2150 #. type: Plain text
2151 #: build/C/man2/set_mempolicy.2:187
2152 msgid ""
2153 "This mode defines a strict policy that restricts memory allocation to the "
2154 "nodes specified in I<nodemask>.  If I<nodemask> specifies more than one "
2155 "node, page allocations will come from the node with the lowest numeric node "
2156 "ID first, until that node contains no free memory.  Allocations will then "
2157 "come from the node with the next highest node ID specified in I<nodemask> "
2158 "and so forth, until none of the specified nodes contain free memory.  Pages "
2159 "will not be allocated from any node not specified in the I<nodemask>."
2160 msgstr "このモードは厳密なポリシーで、メモリー割り当ては I<nodemask> に指定されたノードに限定される。 I<nodemask> に 2 個以上のノードが指定された場合、ページの割り当ては ノード ID が数字として最小のノードから開始され、 そのノードに空きメモリーがなくなるまでそのノードから ページ割り当てが行われる。そのノードに空きメモリーがなくなったら、 次に小さなノード ID を持つノードからページ割り当てが行われる。 これを、 I<nodemask> で指定された全てのノードで空きメモリーがなくなるまで繰り返す。 I<nodemask> で指定された以外のノードからはページの割り当ては行われない。"
2161
2162 #.  NOTE:  the following sentence doesn't make sense in the context
2163 #.  of set_mempolicy() -- no memory area specified.
2164 #.  To be effective the memory area should be fairly large,
2165 #.  at least 1 MB or bigger.
2166 #. type: Plain text
2167 #: build/C/man2/set_mempolicy.2:201
2168 msgid ""
2169 "This mode interleaves page allocations across the nodes specified in "
2170 "I<nodemask> in numeric node ID order.  This optimizes for bandwidth instead "
2171 "of latency by spreading out pages and memory accesses to those pages across "
2172 "multiple nodes.  However, accesses to a single page will still be limited to "
2173 "the memory bandwidth of a single node."
2174 msgstr "このモードでは、ページ割り当てを I<nodemask> に指定されたノードの間でノード ID の数字順で交互に行う。 このポリシーでは、複数のノードにページを広げて配置し、これらのページへのメモリー アクセスを分散することで、遅延ではなく、帯域を最適化する。 ただし、一つのページへのアクセスに関しては依然として一つのノードのメモリー帯域 が上限となる。"
2175
2176 #. type: Plain text
2177 #: build/C/man2/set_mempolicy.2:218
2178 msgid ""
2179 "This mode sets the preferred node for allocation.  The kernel will try to "
2180 "allocate pages from this node first and fall back to \"near by\" nodes if "
2181 "the preferred node is low on free memory.  If I<nodemask> specifies more "
2182 "than one node ID, the first node in the mask will be selected as the "
2183 "preferred node.  If the I<nodemask> and I<maxnode> arguments specify the "
2184 "empty set, then the policy specifies \"local allocation\" (like the system "
2185 "default policy discussed above)."
2186 msgstr "このモードは、割り当て時に優先されるノード (preferred node) を設定する。 カーネルはまず優先ノードからページ割り当てを行おうとし、 優先ノードに空きメモリーが少ない場合に「近くの (near by)」ノードから 割り当てを行う。 I<nodemask> に複数のノード ID が指定された場合は、 I<nodemask> 内の最初のノードが優先ノードとして選択される。 引き数 I<nodemask>, I<maxnode> で空集合が指定された場合は、ポリシーは (上述のシステムの デフォルトポリシーと同様に) 「ローカルからの割り当て」となる。"
2187
2188 #.  commit 479e2802d09f1e18a97262c4c6f8f17ae5884bd8
2189 #.  commit f2a07f40dbc603c15f8b06e6ec7f768af67b424f
2190 #. type: Plain text
2191 #: build/C/man2/set_mempolicy.2:237
2192 msgid ""
2193 "This mode specifies \"local allocation\"; the memory is allocated on the "
2194 "node of the CPU that triggered the allocation (the \"local node\").  The "
2195 "I<nodemask> and I<maxnode> arguments must specify the empty set.  If the "
2196 "\"local node\" is low on free memory, the kernel will try to allocate memory "
2197 "from other nodes.  The kernel will allocate memory from the \"local node\" "
2198 "whenever memory for this node is available.  If the \"local node\" is not "
2199 "allowed by the process's current cpuset context, the kernel will try to "
2200 "allocate memory from other nodes.  The kernel will allocate memory from the "
2201 "\"local node\" whenever it becomes allowed by the process's current cpuset "
2202 "context."
2203 msgstr ""
2204
2205 #. type: Plain text
2206 #: build/C/man2/set_mempolicy.2:244
2207 msgid ""
2208 "The thread memory policy is preserved across an B<execve>(2), and is "
2209 "inherited by child threads created using B<fork>(2)  or B<clone>(2)."
2210 msgstr "スレッドのメモリーポリシーは B<execve>(2)  の前後で保持され、 B<fork>(2)  や B<clone>(2)  を使って作成された子スレッドに継承される。"
2211
2212 #. type: Plain text
2213 #: build/C/man2/set_mempolicy.2:251
2214 msgid ""
2215 "On success, B<set_mempolicy>()  returns 0; on error, -1 is returned and "
2216 "I<errno> is set to indicate the error."
2217 msgstr ""
2218 "成功すると、 B<set_mempolicy>()  は 0 を返す。エラーの場合、-1 を返し、 "
2219 "I<errno> にエラーを示す値を設定する。"
2220
2221 #. type: Plain text
2222 #: build/C/man2/set_mempolicy.2:296
2223 msgid ""
2224 "I<mode> is invalid.  Or, I<mode> is B<MPOL_DEFAULT> and I<nodemask> is "
2225 "nonempty, or I<mode> is B<MPOL_BIND> or B<MPOL_INTERLEAVE> and I<nodemask> "
2226 "is empty.  Or, I<maxnode> specifies more than a page worth of bits.  Or, "
2227 "I<nodemask> specifies one or more node IDs that are greater than the maximum "
2228 "supported node ID.  Or, none of the node IDs specified by I<nodemask> are on-"
2229 "line and allowed by the process's current cpuset context, or none of the "
2230 "specified nodes contain memory.  Or, the I<mode> argument specified both "
2231 "B<MPOL_F_STATIC_NODES> and B<MPOL_F_RELATIVE_NODES>."
2232 msgstr ""
2233 "I<mode> が不正である。 I<mode> が B<MPOL_DEFAULT> で、 I<nodemask> が空ではな"
2234 "い。 I<mode> が B<MPOL_BIND> か B<MPOL_INTERLEAVE> で、 I<nodemask> が空であ"
2235 "る。 I<maxnode> で実際に意味があるビット数より多くのビット数が指定された。 "
2236 "I<nodemask> に、サポートされている最大ノード ID より大きいノードが指定され"
2237 "た。 I<nodemask> に、オンラインで、かつそのプロセスの現在の CPU 集合コンテキ"
2238 "ストで 許可されているノードが一つも含まれていないか、 メモリーを含むノードが"
2239 "一つも指定されていない。 I<mode> 引き数に B<MPOL_F_STATIC_NODES> と "
2240 "B<MPOL_F_RELATIVE_NODES> の両方が指定された。"
2241
2242 #. type: Plain text
2243 #: build/C/man2/set_mempolicy.2:303
2244 msgid ""
2245 "The B<set_mempolicy>()  system call was added to the Linux kernel in version "
2246 "2.6.7."
2247 msgstr "B<set_mempolicy>() システムコールはバージョン 2.6.7 で Linux カーネルに追加された。"
2248
2249 #. type: Plain text
2250 #: build/C/man2/set_mempolicy.2:310
2251 msgid ""
2252 "Memory policy is not remembered if the page is swapped out.  When such a "
2253 "page is paged back in, it will use the policy of the thread or memory range "
2254 "that is in effect at the time the page is allocated."
2255 msgstr "ページがスワップアウトされる場合には、 メモリポリシーの設定は推奨されない。 スワップアウトされたページがページインする際にも、 ページ割り当て時に適用されるスレッドのポリシーやメモリー領域ポリシーが 使用される。"
2256
2257 #. type: Plain text
2258 #: build/C/man2/set_mempolicy.2:322
2259 msgid ""
2260 "B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<numa>(3), "
2261 "B<cpuset>(7), B<numa>(7), B<numactl>(8)"
2262 msgstr ""
2263 "B<get_mempolicy>(2), B<getcpu>(2), B<mbind>(2), B<mmap>(2), B<numa>(3), "
2264 "B<cpuset>(7), B<numa>(7), B<numactl>(8)"
2265
2266 #~ msgid "B<getcpu>()  was added in kernel 2.6.19 for x86_64 and i386."
2267 #~ msgstr "B<getcpu>() はカーネル 2.6.19 で x86_64 と i386 向けに追加された."
2268
2269 #~ msgid ""
2270 #~ "Glibc does not provide a wrapper for this system call; call it using "
2271 #~ "B<syscall>(2); or use B<sched_getcpu>(3)  instead."
2272 #~ msgstr ""
2273 #~ "glibc はこのシステムコールに対するラッパー関数を提供していない。\n"
2274 #~ "B<syscall>(2) を使って呼び出すか、\n"
2275 #~ "代わりに B<sched_getcpu>(3) を使用すること。"
2276
2277 #~ msgid ""
2278 #~ "The I<mode> argument may also include an optional I<mode flag >.  The "
2279 #~ "supported I<mode flags> are:"
2280 #~ msgstr ""
2281 #~ "I<mode> 引き数には、追加で I<モードフラグ> を含めることもできる。 サポート"
2282 #~ "されている I<モードフラグ> は以下の通りである。"
2283
2284 #~ msgid "Too many pages to move."
2285 #~ msgstr "移動すべきページが多過ぎる。"
2286
2287 #~ msgid ""
2288 #~ "No pages were found that require moving.  All pages are either already on "
2289 #~ "the target node, not present, had an invalid address or could not be "
2290 #~ "moved because they were mapped by multiple processes."
2291 #~ msgstr ""
2292 #~ "移動が必要なページが全く見つからなかった。 指定された全てのページが、すで"
2293 #~ "に移動先のノードに存在するか、存在しないか、 無効なアドレスであったか、複"
2294 #~ "数のプロセスによってマップされていて移動でき なかったか、のいずれかであっ"
2295 #~ "た。"
2296
2297 #~ msgid ""
2298 #~ "The I<mode> argument must specify one of B<MPOL_DEFAULT>, B<MPOL_BIND>, "
2299 #~ "B<MPOL_INTERLEAVE>, or B<MPOL_PREFERRED>.  All modes except "
2300 #~ "B<MPOL_DEFAULT> require the caller to specify via the I<nodemask> "
2301 #~ "argument one or more nodes."
2302 #~ msgstr ""
2303 #~ "I<mode> 引き数には B<MPOL_DEFAULT>, B<MPOL_BIND>, B<MPOL_INTERLEAVE>, "
2304 #~ "B<MPOL_PREFERRED> のいずれか一つを指定してしなければならない。 "
2305 #~ "B<MPOL_DEFAULT> 以外のポリシーの場合、呼び出し元は I<nodemask> 引き数で一"
2306 #~ "つ以上のノードを指定する必要がある。"