mbind(2) - wariua/manpages-ko GitHub Wiki
mbind - ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ ์ค์ ํ๊ธฐ
#include <numaif.h>
long mbind(void *addr, unsigned long len, int mode,
const unsigned long *nodemask, unsigned long maxnode,
unsigned flags);
-lnuma
๋ก ๋งํฌ.
mbind()
๋ addr
์์ ์์ํด์ len
๋ฐ์ดํธ๋งํผ ์ด์ด์ง๋ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ ๋ํด NUMA ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ
์ ์ค์ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ
์ ์ ์ฑ
๋ชจ๋์ 0๊ฐ ์ด์์ ๋
ธ๋๋ก ์ด๋ค์ง๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ด๋ ๋
ธ๋๋ก๋ถํฐ ํ ๋นํ๋์ง ๊ท์ ํ๋ค.
addr
๋ฐ len
์ธ์๋ก ์ง์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ "์ต๋ช
" ๋ฉ๋ชจ๋ฆฌ ์์ญ(์ฆ mmap(2) ์์คํ
ํธ์ถ์ MAP_ANONYMOUS
๋ก ์จ์ ๋ง๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ)์ด๋ (mmap(2) ์์คํ
ํธ์ถ์ MAP_PRIVATE
ํ๋๊ทธ๋ก ์จ์ ๋งต ํ) ๋ฉ๋ชจ๋ฆฌ ๋งต ํ์ผ์ด ํฌํจ๋ผ ์์ผ๋ฉด ์์ฉ์์ ๊ทธ ํ์ด์ง์ ์ฐ๊ธฐ(์ ์ฅ)๋ฅผ ํ ๋ ์ง์ ์ ์ฑ
์ ๋ฐ๋ผ ํ์ด์ง๋ฅผ ํ ๋นํ๊ฒ ๋๋ค. ์ต๋ช
์์ญ์์ ์ฒ์ ์ฝ๊ธฐ ์ ๊ทผ์ ํ๋ฉด 0์ผ๋ก ์ฑ์์ง ์ปค๋ ๋ด ๊ณต์ ํ์ด์ง๋ฅผ ์ด์ฉํ๊ฒ ๋๋ค. MAP_PRIVATE
์ผ๋ก ๋งต ํ ํ์ผ์์ ์ฒ์ ์ฝ๊ธฐ ์ ๊ทผ์ ํ๋ฉด ํ์ด์ง ํ ๋น์ ์ ๋ฐํ ์ค๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ
์ ๋ฐ๋ผ ํ์ด์ง๋ฅผ ํ ๋นํ๊ฒ ๋๋ค. ๊ทธ ์ค๋ ๋๊ฐ mbind()
๋ฅผ ํธ์ถํ ์ค๋ ๋๊ฐ ์๋ ์๋ ์๋ค.
์ง์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ ๋ด์ MAP_SHARED
๋งคํ์์๋ ์ง์ ์ ์ฑ
์ด ๋ฌด์๋๋ค. ํ์ด์ง ํ ๋น์ ์ ๋ฐํ ์ค๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ
์ ๋ฐ๋ผ ํ์ด์ง๋ฅผ ํ ๋นํ๊ฒ ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก mbind()
๋ฅผ ํธ์ถํ ์ค๋ ๋๊ฐ ์๋ ์๋ ์๋ค.
์ง์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ shmget(2) ์์คํ
ํธ์ถ๋ก ๋ง๋ค์ด์ shmat(2) ์์คํ
ํธ์ถ๋ก ๋ถ์ธ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ํฌํจ๋ผ ์์ผ๋ฉด ๊ทธ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ธ๊ทธ๋จผํธ์ ๋ถ์ ์ด๋ ํ๋ก์ธ์ค๊ฐ ํ ๋น์ ์ ๋ฐํ๋์ง์ ์๊ด์์ด ์ง์ ์ ์ฑ
์ ๋ฐ๋ผ ๊ทธ ์ต๋ช
๋ด์ง ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ํ ํ์ด์ง๋ค์ ํ ๋นํ๊ฒ ๋๋ค. ํ์ง๋ง ๊ทธ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด SHM_HUGETLB
ํ๋๊ทธ๋ฅผ ์จ์ ๋ง๋ ๊ฒ์ด๋ผ๋ฉด ๊ทธ ์์ญ์ mbind()
๋ฅผ ํธ์ถํ ํ๋ก์ธ์ค๊ฐ ํ์ด์ง ํ ๋น์ ์ ๋ฐํ ๊ฒฝ์ฐ์๋ง ์ง์ ์ ์ฑ
์ ๋ฐ๋ผ ๊ฑฐ๋ ํ์ด์ง๋ฅผ ํ ๋นํ๊ฒ ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก mbind()
๋ ์ ํ ๋น์๋ง ํจ๋ ฅ์ด ์๋ค. ์ ์ฑ
์ ์ค์ ํ๊ธฐ ์ ์ ๊ทธ ๋ฒ์ ๋ด์ ํ์ด์ง๋ค์ ์ด๋ฏธ ๊ฑด๋๋ ธ๋ค๋ฉด ์ ์ฑ
์ ์๋ฌด ํจ๊ณผ๊ฐ ์๋ค. ์๋์์ ์ค๋ช
ํ๋ MPOL_MF_MOVE
๋ฐ MPOL_MF_MOVE_ALL
ํ๋๊ทธ๋ก ์ด ๊ธฐ๋ณธ ๋์ ๋ฐฉ์์ ๋ฐ๊ฟ ์ ์๋ค.
mode
์ธ์์๋ MPOL_DEFAULT
, MPOL_BIND
, MPOL_INTERLEAVE
, MPOL_PREFERRED
, MPOL_LOCAL
(์๋์์ ์์ธํ ์ค๋ช
ํจ) ์ค ํ๋๋ฅผ ์ง์ ํด์ผ ํ๋ค. MPOL_DEFAULT
๋ฅผ ์ ์ธํ ๋ชจ๋ ์ ์ฑ
๋ชจ๋์์ ํธ์ถ์๊ฐ nodemask
์ธ์๋ฅผ ํตํด ๋ชจ๋๋ฅผ ์ ์ฉํ ๋
ธ๋๋ฅผ ์ง์ ํด์ผ ํ๋ค.
mode
์ธ์์ ์ ํ์ ์ผ๋ก ๋ชจ๋ ํ๋๊ทธ๊ฐ ํฌํจ๋ ์ ์๋ค. ์ง์ํ๋ ๋ชจ๋ ํ๋๊ทธ๋ ๋ค์๊ณผ ๊ฐ๋ค.
-
MPOL_F_STATIC_NODES
(๋ฆฌ๋ ์ค 2.6.26๋ถํฐ) - ๋น์ด ์์ง ์์
nodemask
๊ฐ ๋ฌผ๋ฆฌ์ ๋ ธ๋ ID๋ค์ ๋ํ๋ธ๋ค. ์ค๋ ๋๊ฐ ๋ค๋ฅธ cpuset ๋ฌธ๋งฅ์ผ๋ก ์ด๋ํ๊ฑฐ๋ ์ค๋ ๋์ ํ์ฌ cpuset ๋ฌธ๋งฅ์ด ํ์ฉํ๋ ๋ ธ๋ ์งํฉ์ด ๋ฐ๋ ๋ ๋ฆฌ๋ ์ค์์nodemask
๋ฅผ ์ฌ์ฌ์ ํ์ง ์๋๋ค. -
MPOL_F_RELATIVE_NODES
(๋ฆฌ๋ ์ค 2.6.26๋ถํฐ) - ๋น์ด ์์ง ์์
nodemask
๊ฐ ์ค๋ ๋์ ํ์ฌ cpuset์ด ํ์ฉํ๋ ๋ ธ๋ ID ์งํฉ์ ๋ํ ์๋์ ์ธ ๋ ธ๋ ID๋ค์ ๋ํ๋ธ๋ค.
nodemask
๋ ๋
ธ๋๋ค์ ๋นํธ ๋ง์คํฌ๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ ๊ทธ ๋นํธ ๋ง์คํฌ์๋ ์ต๋ maxnode
๊ฐ๊น์ง์ ๋นํธ๊ฐ ๋ด๊ฒจ ์๋ค. ๋นํธ ๋ง์คํฌ ํฌ๊ธฐ๋ฅผ sizeof(unsigned long)
์ ๋ค์ ๋ฐฐ์๋ก ์ฌ๋ฆผ ํ์ง๋ง ์ปค๋์์๋ maxnode
๊ฐ๊น์ง์ ๋นํธ๋ง ์ฌ์ฉํ๋ค. nodemask
๊ฐ์ด NULL์ด๊ฑฐ๋ maxnode
๊ฐ์ด 0์ด๋ฉด ๋น ๋
ธ๋ ์งํฉ์ ๋ํ๋ธ๋ค. maxnode
์ ๊ฐ์ด 0์ด๋ฉด nodemask
์ธ์๋ฅผ ๋ฌด์ํ๋ค. nodemask
๊ฐ ํ์์ธ ๊ฒฝ์ฐ์ ๊ทธ ์ธ์๋ ์จ๋ผ์ธ์ด๊ณ , (MPOL_F_STATIC_NODES
๋ชจ๋ ํ๋๊ทธ๋ฅผ ์ง์ ํ์ง ์์์ผ๋ฉด) ์ค๋ ๋์ ํ์ฌ cpuset ๋ฌธ๋งฅ์ด ํ์ฉํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ๋
ธ๋๋ฅผ ์ ์ด๋ ํ ๊ฐ๋ ํฌํจํด์ผ ํ๋ค.
mode
์ธ์์ ๋ค์ ๊ฐ๋ค ์ค ํ๋๊ฐ ํฌํจ๋ผ์ผ ํ๋ค.
MPOL_DEFAULT
- ์ด ๋ชจ๋๋ ๊ธฐ๋ณธ๊ณผ ๋ค๋ฅธ ์ ์ฑ
์ ๋ชจ๋ ์ ๊ฑฐํด์ ๊ธฐ๋ณธ ๋์ ๋ฐฉ์์ ๋ณต์ํ๋๋ก ์์ฒญํ๋ค.
mbind()
๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ ์ ์ฉ ์ ์ด๋ set_mempolicy(2)๋ก ์ค์ ํ ๊ฒ์ผ ์๋ ์๋ ์ค๋ ๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ ์ ์ฌ์ฉํ๋ผ๋ ๋ป์ด๋ค. ์ค๋ ๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ ์ ๋ชจ๋๋MPOL_DEFAULT
์ด๋ฉด ์์คํ ์ ์ญ ๊ธฐ๋ณธ ์ ์ฑ ์ ์ฐ๊ฒ ๋๋ค. ์์คํ ์ ์ญ ๊ธฐ๋ณธ ์ ์ฑ ์ ํ ๋น์ ์ด๋ฐํ CPU์ ๋ ธ๋์์ ํ์ด์ง๋ฅผ ํ ๋นํ๋ ๊ฒ์ด๋ค.MPOL_DEFAULT
์์nodemask
๋ฐmaxnode
์ธ์๋ ๋น ๋ ธ๋ ์งํฉ์ ๋ํ๋ด์ผ ํ๋ค. MPOL_BIND
- ์ด ๋ชจ๋๋ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์
nodemask
์ ์ง์ ํ ๋ ธ๋๋ค๋ก ์ ์ฝํ๋ ์๊ฒฉํ ์ ์ฑ ์ ์ง์ ํ๋ค.nodemask
์ ๋ ธ๋๊ฐ ์ฌ๋ฌ ๊ฐ ์์ผ๋ฉด ์ถฉ๋ถํ ์ ํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด์ ํ ๋น์ด ์ด๋ค์ง๋ ๋ ธ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ธ๋์์ ํ์ด์ง ํ ๋น์ ํ๋ค.nodemask
์ ์ง์ ํ์ง ์์ ์ด๋ค ๋ ธ๋์์๋ ํ์ด์ง๋ฅผ ํ ๋นํ์ง ์๋๋ค. (๋ฆฌ๋ ์ค 2.6.26 ์ ์์๋ ๋ ธ๋ ID์ ์ซ์ ๊ฐ์ด ๊ฐ์ฅ ๋ฎ์ ๋ ธ๋์์๋ถํฐ ํ์ด์ง ํ ๋น์ ํ๋ค. ๊ทธ ๋ ธ๋์ ์ ํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ด์ง๋ฉดnodemask
์ ์ง์ ํ ๋ค์์ผ๋ก ๋ฎ์ ID์ ๋ ธ๋์์ ํ ๋น์ ํ๊ณ , ๊ทธ๋ฐ ์์ผ๋ก ์ง์ ํ ๋ ธ๋๋ค ์ด๋์๋ ์ ํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ ๋๊น์ง ์งํํ๋ค.) MPOL_INTERLEAVE
- ์ด ๋ชจ๋์์๋
nodemask
์ ์ง์ ํ ๋ ธ๋ ์งํฉ ๋ด์์ ๊ต๋๋ก ํ์ด์ง ํ ๋น์ ํ๋ค. ํ์ด์ง๋ค๊ณผ ๊ทธ์ ๋ํ ๋ฉ๋ชจ๋ฆฌ ์ ๊ทผ์ ์ฌ๋ฌ ๋ ธ๋๋ก ๋ถ์ฐ์ํด์ผ๋ก์จ ์ง์ฐ๋ณด๋ค๋ ๋์ญํญ์ ์ต์ ํ ํ๋ค. ํจ๊ณผ๊ฐ ์์ผ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์์ญ์ด ๊ฝค ์ปค์ผ ํ๋ค. ์ต์ 1MB๋ ๋ผ์ผ ๊ฝค ๊ท ์ผํ ์ ๊ทผ ํจํด์ด ๋์จ๋ค. ๋จ์ผ ํ์ด์ง ์์ญ์ ๋ํ ์ ๊ทผ์ ์ฌ์ ํ ๋จ์ผ ๋ ธ๋ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ผ๋ก ์ ํ๋๋ค. MPOL_PREFERRED
- ์ด ๋ชจ๋๋ ํ ๋น ์ ํธ ๋
ธ๋๋ฅผ ์ค์ ํ๋ค. ์ปค๋์ด ๋จผ์ ๊ทธ ๋
ธ๋์์ ํ์ด์ง๋ฅผ ํ ๋นํ๋ ค๊ณ ์๋ํ์ง๋ง ๊ทธ ์ ํธ ๋
ธ๋์ ์ ํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ๋ฉด ๋ค๋ฅธ ๋
ธ๋๋ก ํํดํ๋ค.
nodemask
์ ๋ ธ๋ ID๋ฅผ ์ฌ๋ฌ ๊ฐ ์ง์ ํ๋ฉด ๋ง์คํฌ์ ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ์ ํธ ๋ ธ๋๋ก ์ ํํ๊ฒ ๋๋ค.nodemask
๋ฐmaxnode
์ธ์๊ฐ ๋น ์งํฉ์ ๋ํ๋ด๋ ๊ฒฝ์ฐ์๋ ํ ๋น์ ์ด๋ฐํ CPU์ ๋ ธ๋์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค. -
MPOL_LOCAL
(๋ฆฌ๋ ์ค 3.8๋ถํฐ) - ์ด ๋ชจ๋๋ "์ง์ญ ํ ๋น"์ ๋ํ๋ธ๋ค. ์ฆ ํ ๋น์ ์ด๋ฐํ CPU์ ๋
ธ๋("์ง์ญ ๋
ธ๋")์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค.
nodemask
๋ฐmaxnode
์ธ์๊ฐ ๋น ์งํฉ์ ๋ํ๋ด์ผ ํ๋ค. "์ง์ญ ๋ ธ๋"์ ์ ํด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ ์ปค๋์ ๋ค๋ฅธ ๋ ธ๋์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์๋ํ๊ฒ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ปค๋์ด ํญ์ "์ง์ญ ๋ ธ๋"์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ฒ ๋๋ค. ์ค๋ ๋์ ํ์ฌ cpuset ๋ฌธ๋งฅ์ด "์ง์ญ ๋ ธ๋"๋ฅผ ํ์ฉํ์ง ์์ผ๋ฉด ์ปค๋์ด ๋ค๋ฅธ ๋ ธ๋์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์๋ํ๊ฒ ๋๋ค. ์ค๋ ๋์ ํ์ฌ cpuset ๋ฌธ๋งฅ์์ ํ์ฉํ๊ฒ ๋๋ฉด ์ปค๋์ด ํญ์ "์ง์ญ ๋ ธ๋"์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ฒ ๋๋ค. ์ด์ ๋ฌ๋ฆฌMPOL_DEFAULT
๋ (set_mempolicy(2)๋ฅผ ํตํด ์ค์ ํ ๊ฒ์ผ ์๋ ์๋) ์ค๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ ์ผ๋ก ๋๋์๊ฐ๋ค. ๊ทธ ์ ์ฑ ์ "์ง์ญ ํ ๋น" ์๋ ์ด๋ค ์ ์ฑ ์ผ ์๋ ์๋ค.
flags
์ MPOL_MF_STRICT
๋ฅผ ์ฃผ๊ณ mode
๊ฐ MPOL_DEFAULT
๊ฐ ์๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ ๋ด์ ๊ธฐ์กด ํ์ด์ง๋ค์ด ์ ์ฑ
์ ๋ฐ๋ฅด์ง ์๋ ๊ฒฝ์ฐ ํธ์ถ์ด EIO
์ค๋ฅ๋ก ์คํจํ๋ค.
flags
์ MPOL_MF_MOVE
๋ฅผ ์ง์ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ ๋ด์ ๊ธฐ์กด ํ์ด์ง๋ค์ด ๋ชจ๋ ์ ์ฑ
์ ๋ฐ๋ฅด๊ฒ ๋๋๋ก ํ์ด์ง๋ฅผ ์ฎ๊ธฐ๋ ค๊ณ ์ปค๋์ด ์๋ํ๊ฒ ๋๋ค. ๋ค๋ฅธ ํ๋ก์ธ์ค์ ๊ณต์ ํ๋ ํ์ด์ง๋ ์ฎ๊ธฐ์ง ์๋๋ค. MPOL_MF_STRICT
๋ฅผ ํจ๊ป ์ง์ ํ๋ฉด ์ผ๋ถ ํ์ด์ง๋ฅผ ์ฎ๊ธธ ์ ์๋ ๊ฒฝ์ฐ ํธ์ถ์ด EIO
์ค๋ฅ๋ก ์คํจํ๋ค.
flags
์ MPOL_MF_MOVE_ALL
์ ์ฃผ๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ํ์ด์ง๋ฅผ ์ฐ๊ณ ์๋์ง ์ฌ๋ถ์ ์๊ด์์ด ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ ๋ด์ ๊ธฐ๋ณธ ํ์ด์ง ๋ชจ๋๋ฅผ ์ฎ๊ธฐ๋ ค๊ณ ์ปค๋์ด ์๋ํ๊ฒ ๋๋ค. ์ด ํ๋๊ทธ๋ฅผ ์ฐ๋ ค๋ฉด ํธ์ถ ์ค๋ ๋๊ฐ ํน๊ถ(CAP_SYS_NICE
)์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค. MPOL_MF_STRICT
๋ฅผ ํจ๊ป ์ง์ ํ๋ฉด ์ผ๋ถ ํ์ด์ง๋ฅผ ์ฎ๊ธธ ์ ์๋ ๊ฒฝ์ฐ ํธ์ถ์ด EIO
์ค๋ฅ๋ก ์คํจํ๋ค.
์ฑ๊ณต ์ mbind()
๋ 0์ ๋ฐํํ๋ค. ์ค๋ฅ ์ -1์ ๋ฐํํ๋ฉฐ ์ค๋ฅ๋ฅผ ๋ํ๋ด๋๋ก errno
๋ฅผ ์ค์ ํ๋ค.
EFAULT
-
nodemask
์maxnode
๋ก ์ง์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ ์ผ๋ถ ๋ด์ง ์ ์ฒด๊ฐ ์ ๊ทผ ๊ฐ๋ฅํ ์ฃผ์ ๊ณต๊ฐ ๋ฐ์ ๊ฐ๋ฆฌํจ๋ค. ๋๋addr
๊ณผlen
์ผ๋ก ์ง์ ํ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ ๋งต ์ ๋ ๊ตฌ๋ฉ์ด ์๋ค. EINVAL
-
flags
๋mode
์ ์ ํจํ์ง ์์ ๊ฐ์ ์ง์ ํ๋ค. ๋๋addr + len
์ดaddr
๋ณด๋ค ์๋ค. ๋๋addr
์ด ์์คํ ํ์ด์ง ํฌ๊ธฐ์ ๋ฐฐ์๊ฐ ์๋๋ค. ๋๋mode
๊ฐMPOL_DEFAULT
์ธ๋ฐnodemask
๊ฐ ๋น์ด ์์ง ์์ ์งํฉ์ ๋ํ๋ธ๋ค. ๋๋mode
๊ฐMPOL_BIND
๋MPOL_INTERLEAVE
์ด๊ณnodemask
๊ฐ ๋น์ด ์๋ค. ๋๋maxnode
๊ฐ ์ปค๋์์ ๋๋ ์ ํ์น๋ฅผ ์ด๊ณผํ๋ค. ๋๋ ์ง์ํ๋ ๊ฐ์ฅ ํฐ ๋ ธ๋ ID๋ณด๋ค ํฐ ๋ ธ๋ ID๋ฅผnodemask
์ ํ ๊ฐ ์ด์ ์ง์ ํ๋ค. ๋๋nodemask
๋ก ์ง์ ํ ๋ ธ๋ ID๋ค ์ค์์ ์จ๋ผ์ธ์ด๊ณ ์ค๋ ๋์ ํ์ฌ cpuset ๋ฌธ๋งฅ์์ ํ์ฉ๋๋ ๊ฒ ์๊ฑฐ๋, ์ง์ ํ ๋ ธ๋๋ค ์ค์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ๊ฒ ์๋ค. ๋๋mode
์ธ์์MPOL_F_STATIC_NODES
์MPOL_F_RELATIVE_NODES
๋ฅผ ํจ๊ป ์ง์ ํ๋ค. EIO
-
MPOL_MF_STRICT
๋ฅผ ์ง์ ํ์ผ๋ฉฐ ๊ทธ ๋ ธ๋์ ์ ์ฑ ์ ๋ฐ๋ฅด์ง ์๋ ๊ธฐ์กด ํ์ด์ง๊ฐ ์ด๋ฏธ ์๋ค. ๋๋MPOL_MF_MOVE
๋MPOL_MF_MOVE_ALL
์ ์ง์ ํ์ผ๋ฉฐ ์ปค๋์์ ๊ทธ ๋ฒ์ ๋ด์ ๊ธฐ์กด ํ์ด์ง ์ ์ฒด๋ฅผ ์ฎ๊ธธ ์ ์์๋ค. ENOMEM
- ์ฌ์ฉ ๊ฐ๋ฅํ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ถฉ๋ถํ์ง ์๋ค.
EPERM
-
flags
์ธ์์MPOL_MF_MOVE_ALL
ํ๋๊ทธ๊ฐ ํฌํจ๋ผ ์๋๋ฐ ํธ์ถ์๊ฐCAP_SYS_NICE
ํน๊ถ์ ๊ฐ์ง๊ณ ์์ง ์๋ค.
๋ฆฌ๋
์ค ์ปค๋ ๋ฒ์ 2.6.7์์ mbind()
์์คํ
ํธ์ถ์ด ์ถ๊ฐ๋์๋ค.
์ด ์์คํ ํธ์ถ์ ๋ฆฌ๋ ์ค ์ ์ฉ์ด๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ง์์ ๋ํ ์ ๋ณด๋ numa(7)๋ฅผ ๋ณด๋ผ.
MAP_SHARED
ํ๋๊ทธ๋ก ๋งต ํ ๋ฉ๋ชจ๋ฆฌ ๋งต ํ์ผ ๋ฒ์์์๋ NUMA ์ ์ฑ
์ ์ง์ํ์ง ์๋๋ค.
MPOL_DEFAULT
๋ชจ๋์ ํจ๊ณผ๊ฐ mbind()
์ set_mempolicy(2)์์ ๋ค๋ฅผ ์ ์๋ค. set_mempolicy(2)์์ MPOL_DEFAULT
๋ฅผ ์ง์ ํ๋ฉด ์ค๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ
์ด ์์คํ
๊ธฐ๋ณธ ์ ์ฑ
์ธ ์ง์ญ ํ ๋น์ผ๋ก ๋๋์๊ฐ๋ค. ๋ฐ๋ฉด mbind()
๋ฅผ ์ด์ฉํด ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ MPOL_DEFAULT
๋ฅผ ์ง์ ํ๋ฉด ๊ทธ ๋ฒ์์์ ์ดํ ํ ๋นํ๋ ํ์ด์ง๋ค์ด set_mempolicy(2)๋ก ์ค์ ํ ์ค๋ ๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ
์ ์ฌ์ฉํ๊ฒ ๋๋ค. ์ง์ ํ ๋ฒ์์์ ๋ช
์์ ์ ์ฑ
์ ์์ ์ ๊ธฐ๋ณธ๊ณผ๋ ๋ค๋ฅผ ์๋ ์๋ ์ ์ฑ
์ผ๋ก "ํํด"์ํค๋ ํจ๊ณผ๊ฐ ์๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์์ ๋ช
์์ ์ผ๋ก "์ง์ญ ํ ๋น"์ ์ ํํ๋ ค๋ฉด ๋น ๋
ธ๋ ์งํฉ์ผ๋ก mode
์ MPOL_LOCAL
์ด๋ MPOL_PREFERRED
๋ฅผ ์ง์ ํ๋ฉด ๋๋ค. set_mempolicy(2)์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ด ๋ฐฉ๋ฒ์ด ํตํ๋ค.
๊ฑฐ๋ ํ์ด์ง ์ ์ฑ ์ง์์ 2.6.16์์ ์ถ๊ฐ๋์๋ค. ๊ฑฐ๋ ํ์ด์ง ๋งคํ์์ ๊ต๋ ์ ์ฑ ์ด ํจ๊ณผ๊ฐ ์์ผ๋ ค๋ฉด ์ ์ฑ ๋์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ญ ๋ฉ๊ฐ๋ฐ์ดํธ ์ด์์ด ๋์ด์ผ ํ๋ค.
๊ฑฐ๋ ํ์ด์ง ๋งคํ์์๋ MPOL_MF_STRICT
๋ฅผ ๋ฌด์ํ๋ค.
MPOL_MF_MOVE
์ MPOL_MF_MOVE_ALL
์ ๋ฆฌ๋
์ค 2.6.16 ๋ฐ ์ดํ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
get_mempolicy(2), getcpu(2), mmap(2), set_mempolicy(2), shmat(2), shmget(2), numa(3), cpuset(7), numa(7), numactl(8)
2017-09-15