Introduction:

====================================================================================================================

NUMA ( Non-Uniform Memory Access ) is topology in which, time taken in accessing a memory dependes upon
the local node or remote node memory. With the help of numa libraries or numactl command we could able
to use the numa topology such that we can run an application on a specified node ( node affinity ) and
also, we can apply memory policies such that an application running on a node can get memory alloctaion
from any specified nodes memory. So, we can use the policies offered by numa libraries or numactl command
to either decrease the memory latencies or increase the memory bandwidth by properly applying polcies.

Please refer http://lse.sourceforge.net/numa/ to know the basics of numa and refer
http://www.novell.com/collateral/4621437/4621437.pdf to understand the usage of numactl and numa libraries.

We can always get the latest package from http://oss.sgi.com/projects/libnuma/.

Testcase Description:
====================================================================================================================
numa01.sh shell script holds all the numa testcases and support_numa.c will help numa01.sh as and when needed.

Testcase1:
Verifies the node affinity and memory affinity by running the support_numa process which will allocate 1MB of memory.

TestCase2:
Verifies the preferred node memory policy which will allocate memory from the node we specify. This
testcase will use the support_numa process for the verfication.

TestCase3:
Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This
testcase will use the support_numa process for the verfication.

TestCase4:
Verifies the physical cpu affinity which runs the process support_numa on the specified physical cpu number.

TestCase5:
Verifies the local allocation policy which always allocates memory from the local node. This testcase
will use the support_numa process for the verfication.

TestCase6:
Verifies the memory interleaving policy on the shared memory which will interleave the shared memory on
all nodes equally. Here, the testcase use touch command instead of running a seperate process to verify
the policy applied.

TestCase7:
Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This
testcase will use the numademo for the verfication.

TestCase8:
Verifies the memory interleaving policy which will distribute the memory evenly among all nodes. This
testcase will use memhog for the verfication.

TestCase9:
Verifies the numa_node_size api with hardware checking.

TestCase10:
Verifieds the NUMA migratepages policy.


Pre-requisites
====================================================================================================================
 * libnuma should be installed on the NUMA machine before executing theses testcases
 * Testcases will not run by default in LTP-runall, they also skip on non-numa machines
