blob: 6f04f0cc45cb72906032c053ed6735d259bfe9e6 [file] [log] [blame]
subrata_modak9b555d12007-08-24 09:41:59 +00001Introduction:
2
3====================================================================================================================
4
5NUMA ( Non-Uniform Memory Access ) is topology in which, time taken in accessing a memory dependes upon
6the local node or remote node memory. With the help of numa libraries or numactl command we could able
7to use the numa topology such that we can run an application on a specified node ( node affinity ) and
8also, we can apply memory policies such that an application running on a node can get memory alloctaion
9from any specified nodes memory. So, we can use the policies offered by numa libraries or numactl command
10to either decrease the memory latencies or increase the memory bandwidth by properly applying polcies.
11
12Please refer http://lse.sourceforge.net/numa/ to know the basics of numa and refer
13http://www.novell.com/collateral/4621437/4621437.pdf to understand the usage of numactl and numa libraries.
14
Li Wangad38c312016-12-14 18:08:43 +080015We can always get the latest package from http://oss.sgi.com/projects/libnuma/.
subrata_modak9b555d12007-08-24 09:41:59 +000016
17Testcase Description:
18====================================================================================================================
19numa01.sh shell script holds all the numa testcases and support_numa.c will help numa01.sh as and when needed.
20
21Testcase1:
22Verifies the node affinity and memory affinity by running the support_numa process which will allocate 1MB of memory.
23
24TestCase2:
Chris Dearman37550cf2012-10-17 19:54:01 -070025Verifies the preferred node memory policy which will allocate memory from the node we specify. This
subrata_modak9b555d12007-08-24 09:41:59 +000026testcase will use the support_numa process for the verfication.
27
28TestCase3:
Chris Dearman37550cf2012-10-17 19:54:01 -070029Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This
subrata_modak9b555d12007-08-24 09:41:59 +000030testcase will use the support_numa process for the verfication.
31
32TestCase4:
33Verifies the physical cpu affinity which runs the process support_numa on the specified physical cpu number.
34
35TestCase5:
Chris Dearman37550cf2012-10-17 19:54:01 -070036Verifies the local allocation policy which always allocates memory from the local node. This testcase
subrata_modak9b555d12007-08-24 09:41:59 +000037will use the support_numa process for the verfication.
38
Chris Dearman37550cf2012-10-17 19:54:01 -070039TestCase6:
subrata_modak9b555d12007-08-24 09:41:59 +000040Verifies the memory interleaving policy on the shared memory which will interleave the shared memory on
41all nodes equally. Here, the testcase use touch command instead of running a seperate process to verify
42the policy applied.
43
Li Wangad38c312016-12-14 18:08:43 +080044TestCase7:
45Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This
46testcase will use the numademo for the verfication.
47
48TestCase8:
49Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This
50testcase will use memhog for the verfication.
51
52TestCase9:
53Verifies the numa_node_size api with hardware checking.
54
55TestCase10:
56Verifieds the NUMA migratepages policy.
57
58
subrata_modak9b555d12007-08-24 09:41:59 +000059Pre-requisites
60====================================================================================================================
61 * libnuma should be installed on the NUMA machine before executing theses testcases
Li Wangad38c312016-12-14 18:08:43 +080062 * Testcases will not run by default in LTP-runall, they also skip on non-numa machines