From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JKyC3-0005Qk-Ie for qemu-devel@nongnu.org; Fri, 01 Feb 2008 10:52:43 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JKyBy-0005KS-EJ for qemu-devel@nongnu.org; Fri, 01 Feb 2008 10:52:42 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JKyBy-0005KJ-9N for qemu-devel@nongnu.org; Fri, 01 Feb 2008 10:52:38 -0500 Received: from fk-out-0910.google.com ([209.85.128.188]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JKyBy-0007M4-1P for qemu-devel@nongnu.org; Fri, 01 Feb 2008 10:52:38 -0500 Received: by fk-out-0910.google.com with SMTP id 18so2187838fkq.2 for ; Fri, 01 Feb 2008 07:52:35 -0800 (PST) Message-ID: <47A308DB.3040204@gmail.com> Date: Fri, 01 Feb 2008 06:56:11 -0500 From: Robert William Fuller MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 1/6] Use correct types to enable > 2G support References: <1201818980-27534-1-git-send-email-aliguori@us.ibm.com> <1201818980-27534-2-git-send-email-aliguori@us.ibm.com> <47A2F3C7.6060409@bellard.org> <47A32E40.3000204@us.ibm.com> <47A33721.4020600@qumranet.com> In-Reply-To: <47A33721.4020600@qumranet.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Avi Kivity wrote: > Anthony Liguori wrote: >> Fabrice Bellard wrote: >>> Anthony Liguori wrote: >>>> + /* above 4giga memory allocation */ >>>> + if (above_4g_mem_size > 0) { >>>> + ram_addr = qemu_ram_alloc(above_4g_mem_size); >>>> + cpu_register_physical_memory(0x100000000, >>>> above_4g_mem_size, ram_addr); >>>> + } >>>> + >>> >>> Why do you need this ? All the RAM can be registered with a single >>> call. I fear you need to do that because of KVM RAM handling >>> limitations. >> >> On the x86, there is a rather large hole at the top of memory. >> Currently, we do separate allocations around this whole. You can't >> get away from doing multiple cpu_register_physical_memory calls here. >> We've discussed just allocating a single chunk with qemu_ram_alloc >> since so many places in QEMU assume that you can do phys_ram_base + PA. >> >> I think I'll change this too into a single qemu_ram_alloc. That will >> fix the bug with KVM when using -kernel and large memory anyway :-) > > Won't that cause all of the memory in the hole to be wasted? > > You could munmap() it, but it's hardly elegant. > Linux doesn't commit mapped memory until it's faulted. As for other platforms, who knows?