Message ID | 1579779525-20065-32-git-send-email-imammedo@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | refactor main RAM allocation to use hostmem backend | expand |
On Thu, Jan 23, 2020 at 12:37:56PM +0100, Igor Mammedov wrote: > memory_region_allocate_system_memory() API is going away, > so replace it with memdev allocated MemoryRegion. > The later is initialized by generic code, so board only > needs to opt in to memdev scheme by providing > MachineClass::default_ram_id > and then map memory region provided by > MachineState::ram_memdev > > Signed-off-by: Igor Mammedov <imammedo@redhat.com> > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > CC: peter.maydell@linaro.org > CC: qemu-arm@nongnu.org > CC: drjones@redhat.com > --- > hw/arm/virt.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index 39ab5f4..e2fbca3 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -1512,7 +1512,6 @@ static void machvirt_init(MachineState *machine) > MemoryRegion *sysmem = get_system_memory(); > MemoryRegion *secure_sysmem = NULL; > int n, virt_max_cpus; > - MemoryRegion *ram = g_new(MemoryRegion, 1); > bool firmware_loaded; > bool aarch64 = true; > bool has_ged = !vmc->no_ged; > @@ -1701,9 +1700,8 @@ static void machvirt_init(MachineState *machine) > } > } > > - memory_region_allocate_system_memory(ram, NULL, "mach-virt.ram", > - machine->ram_size); > - memory_region_add_subregion(sysmem, vms->memmap[VIRT_MEM].base, ram); > + memory_region_add_subregion(sysmem, vms->memmap[VIRT_MEM].base, > + machine->ram); > if (machine->device_memory) { > memory_region_add_subregion(sysmem, machine->device_memory->base, > &machine->device_memory->mr); > @@ -2053,6 +2051,7 @@ static void virt_machine_class_init(ObjectClass *oc, void *data) > hc->unplug_request = virt_machine_device_unplug_request_cb; > mc->numa_mem_supported = true; > mc->auto_enable_numa_with_memhp = true; > + mc->default_ram_id = "mach-virt.ram"; > } > > static void virt_instance_init(Object *obj) > -- > 2.7.4 > Reviewed-by: Andrew Jones <drjones@redhat.com>
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 39ab5f4..e2fbca3 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1512,7 +1512,6 @@ static void machvirt_init(MachineState *machine) MemoryRegion *sysmem = get_system_memory(); MemoryRegion *secure_sysmem = NULL; int n, virt_max_cpus; - MemoryRegion *ram = g_new(MemoryRegion, 1); bool firmware_loaded; bool aarch64 = true; bool has_ged = !vmc->no_ged; @@ -1701,9 +1700,8 @@ static void machvirt_init(MachineState *machine) } } - memory_region_allocate_system_memory(ram, NULL, "mach-virt.ram", - machine->ram_size); - memory_region_add_subregion(sysmem, vms->memmap[VIRT_MEM].base, ram); + memory_region_add_subregion(sysmem, vms->memmap[VIRT_MEM].base, + machine->ram); if (machine->device_memory) { memory_region_add_subregion(sysmem, machine->device_memory->base, &machine->device_memory->mr); @@ -2053,6 +2051,7 @@ static void virt_machine_class_init(ObjectClass *oc, void *data) hc->unplug_request = virt_machine_device_unplug_request_cb; mc->numa_mem_supported = true; mc->auto_enable_numa_with_memhp = true; + mc->default_ram_id = "mach-virt.ram"; } static void virt_instance_init(Object *obj)