1Introduction: 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 15We can always get the latest package from ftp://ftp.suse.com/pub/people/ak/numa. 16 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: 25Verifies the preferred node memory policy which will allocate memory from the node we specify. This 26testcase will use the support_numa process for the verfication. 27 28TestCase3: 29Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This 30testcase 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: 36Verifies the local allocation policy which always allocates memory from the local node. This testcase 37will use the support_numa process for the verfication. 38 39TestCase6: 40Verifies 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 44Pre-requisites 45==================================================================================================================== 46 * libnuma should be installed on the NUMA machine before executing theses testcases 47 * Testcases can also be executed on non-numa machines, but they will fail, 48 49Building the Tescases 50==================================================================================================================== 51From LTP-Root, use <make> to build the testcases 52ltp-full-20070731]$ make 53or, from 54ltp-full-20070731_numa/testcases/kernel/numa]# make 55 56Installing the Testcases 57==================================================================================================================== 58From LTP-Root, use <make> to install the testcases 59ltp-full-20070731]$ make install 60or, from 61ltp-full-20070731_numa/testcases/kernel/numa]# make install 62 63Running the Tescases 64==================================================================================================================== 65From LTP-Root, invoke ./runltp 66ltp-full-20070731]$ ./runltp -p -l <logfile> -f numa 67 68 * NUMA testcases will not run by default in LTP-runall 69