From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kdn0M-0005aH-Rd for qemu-devel@nongnu.org; Thu, 11 Sep 2008 10:18:42 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kdn0L-0005XZ-4o for qemu-devel@nongnu.org; Thu, 11 Sep 2008 10:18:42 -0400 Received: from [199.232.76.173] (port=42887 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kdn0K-0005XJ-Nt for qemu-devel@nongnu.org; Thu, 11 Sep 2008 10:18:40 -0400 Received: from hall.aurel32.net ([91.121.138.14]:49532) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kdn0K-0001u8-FL for qemu-devel@nongnu.org; Thu, 11 Sep 2008 10:18:40 -0400 Message-ID: <48C928AF.1070208@aurel32.net> Date: Thu, 11 Sep 2008 16:18:23 +0200 From: Aurelien Jarno MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH] split memory allocation References: <1221140541-24464-1-git-send-email-glommer@redhat.com> In-Reply-To: <1221140541-24464-1-git-send-email-glommer@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Glauber Causta Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org Glauber Costa a écrit : > Right now, kvm keeps the memory allocation split, so we can > handle different areas in different ways. This schema works with qemu > too, so it appears to be the common ground. > > This patch proposes using this common ground for everyone, by spliting > raw qemu. > > Signed-off-by: Glauber Costa > --- > hw/pc.c | 16 ++++++++++++---- > 1 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/hw/pc.c b/hw/pc.c > index 435c7d4..d6084ee 100644 > --- a/hw/pc.c > +++ b/hw/pc.c > @@ -777,16 +777,24 @@ static void pc_init1(ram_addr_t ram_size, int vga_ram_size, > vmport_init(); > > /* allocate RAM */ > - ram_addr = qemu_ram_alloc(ram_size); > - cpu_register_physical_memory(0, below_4g_mem_size, ram_addr); > + ram_addr = qemu_ram_alloc(0xa0000); > + cpu_register_physical_memory(0, 0xa0000, ram_addr); > + > + ram_addr = qemu_ram_alloc(0x100000 - 0xa0000); /* hole */ What the point of allocating RAM for the memory hole if it is not mapped? > + ram_addr = qemu_ram_alloc(below_4g_mem_size - 0x100000); > + cpu_register_physical_memory(0x100000, > + below_4g_mem_size - 0x100000, > + ram_addr); > > /* above 4giga memory allocation */ > if (above_4g_mem_size > 0) { > - cpu_register_physical_memory((target_phys_addr_t) 0x100000000ULL, > + ram_addr = qemu_ram_alloc(above_4g_mem_size); > + cpu_register_physical_memory(0x100000000ULL, > above_4g_mem_size, > - ram_addr + below_4g_mem_size); > + ram_addr); > } > > + > /* allocate VGA RAM */ > vga_ram_addr = qemu_ram_alloc(vga_ram_size); > -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32@debian.org | aurelien@aurel32.net `- people.debian.org/~aurel32 | www.aurel32.net