From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andi Kleen Subject: Re: How to make get_mempolicy return a node id list for an address range? Date: Tue, 10 Jan 2012 23:04:12 +0100 Message-ID: <20120110220412.GA11715@one.firstfloor.org> References: Mime-Version: 1.0 Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-numa-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Ananya Muddukrishna Cc: linux-numa@vger.kernel.org On Mon, Jan 09, 2012 at 09:09:30AM +0000, Ananya Muddukrishna wrote: > 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//numa_maps. You could just parse that? > > 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? You could use mincore(), but it won't handle the case of the memory being swapped out. -Andi