We are trying to understand the usage model with numa in order to see how SGX technology can cope with NUMA and we have a few points that are not clear. Maybe someone can put some light: Imagine (for example) that someone calls set_mempolicy(node=1) on say thread t1. And calls set_mempolicy(node=2) on thread t2. Any subsequent allocations made on thread t1 will come from node 1 - agreed. But then if those buffers are freed back to the heap and thread t2 calls alloc(), can the same buffer (just freed by t1) be returned to t2 by the heap? In short how does the heap ensure consistency of the policies across threads? Is their extra code required in the heap manager in order to be NUMA compliant. Second question: suppose t1 calls set_mempolicy(node=1) at some time=0 and calls set_mempolicy(node=2) at time=100. Again buffers being released back to the heap between time 0 and 100 are all from node 1 and potentially can be used for allocation after time 100; i.e. those allocations will not be consistent with the policy set at time 100. The question is about how those conflicts are being resolved, special heap manager / rules about using the NUMA apis / others? Thanks in advance, Serge -- 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