From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35139) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z53ry-0006cb-21 for qemu-devel@nongnu.org; Tue, 16 Jun 2015 23:18:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z53ru-00066M-1V for qemu-devel@nongnu.org; Tue, 16 Jun 2015 23:18:30 -0400 Received: from e23smtp02.au.ibm.com ([202.81.31.144]:37294) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z53rs-00060f-8Z for qemu-devel@nongnu.org; Tue, 16 Jun 2015 23:18:25 -0400 Received: from /spool/local by e23smtp02.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 17 Jun 2015 13:18:18 +1000 Received: from d23relay07.au.ibm.com (d23relay07.au.ibm.com [9.190.26.37]) by d23dlp02.au.ibm.com (Postfix) with ESMTP id 47A952BB0051 for ; Wed, 17 Jun 2015 13:18:16 +1000 (EST) Received: from d23av04.au.ibm.com (d23av04.au.ibm.com [9.190.235.139]) by d23relay07.au.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t5H3I7u744171506 for ; Wed, 17 Jun 2015 13:18:16 +1000 Received: from d23av04.au.ibm.com (localhost [127.0.0.1]) by d23av04.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t5H3HfjV004350 for ; Wed, 17 Jun 2015 13:17:42 +1000 Date: Wed, 17 Jun 2015 08:47:21 +0530 From: Bharata B Rao Message-ID: <20150617031720.GA20693@in.ibm.com> References: <1434099628-18102-1-git-send-email-bharata@linux.vnet.ibm.com> <1434099628-18102-4-git-send-email-bharata@linux.vnet.ibm.com> <20150615163120.GA3874@thinpad.lan.raisama.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150615163120.GA3874@thinpad.lan.raisama.net> Subject: Re: [Qemu-devel] [RFC PATCH v1 3/4] numa: Store boot memory address range in node_info Reply-To: bharata@linux.vnet.ibm.com List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost Cc: pbonzini@redhat.com, imammedo@redhat.com, qemu-devel@nongnu.org, david@gibson.dropbear.id.au On Mon, Jun 15, 2015 at 01:31:20PM -0300, Eduardo Habkost wrote: > On Fri, Jun 12, 2015 at 02:30:27PM +0530, Bharata B Rao wrote: > > Store memory address range information of boot memory in address > > range list of numa_info. > > > > This helps to have a common NUMA node lookup by address function that > > works for both boot time memory and hotplugged memory. > > > > Signed-off-by: Bharata B Rao > > --- > > numa.c | 22 ++++++++++++++++++++++ > > 1 file changed, 22 insertions(+) > > > > diff --git a/numa.c b/numa.c > > index 27ca743..d67b1fb 100644 > > --- a/numa.c > > +++ b/numa.c > > @@ -75,6 +75,26 @@ void numa_unset_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node) > > } > > } > > > > +static void numa_set_mem_ranges(void) > > +{ > > + int i; > > + ram_addr_t mem_start, mem_end_prev; > > + > > + /* > > + * Deduce start address of each node and use it to store > > + * the address range info in numa_info address range list > > + */ > > + for (i = 0; i < nb_numa_nodes; i++) { > > + if (i) { > > + mem_start = mem_end_prev; > > + } else { > > + mem_start = 0; > > + } > > You could simply initialize mem_end_prev=0 before entering the loop, > instead. > > Actually, you don't even need the mem_end_prev variable: > > int i; > ram_addr_t mem_start = 0; > > for (i = 0; i < nb_numa_nodes; i++) { > numa_set_mem_node_id(mem_start, numa_info[i].node_mem, i); > mem_start = mem_start + numa_info[i].node_mem; > } Ok will change to this. > > I was going to suggest moving this to > memory_region_allocate_system_memory() instead (that already has a loop > calculating the start address for each NUMA node), but the problem is > that allocate_system_memory_nonnuma() may be called even if using NUMA > if no memdevs are used. So this can be done later, after refactoring > memory_region_allocate_system_memory() to have a single memory > allocation code path. If there are no more comments to be addressed in this series, I shall spin the next version. Regards, Bharata.