[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 02/16] pc: Allocate all ram in a single qemu_ram_
From: |
Alex Williamson |
Subject: |
[Qemu-devel] [PATCH v2 02/16] pc: Allocate all ram in a single qemu_ram_alloc() |
Date: |
Fri, 25 Jun 2010 11:08:45 -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 1848151..d6f3aa4 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -893,27 +893,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)
- [Qemu-devel] [PATCH v2 15/16] pci: Free the space allocated for the option rom on removal, (continued)
- [Qemu-devel] [PATCH v2 15/16] pci: Free the space allocated for the option rom on removal, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 13/16] savevm: Create a new continue flag to avoid resending block name, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 12/16] savevm: Use RAM blocks for basis of migration, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 10/16] ramblocks: Make use of DeviceState pointer and BusInfo.get_dev_path, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 11/16] savevm: Migrate RAM based on name/offset, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 07/16] eepro100: Add a dev field to eeprom new/free functions, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 08/16] virtio-net: Incorporate a DeviceState pointer and let savevm track instances, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 09/16] qemu_ram_alloc: Add DeviceState and name parameters, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 06/16] savevm: Make use of DeviceState, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 04/16] pci: Implement BusInfo.get_dev_path(), Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 02/16] pc: Allocate all ram in a single qemu_ram_alloc(),
Alex Williamson <=
- [Qemu-devel] [PATCH v2 05/16] savevm: Add DeviceState param, Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 01/16] Remove uses of ram.last_offset (aka last_ram_offset), Alex Williamson, 2010/06/25
- [Qemu-devel] [PATCH v2 03/16] qdev: Add a get_dev_path() function to BusInfo, Alex Williamson, 2010/06/25