|
From: | Avi Kivity |
Subject: | [Qemu-devel] Re: [PATCH 1/6] Use correct types to enable > 2G support |
Date: | Fri, 01 Feb 2008 17:13:37 +0200 |
User-agent: | Thunderbird 2.0.0.9 (X11/20071115) |
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. -- Any sufficiently difficult bug is indistinguishable from a feature.
[Prev in Thread] | Current Thread | [Next in Thread] |