From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38902) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzCJe-0003xt-Vw for qemu-devel@nongnu.org; Mon, 23 Jun 2014 18:02:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WzCJX-0006cH-Gw for qemu-devel@nongnu.org; Mon, 23 Jun 2014 18:02:18 -0400 Received: from mail-pb0-f52.google.com ([209.85.160.52]:44108) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzCJX-0006ZV-By for qemu-devel@nongnu.org; Mon, 23 Jun 2014 18:02:11 -0400 Received: by mail-pb0-f52.google.com with SMTP id rq2so6392183pbb.11 for ; Mon, 23 Jun 2014 15:02:09 -0700 (PDT) Message-ID: <53A8A3DC.3010709@ozlabs.ru> Date: Tue, 24 Jun 2014 08:02:04 +1000 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <1402905233-26510-1-git-send-email-aik@ozlabs.ru> <1402905233-26510-4-git-send-email-aik@ozlabs.ru> <20140620191000.GX16644@linux.vnet.ibm.com> <53A4F74B.6080607@ozlabs.ru> <20140623174119.GC4323@linux.vnet.ibm.com> In-Reply-To: <20140623174119.GC4323@linux.vnet.ibm.com> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 3/7] spapr: Refactor spapr_populate_memory() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nishanth Aravamudan Cc: qemu-ppc@nongnu.org, qemu-devel@nongnu.org, Alexander Graf On 06/24/2014 03:41 AM, Nishanth Aravamudan wrote: > On 21.06.2014 [13:08:59 +1000], Alexey Kardashevskiy wrote: >> On 06/21/2014 05:10 AM, Nishanth Aravamudan wrote: >>> On 16.06.2014 [17:53:49 +1000], Alexey Kardashevskiy wrote: >>>> Current QEMU does not support memoryless NUMA nodes. >>>> This prepares SPAPR for that. >>>> >>>> This moves 2 calls of spapr_populate_memory_node() into >>>> the existing loop which handles nodes other than than >>>> the first one. >>> >>> >>> >>>> @@ -719,6 +704,12 @@ static int spapr_populate_memory(sPAPREnvironment *spapr, void *fdt) >>>> node_size = ram_size - mem_start; >>>> } >>>> } >>>> + if (!mem_start) { >>>> + /* ppc_spapr_init() checks for rma_size <= node0_size already */ >>>> + spapr_populate_memory_node(fdt, i, 0, spapr->rma_size); >>>> + mem_start += spapr->rma_size; >>>> + node_size -= spapr->rma_size; >>>> + } >>> >>> Why is this needed to be separate? The RMA fits in the first node, per >>> the comment and the prior checks, so can't we just leave the first node >>> alone? >> >> This is the way to tell SLOF what memory it can use. It can use RMA and it >> will use first available memory node. > > Right, but why does the RMA need to be in it's own memory node? Can't it > just be part of the first present memory node? As I understand SLOF can try using the whole node. -- Alexey