How to make get_mempolicy return a node id list for an address range?

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

Given a range of virtual addresses (begin and end) which are allocated using 
MPOL_INTERLEAVE, is there a quick way to know how this range is mapped to 
different NUMA nodes? In particular, I would like to have a weighted node-id 
list, where each node id in the list indicates how many address (or pages) are 
mapped to it, similar to what is seen in /proc/<proc_id>/numa_maps.

I am thinking of doing this by using get_mempolicy(MPOL_F_NODE|MPOL_F_ADDR) for 
every address in the range. This can be optimized for full correctness if I know 
the starting address of all pages contained in the range. Can you give me some 
tips on how to obtain that?

Thank you!
Best regards,
Ananya