File: mbind.2

package info (click to toggle)
manpages-ja 0.5.0.0.20100315-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 21,156 kB
  • ctags: 1
  • sloc: sh: 13,935; perl: 157; makefile: 114
file content (448 lines) | stat: -rw-r--r-- 12,642 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
.\" Copyright 2003,2004 Andi Kleen, SuSE Labs.
.\" and Copyright 2007 Lee Schermerhorn, Hewlett Packard
.\"
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Permission is granted to copy and distribute modified versions of this
.\" manual under the conditions for verbatim copying, provided that the
.\" entire resulting derived work is distributed under the terms of a
.\" permission notice identical to this one.
.\"
.\" Since the Linux kernel and libraries are constantly changing, this
.\" manual page may be incorrect or out-of-date.  The author(s) assume no
.\" responsibility for errors or omissions, or for damages resulting from
.\" the use of the information contained herein.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
.\"
.\" 2006-02-03, mtk, substantial wording changes and other improvements
.\" 2007-08-27, Lee Schermerhorn <Lee.Schermerhorn@hp.com>
.\"	more precise specification of behavior.
.\"
.\" Japanese Version Copyright (c) 2006 Akihiro MOTOKI
.\"         all rights reserved.
.\" Translated 2006-07-25, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.36
.\" Updated 2008-08-21, Akihiro MOTOKI, LDP v3.07
.\" Updated 2008-09-19, Akihiro MOTOKI, LDP v3.08
.\"
.TH MBIND 2 2008-08-15 Linux "Linux Programmer's Manual"
.SH ̾
mbind \- ΰФƥݥꥷꤹ
.SH 
.nf
.B "#include <numaif.h>"
.sp
.BI "int mbind(void *" addr ", unsigned long " len  ", int " mode ,
.BI "          unsigned long *" nodemask  ", unsigned long " maxnode ,
.BI "          unsigned " flags );
.sp
\fI\-lnuma\fP ǥ󥯤롣
.fi
.SH 
.BR mbind ()
ϡ
.I addr
ϤޤĹ
.I len
ХȤϰϤΥ NUMA ݥꥷꤹ롣
NUMA ݥꥷϥݥꥷ⡼ɤ 0 İʾΥΡɤ鹽롣
ݥꥷϤɤΥΡɤƤ뤫ꤹ롣

.I addr

.I len
ǻꤵ줿ϰϤˡ
Ρ̵̾ΰ \(em
.B MAP_ANONYMOUS
դ
.BR mmap (2)
ƥॳȤäƺ줿ΰ \(em 
.B MAP_PRIVATE
դ
.BR mmap (2)
Ȥäƥޥåפ줿ޥåסե뤬ޤޤƤ硢
ڡꤵ줿ݥꥷ˴ŤƳƤΤϡץꥱ
Υڡؤν񤭹 (ǡγǼ) ԤäǤ롣
̵̾ΰξ硢ǽɤ߽Фκݤˤ
ͥǡ 0 Ǥ붦ͭڡѤ롣
.B MAP_PRIVATE
ǥޥåפ줿եξ硢ǽɤ߽Фȡ
ڡƤȯ뤭äȤʤäץΥǥեȥݥꥷ
ˤäƥڡγƤԤ롣
ڡƤΤäȤʤäץϡ
.BR mbind ()
ƤӽФץƱȤϸ¤ʤ

ꤵ줿ϰˤ
.B MAP_SHARED
Υޥåԥ󥰤Ǥϻꤵ줿ݥꥷ̵뤵졢
ڡƤȯ뤭äȤʤäץΥǥեȥݥꥷ
äƥڡγƤԤ뤳Ȥˤʤ롣
֤ˤʤ뤬ڡƤΤäȤʤäץϡ
.BR mbind ()
ƤӽФץƱȤϸ¤ʤ

ꤵ줿ϰϤˡ
.BR shmget (2)
ƥॳȤäƺ줿ꡢ
.BR shmat (2)
ƥॳȤäղ (attach) 줿ꤷͭΰ褬
ޤޤ硢̵̾ΰ䶦ͭΰФڡƤϡ
ͭꥻȤإݥꥷԤäץڡ
ΤäȤʤä˴ؤ餺ꤵ줿ݥꥷˤäƳ
Ԥ롣
ʤ顢ͭΰ褬
.B SHM_HUGETLB
ե饰ꤷƺ줿ˤϡҥ塼ڡ (huge page) γƤ
ꤵ줿ݥꥷˤäƹԤΤϡΰФ
.BR mbind ()
ƤӽФץڡƤΤäȤʤäΤߤǤ롣

ǥեȤǤϡ
.BR mbind ()
ϿΥƤФƤΤ߸̤ġ
ݥꥷꤵˤǤ˻ѤƤϰΥڡФƤϡ
ݥꥷϱƶʤ
ΥǥեȤưϡʲե饰
.B MPOL_MF_MOVE

.B MPOL_MF_MOVE_ALL
ˤ񤭤ǽ롣

.I mode
ˤϡ
.BR MPOL_DEFAULT ,
.BR MPOL_BIND ,
.BR MPOL_INTERLEAVE ,
.B MPOL_PREFERRED
Τ줫ĤꤷʤФʤʤ
.B MPOL_DEFAULT
ʳΥݥꥷ⡼ɤξ硢ƤӽФ
.I nodemask
ǤΥݥꥷ⡼ɤŬѤΡɤꤹɬפ롣

.I mode
ˤϡɲä
.I "⡼ɥե饰"
ޤ뤳ȤǤ롣
ݡȤƤ
.I "⡼ɥե饰"
ϰʲ̤Ǥ롣
.TP
.BR MPOL_F_STATIC_NODES " (Linux-2.6.26 ʹ)"
Ǥʤ
.I nodemask
ϡʪΡ ID Ǥ롣
Linux ǤϡΥץۤʤ CPU 祳ƥ (cpuset context)
˰ưǤ⡢Υץθߤ CPU 祳ƥȤ
ĤƤΡɽ礬ѲǤ⡢
.I nodemask
ޥåԥ󥰤ľȤϤʤ
.TP
.BR MPOL_F_RELATIVE_NODES " (Linux-2.6.26 ʹ)"
Ǥʤ
.I nodemask
ϡΥץθߤ CPU ǵĤƤΡ ID 
ˤŪʥΡ ID Ǥ롣
.PP
.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 祳ƥȤ
ĤƤ
.RB ( MPOL_F_STATIC_NODES
⡼ɥե饰ꤵƤʤ)꤬Ρɤ
ʤȤäƤʤФʤʤ

.B MPOL_DEFAULT
ϥǥեȤǤϤʤץΥݥꥷ
ǥեȤư᤹ȤꤹΤǤ롣
.BR mbind ()
ͳǡΰФ
.B MPOL_DEFAULT
ŬѤ줿硢ץΥǥեȥݥꥷѤ뤳Ȥ̣롣
ץΥǥեȥݥꥷϡ
.BR set_mempolicy (2)
ѹƤ뤫⤷ʤ
ץΥݥꥷΥ⡼ɤ
.B MPOL_DEFAULT
ξ硢ƥΤΥǥեȥݥꥷѤ롣
ƥΤΥǥեȥݥꥷǤϡƤΤäȤʤä
CPU ΥΡɤڡγƤԤ
.B MPOL_DEFAULT
Ǥϡ
.I nodemask

.I maxnode
˥ΡɤζꤷʤФʤʤ

.B MPOL_BIND
ϸݥꥷǡƤ
.I nodemask
˻ꤵ줿Ρɤ˸ꤵ롣
¾ΥΡɤؤγƤϹԤʤ
.I nodemask
 2 İʾΥΡɤꤵ줿硢ڡγƤ
Ρ ID ȤƺǾΥΡɤ鳫Ϥ졢
ΥΡɤ˶꤬ʤʤޤǤΥΡɤ
ڡƤԤ롣ΥΡɤ˶꤬ʤʤä顢
.\"motoki: the next highest  the next lowest δְ㤤
˾ʥΡ ID ĥΡɤڡƤԤ롣

.I nodemask
ǻꤵ줿ƤΥΡɤǶ꤬ʤʤޤǷ֤
.I nodemask
ǻꤵ줿ʳΥΡɤϥڡγƤϹԤʤ

.B MPOL_INTERLEAVE
ϡƤ
.I nodemask
˻ꤵ줿Ρɴ֤Ǹߤ˹Ԥ뤳ȤꤹΤǤ롣
ΥݥꥷǤϡʣΥΡɤ˥ڡ򹭤֤Υڡؤ
ꥢʬ뤳ȤǡٱǤϤʤӰŬ롣
̤ˤϡΰ򤢤礭٤Ǥꡢ
ꥢΥѥ󤬤ʤѰʾǤ
ʤȤ 1MB ʾˤ٤Ǥ롣
Υ⡼ɤǤ⡢ĤΥڡؤΥ˴ؤƤ
ĤΥΡɤΥӰ褬¤Ȥʤ뤳ȤѤʤ

.B MPOL_PREFERRED
ϡƻͥ褵Ρɤꤹ롣
ͥϤޤͥΡɤ˥ڡƤԤȤ
ͥΡɤ˶꤬ʤ¾ΥΡɤ˳ƤԤ
.I nodemask
ʣΥΡ ID ꤵ줿ϡ
.I nodemask
κǽΥΡɤͥΡɤȤ򤵤롣

.IR nodemask ,
.I maxnode
Ƕ礬ꤵ줿ϡƤΤäȤʤä CPU ΥΡɤ
ƤԤ롣
.BR mbind (2)
ǡΰФơ֥뤫γ (local allocation)פ
ꤹˡϤ줷ʤ

.I flags

.B MPOL_MF_STRICT

ꤵ졢
.I policy

.B MPOL_DEFAULT
Ǥʤ硢
ꤵ줿ݥꥷ˽äƤʤΰ˥ڡ¸ߤȡ
.BR mbind ()
ϥ顼
.B EIO
ǼԤ롣
.\" According to the kernel code, the following is not true
.\" --Lee Schermerhorn
.\" .\"O In 2.6.16 or later the kernel will also try to move pages
.\" .\"O to the requested node with this flag.
.\" 2.6.16 ʹߤΥͥǤϡΥե饰׵ᤵ줿Ρɤ
.\" ڡư褦Ȥ롣

.I flags

.B MPOL_MF_MOVE
ꤵȡͥϤΥΰδ¸ƤΥڡư
ꤵ줿ݥꥷ˽褦ˤ褦Ȥ롣
¾ΥץȶͭƤڡϰưʤ
.B MPOL_MF_STRICT
ꤵ줿硢ưǤʤäڡȡ
.BR mbind ()
ϥ顼
.B EIO
ǼԤ롣

.I flags

.B MPOL_MF_MOVE_ALL
ꤵȡͥϤΥΰδ¸ƤΥڡ
¾ΥץڡѤƤ뤫ɤ˴ؤ餺ư롣
Υե饰ѤˤϡƤӽФΥץø
.RB ( CAP_SYS_NICE )
äƤʤФʤʤ
.B MPOL_MF_STRICT
ꤵ줿硢ưǤʤäڡȡ
.BR mbind ()
ϥ顼
.B EIO
ǼԤ롣
.\" ---------------------------------------------------------------
.SH ֤
ȡ
.BR mbind ()
 0 ֤顼ξ硢\-1 ֤
.I errno
˥顼򼨤ͤꤹ롣
.\" ---------------------------------------------------------------
.SH 顼
.\"  I think I got all of the error returns.  --Lee Schermerhorn
.TP
.B EFAULT
.I nodemask

.I maxnode
ǻꤵ줿ΰΰޤ
ƤӽФǽʥɥ쥹ֳؤƤ롣
⤷ϻꤵ줿ΰ˥ޥåפƤʤʬ (unmapped hole)
ä
.TP
.B EINVAL
.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
ͥŬѤ줿¤ĶƤ롣
.\" As at 2.6.23, this limit is "a page worth of bits", e.g.,
.\" 8 * 4096 bits, assuming a 4kB page size.
.I nodemask
ˡݡȤƤΡ ID 礭Ρɤꤵ줿
.I nodemask
ˡ饤ǡĤΥץθߤ CPU 祳ƥȤ
ĤƤΡɤĤޤޤƤʤ
ޤΡɤĤꤵƤʤ
.I mode

.B MPOL_F_STATIC_NODES

.B MPOL_F_RELATIVE_NODES
ξꤵ줿
.TP
.B EIO
.B MPOL_MF_STRICT
ꤵ줿Υݥꥷ˽äƤʤΡɤ
Ǥ˥ڡ¸ߤƤ
.B MPOL_MF_MOVE

.B MPOL_MF_MOVE_ALL
ꤵ줿ͥ뤬ꤵ줿ΰδ¸ƤΥڡ
ư뤳ȤǤʤä
.TP
.B ENOMEM
Ѳǽʥ꤬ͥʬʤä
.TP
.B EPERM
.I flags

.B MPOL_MF_MOVE_ALL
ե饰ޤޤƤ뤬ƤӽФ
.B CAP_SYS_NICE
øʤ
.\" ---------------------------------------------------------------
.SH С
.BR mbind ()
ƥॳϥС 2.6.7  Linux ͥɲä줿
.SH 
Υƥॳ Linux ȼǤ롣
.SH 
饤֥ˤ륵ݡȤˤĤƤ
.BR numa (7)
򻲾ȡ

NUMA ݥꥷϡ
.B MAP_SHARED
ե饰ꤵƥޥåפ줿ޥåסեΰǤ
ݡȤƤʤ

.B MPOL_DEFAULT
⡼ɤϡ
.BR mbind ()

.BR set_mempolicy (2)
ǰۤʤ̤ĤȤǤ롣
.BR set_mempolicy (2)

.B MPOL_DEFAULT
ꤵ줿硢ΥץΥݥꥷϥƥ
ǥեȥݥꥷʤ뤫γơ롣
.BR mbind ()
ȤäƥΤΰ
.B MPOL_DEFAULT
ꤵ줿硢ϰϤФƤʹߤ˹ԤڡγƤǤϡ
.BR set_mempolicy (2)
ꤷΤƱ褦ˡΥץΥݥꥷŬѤ롣
.\"0motoki: possibly non-default policy  default policy δְ㤤
ˤꡢΥΰˤĤƤŪʥݥꥷ
ǥեȤΥݥꥷˡ᤹פȤǤ롣
ΰФơ֥뤫γơפŪꤹˤϡ
.I mode

.B MPOL_PREFERRED
.I nodemask
˶ΥΡɤꤹФ褤
ˡ
.BR set_mempolicy (2)
ǤѤ롣

2.6.16 ǥҥ塼ڡݥꥷؤбɲä줿
󥿡꡼֡ݥꥷҥ塼ڡΥޥåԥ󥰤Ǹ̤Ĥˤϡ
ݥꥷŬѤ꤬ᥬХȰʾǤɬפ롣

.B MPOL_MF_STRICT
ϥҥ塼ڡΥޥåԥ󥰤Ǥ̵뤵롣

.B MPOL_MF_MOVE

.B MPOL_MF_MOVE_ALL
 Linux 2.6.16 ʹߤǤΤѲǽǤ롣
.SH Ϣ
.BR get_mempolicy (2),
.BR getcpu (2),
.BR mmap (2),
.BR set_mempolicy (2),
.BR shmat (2),
.BR shmget (2),
.BR numa (3),
.BR cpuset (7),
.BR numa (7),
.BR numactl (8)