It makes sure that all hotplugged memory will be put in continuos HVA range allowing to use 1:1 GVA<->HVA mapping.
1:1 mapping will be used by vhost to reduce number of memory ranges for hotplugged memory to a single range that covers all hotpluggable memory address space. Signed-off-by: Igor Mammedov <imamm...@redhat.com> --- hw/i386/pc.c | 4 ++-- hw/mem/pc-dimm.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index 7661ea9..75f73ec 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1373,8 +1373,8 @@ FWCfgState *pc_memory_init(MachineState *machine, exit(EXIT_FAILURE); } - memory_region_init(&pcms->hotplug_memory.mr, OBJECT(pcms), - "hotplug-memory", hotplug_mem_size); + memory_region_init_hva_range(&pcms->hotplug_memory.mr, OBJECT(pcms), + "hotplug-memory", hotplug_mem_size); memory_region_add_subregion(system_memory, pcms->hotplug_memory.base, &pcms->hotplug_memory.mr); } diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c index bb04862..cb98926 100644 --- a/hw/mem/pc-dimm.c +++ b/hw/mem/pc-dimm.c @@ -95,7 +95,7 @@ void pc_dimm_memory_plug(DeviceState *dev, MemoryHotplugState *hpms, goto out; } - memory_region_add_subregion(&hpms->mr, addr - hpms->base, mr); + memory_region_add_subregion_to_hva(&hpms->mr, addr - hpms->base, mr); vmstate_register_ram(mr, dev); numa_set_mem_node_id(addr, memory_region_size(mr), dimm->node); -- 1.8.3.1