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