qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH v3 02/16] pc: Allocate all ram in a single qemu_ram_


From: Alex Williamson
Subject: [Qemu-devel] [PATCH v3 02/16] pc: Allocate all ram in a single qemu_ram_alloc()
Date: Fri, 02 Jul 2010 11:12:03 -0600
User-agent: StGIT/0.14.3

This will benefit us when we migrate based on ramblock name since
we won't be bouncing between separate blocks.

Signed-off-by: Alex Williamson <address@hidden>
---

 hw/pc.c |   22 +++++++++-------------
 1 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/hw/pc.c b/hw/pc.c
index 25ebafa..de60686 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -877,27 +877,23 @@ void pc_memory_init(ram_addr_t ram_size,
     *above_4g_mem_size_p = above_4g_mem_size;
     *below_4g_mem_size_p = below_4g_mem_size;
 
+#if TARGET_PHYS_ADDR_BITS == 32
+    if (above_4g_mem_size > 0) {
+        hw_error("To much RAM for 32-bit physical address");
+    }
+#endif
     linux_boot = (kernel_filename != NULL);
 
     /* allocate RAM */
-    ram_addr = qemu_ram_alloc(below_4g_mem_size);
+    ram_addr = qemu_ram_alloc(below_4g_mem_size + above_4g_mem_size);
     cpu_register_physical_memory(0, 0xa0000, ram_addr);
     cpu_register_physical_memory(0x100000,
                  below_4g_mem_size - 0x100000,
                  ram_addr + 0x100000);
-
-    /* above 4giga memory allocation */
-    if (above_4g_mem_size > 0) {
-#if TARGET_PHYS_ADDR_BITS == 32
-        hw_error("To much RAM for 32-bit physical address");
-#else
-        ram_addr = qemu_ram_alloc(above_4g_mem_size);
-        cpu_register_physical_memory(0x100000000ULL,
-                                     above_4g_mem_size,
-                                     ram_addr);
+#if TARGET_PHYS_ADDR_BITS > 32
+    cpu_register_physical_memory(0x100000000ULL, above_4g_mem_size,
+                                 ram_addr + below_4g_mem_size);
 #endif
-    }
-
 
     /* BIOS load */
     if (bios_name == NULL)




reply via email to

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