numa_alloc_interleaved and expectation of round-robin allocation

Ananya Muddukrishna <[email protected]> Thu, 5 Jan 2012 09:31:00 +0000 (UTC)
Newsgroups org.kernel.vger.linux-numa
Message-ID <[email protected]>
Hi,

I am using numactl-2.0.8-rc3 on a large server machine with 8 NUMA nodes and 
8Gbyte of memory per node.

I ran a test application compiled using numactl-2.0.8-rc3/test/tshared.c. I 
understand that this piece of code allocates memory pages as interleaved on all 
numa nodes. Later the application gets the memory policy 
(MPOL_F_NODE|MPOL_F_ADDR) for the pages allocated and prints out deviations from 
round-robin allocation if any.

In my tests I find a huge bias and deviation from the expected round-robin 
allocation. Around 90% of the pages are allocated on node#0. I tried 
numa_set_strict(1) but numa_alloc_interleaved does not honor this flag in 
agreement with the documentation.

Please explain this behavior to me. Must I patch numactl to enforce round-robin 
strictness?

Thanks!
-- Ananya