From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Harper Subject: Re: Re: [PATCH 1/6][RESEND] xen: Add NUMA support to Xen Date: Fri, 19 May 2006 16:08:58 -0500 Message-ID: <20060519210857.GR16876@us.ibm.com> References: <20060501215648.GU16776@us.ibm.com> <200605152246.30374.ak@suse.de> <25076f74e546e868c489e384ee838e2e@cl.cam.ac.uk> <200605161457.09187.ak@suse.de> <403a4dbd4c7329e3de93e78054d5ffaf@cl.cam.ac.uk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="y0Ed1hDcWxc3B7cn" Return-path: Content-Disposition: inline In-Reply-To: <403a4dbd4c7329e3de93e78054d5ffaf@cl.cam.ac.uk> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: Xen Devel , Andi Kleen , Ryan Grimm List-Id: xen-devel@lists.xenproject.org --y0Ed1hDcWxc3B7cn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline * Keir Fraser [2006-05-16 08:03]: > > On 16 May 2006, at 13:57, Andi Kleen wrote: > > >>Yes, my gut feeling looking at x86_64's numa.c is that it's going to > >>need some heavier surgery than srat.c. I wouldn't worry so much about > >>keeping that one close to the Linux original: if we end up pulling > >>down > >>more Linux memory bookkeeping code later then we can always go back > >>and > >>sync the file more closely. Keep it as clean as possible though, > >>obviously (e.g., replacing whole functions is nicer than functions > >>that > >>are a hacky halfway house between Linux and Xen, etc). > > > >If it helps I can split these functions into smaller ones in the > >mainline > >sources. That could isolate the pglists in only very small functions. > > Thanks: I guess we'll see how the new patch turns out. It would I've got the ACPI numa.c parser function using linux/arch/x86_64/mm/srat.c almost entirely unmodified. linux/arch/x86_64/mm/numa.c was gutted retainly only the calls between itself and srat.c. I kept the memnodemap which has a nice phys_to_nid() function. There is still some cleanup to do, but I'd like some feedback on what I used and didn't. I didn't bring in mmzone.h but I did pull a few ideas and defines from there. We have a simple node_data structure with start_pfn, spanned_pages and node_id. I attempted to follow x86_64 numa.c which stashes the structure on node-local memory. This was problematic for 32-bit NUMA support. On the opteron 2-way that I had, the starting physical address for the second node is 80000000, and when turned into a virtual address (PAGE_OFFSET is FF000000), the resulting va is 17F000000, which overflows unsigned long in 32-bit. I started to use u64's, but several functions (like map_pages_to_xen()) only take unsigned longs. Rather than go through getting that function working, I think it is perfectly fine to just have a static array. The structure we store out there isn't accessed in any fast path. If the structure becomes more complicated in the future, or someone not having the structure on node-local memory becomes a performance issue we can revisit. The patch is function on 32-bit and 64-bit boxes and parse the SRAT table and fills out the node_data array. I installed a simple keyhandler 'u' to dump the info to check that it was function after booting up. -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 ryanh@us.ibm.com --y0Ed1hDcWxc3B7cn Content-Type: application/x-gtar Content-Disposition: attachment; filename="acpi_numa.tgz" Content-Transfer-Encoding: base64 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 SUlKUpKSlKQkJSlJSUrS35L+DySjpqcAoAAA --y0Ed1hDcWxc3B7cn Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --y0Ed1hDcWxc3B7cn--