Hi everyone, I am experiencing a weird problem. When using numa_alloc_onnode repeatedly to allocate memory, it does not allocate memory on the node passed as an argument. Sample code: #include <numa.h> #include <numaif.h> #include <iostream> using namespace std; void find_memory_node_for_addr(void* ptr) { int numa_node = -1; if(get_mempolicy(&numa_node, NULL, 0, ptr, MPOL_F_NODE | MPOL_F_ADDR) < 0) cout << "WARNING: get_mempolicy failed" << endl; cout << numa_node << endl; } int main() { int64_t* x; int64_t n = 5000; //numa_set_preferred(1); numa_run_on_node(2); for(int i = 0; i < 20; i++) { size_t s = n * sizeof(int64_t); x = (int64_t*)numa_alloc_onnode(s, 1); for(int j = 0; j < n; j++) x[j] = j + i; find_memory_node_for_addr(x); } return 0; } Output: 1 1 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 When uncommenting the line "numa_set_preferred(1);”, the output is all 1s as expected. Am I doing something wrong? Have you seen similar issues? I am running Ubuntu 12.04.5 LTS: $ cat /proc/version Linux version 3.2.0-29-generic (buildd@allspice) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012 I am using libnuma 2.0.10 but I’ve had the same problem with 2.0.8~rc3-1. Thank you very much, Andres -- To unsubscribe from this list: send the line "unsubscribe linux-numa" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html