[LTP] [PATCH v2 0/4] dont use hardcoded NUMA node ids

Jan Stancek
2012-05-29T08:30:10Z

Changes in v2:
get_allowed_pages()
- removed tst_resm(TFAIL,..)
- added break
- for ret == -3, set errno to EINVAL
move_pages_support.c
- check return value from get_allowed_nodes_arr()
mbind, get_mempolicy, move_pages
- removed curly brackets in single statement ifs

This patch series is a combination of:
[PATCH v3] mbind01, get_mempolicy01: dont use hardcoded node 0
[PATCH 1/2] move_pages_support: use only allowed nodes
[PATCH 2/2] move_pages: dont use hardcoded node numbers

so that all testcases use same shared code, which resides in libnuma_helper.a.
This library defines get_allowed_nodes() and get_allowed_nodes_arr() functions
to obtain list of nodes tests can use.

I tested it with following setups. Note that setup 4 and 5 will
end with TCONF as there is only 1 node with memory.

1.
# numactl -H
available: 8 nodes (2,4-10)
node 2 cpus: 0
node 2 size: 127 MB
node 2 free: 9 MB
node 4 cpus:
node 4 size: 128 MB
node 4 free: 9 MB
node 5 cpus:
node 5 size: 128 MB
node 5 free: 64 MB
node 6 cpus:
node 6 size: 128 MB
node 6 free: 121 MB
node 7 cpus:
node 7 size: 128 MB
node 7 free: 121 MB
node 8 cpus:
node 8 size: 128 MB
node 8 free: 121 MB
node 9 cpus:
node 9 size: 128 MB
node 9 free: 121 MB
node 10 cpus:
node 10 size: 127 MB
node 10 free: 123 MB

2.
# numactl -H
available: 4 nodes (0-3)
node 0 cpus: 0 1 2 3 4 5
node 0 size: 2047 MB
node 0 free: 564 MB
node 1 cpus: 6 7 8 9 10 11
node 1 size: 2046 MB
node 1 free: 451 MB
node 2 cpus: 18 19 20 21 22 23
node 2 size: 2048 MB
node 2 free: 595 MB
node 3 cpus: 12 13 14 15 16 17
node 3 size: 2048 MB
node 3 free: 236 MB
node distances:
node 0 1 2 3
0: 10 16 16 16
1: 16 10 16 16
2: 16 16 10 16
3: 16 16 16 10

3.
# numactl -H
available: 2 nodes (2-3)
node 2 cpus: 0
node 2 size: 511 MB
node 2 free: 154 MB
node 3 cpus:
node 3 size: 511 MB
node 3 free: 490 MB

4.
# numactl -H
available: 2 nodes (0-1)
node 0 cpus: 0 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
node 0 size: 0 MB
node 0 free: 0 MB
node 1 cpus:
node 1 size: 12288 MB
node 1 free: 9689 MB
node distances:
node 0 1
0: 10 40
1: 40 10

5.
# numactl -H
available: 1 nodes (0)
node 0 cpus: 0
node 0 size: 1023 MB
node 0 free: 654 MB
node distances:
node 0
0: 10

Jan Stancek (4):
add libnuma_helper.a
mbind01: dont use hardcoded NUMA node ids
get_mempolicy01: dont use hardcoded NUMA node ids
move_pages: dont use hardcoded NUMA node ids

testcases/kernel/syscalls/get_mempolicy/Makefile | 7 +-
.../syscalls/get_mempolicy/get_mempolicy01.c | 8 +-
testcases/kernel/syscalls/mbind/Makefile | 3 +-
testcases/kernel/syscalls/mbind/mbind01.c | 9 +-
testcases/kernel/syscalls/move_pages/Makefile | 5 +-
.../kernel/syscalls/move_pages/move_pages02.c | 11 +-
.../kernel/syscalls/move_pages/move_pages03.c | 11 +-
.../kernel/syscalls/move_pages/move_pages04.c | 11 +-
.../kernel/syscalls/move_pages/move_pages05.c | 11 +-
.../kernel/syscalls/move_pages/move_pages06.c | 9 +-
.../kernel/syscalls/move_pages/move_pages07.c | 11 +-
.../kernel/syscalls/move_pages/move_pages08.c | 9 +-
.../kernel/syscalls/move_pages/move_pages09.c | 7 +-
.../kernel/syscalls/move_pages/move_pages10.c | 11 +-
.../kernel/syscalls/move_pages/move_pages11.c | 11 +-
.../syscalls/move_pages/move_pages_support.c | 44 +++++--
.../syscalls/move_pages/move_pages_support.h | 1 +
.../syscalls/{get_mempolicy => numa}/Makefile | 13 +--
.../{get_mempolicy/Makefile => numa/Makefile.inc} | 20 ++--
.../syscalls/{get_mempolicy => numa/lib}/Makefile | 15 +--
testcases/kernel/syscalls/numa/lib/numa_helper.c | 135 ++++++++++++++++++++
testcases/kernel/syscalls/numa/lib/numa_helper.h | 34 +++++
22 files changed, 304 insertions(+), 92 deletions(-)
copy testcases/kernel/syscalls/{get_mempolicy => numa}/Makefile (73%)
copy testcases/kernel/syscalls/{get_mempolicy/Makefile => numa/Makefile.inc} (69%)
copy testcases/kernel/syscalls/{get_mempolicy => numa/lib}/Makefile (71%)
create mode 100644 testcases/kernel/syscalls/numa/lib/numa_helper.c
create mode 100644 testcases/kernel/syscalls/numa/lib/numa_helper.h