On Fri, Jan 31, 2020 at 04:09:12PM +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 using MachineState::ram instead of manually initializing
> RAM memory region.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> CC: slp@redhat.com
> CC: pbonzini@redhat.com
> CC: mst@redhat.com
> CC: rth@twiddle.net
> CC: ehabkost@redhat.com
> ---
> hw/i386/microvm.c | 12 +++++-------
> 1 file changed, 5 insertions(+), 7 deletions(-)
>
> diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
> index d234851..38d8e51 100644
> --- a/hw/i386/microvm.c
> +++ b/hw/i386/microvm.c
> @@ -167,7 +167,7 @@ static void microvm_memory_init(MicrovmMachineState *mms)
> {
> MachineState *machine = MACHINE(mms);
> X86MachineState *x86ms = X86_MACHINE(mms);
> - MemoryRegion *ram, *ram_below_4g, *ram_above_4g;
> + MemoryRegion *ram_below_4g, *ram_above_4g;
> MemoryRegion *system_memory = get_system_memory();
> FWCfgState *fw_cfg;
> ram_addr_t lowmem;
> @@ -214,12 +214,8 @@ static void microvm_memory_init(MicrovmMachineState *mms)
> x86ms->below_4g_mem_size = machine->ram_size;
> }
>
> - ram = g_malloc(sizeof(*ram));
> - memory_region_allocate_system_memory(ram, NULL, "microvm.ram",
> - machine->ram_size);
> -
> ram_below_4g = g_malloc(sizeof(*ram_below_4g));
> - memory_region_init_alias(ram_below_4g, NULL, "ram-below-4g", ram,
> + memory_region_init_alias(ram_below_4g, NULL, "ram-below-4g", machine->ram,
> 0, x86ms->below_4g_mem_size);
> memory_region_add_subregion(system_memory, 0, ram_below_4g);
>
> @@ -227,7 +223,8 @@ static void microvm_memory_init(MicrovmMachineState *mms)
>
> if (x86ms->above_4g_mem_size > 0) {
> ram_above_4g = g_malloc(sizeof(*ram_above_4g));
> - memory_region_init_alias(ram_above_4g, NULL, "ram-above-4g", ram,
> + memory_region_init_alias(ram_above_4g, NULL, "ram-above-4g",
> + machine->ram,
> x86ms->below_4g_mem_size,
> x86ms->above_4g_mem_size);
> memory_region_add_subregion(system_memory, 0x100000000ULL,
> @@ -502,6 +499,7 @@ static void microvm_class_init(ObjectClass *oc, void *data)
> mc->auto_enable_numa_with_memhp = false;
> mc->default_cpu_type = TARGET_DEFAULT_CPU_TYPE;
> mc->nvdimm_supported = false;
> + mc->default_ram_id = "microvm.ram";
>
> /* Avoid relying too much on kernel components */
> mc->default_kernel_irqchip_split = true;
> --
> 2.7.4
>
>