[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 1/6] Use correct types to enable > 2G support

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 (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.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]