[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v7 21/35] dimm: keep the state of the whole backend
From: |
Xiao Guangrong |
Subject: |
[Qemu-devel] [PATCH v7 21/35] dimm: keep the state of the whole backend memory |
Date: |
Mon, 2 Nov 2015 17:13:23 +0800 |
QEMU keeps the state of memory of dimm device during live migration,
however, it is not enough for nvdimm device as its memory does not
contain its label data, so that we should protect the whole backend
memory instead
Signed-off-by: Xiao Guangrong <address@hidden>
---
hw/mem/dimm.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/hw/mem/dimm.c b/hw/mem/dimm.c
index 498d380..44447d1 100644
--- a/hw/mem/dimm.c
+++ b/hw/mem/dimm.c
@@ -134,9 +134,16 @@ void dimm_memory_plug(DeviceState *dev, MemoryHotplugState
*hpms,
}
memory_region_add_subregion(&hpms->mr, addr - hpms->base, mr);
- vmstate_register_ram(mr, dev);
numa_set_mem_node_id(addr, memory_region_size(mr), dimm->node);
+ /*
+ * save the state only for @mr is not enough as it does not contain
+ * the label data of NVDIMM device, so that we keep the state of
+ * whole hostmem instead.
+ */
+ vmstate_register_ram(host_memory_backend_get_memory(dimm->hostmem, errp),
+ dev);
+
out:
error_propagate(errp, local_err);
}
@@ -145,10 +152,13 @@ void dimm_memory_unplug(DeviceState *dev,
MemoryHotplugState *hpms,
MemoryRegion *mr)
{
DIMMDevice *dimm = DIMM(dev);
+ MemoryRegion *backend_mr;
+
+ backend_mr = host_memory_backend_get_memory(dimm->hostmem, &error_abort);
numa_unset_mem_node_id(dimm->addr, memory_region_size(mr), dimm->node);
memory_region_del_subregion(&hpms->mr, mr);
- vmstate_unregister_ram(mr, dev);
+ vmstate_unregister_ram(backend_mr, dev);
}
int qmp_dimm_device_list(Object *obj, void *opaque)
--
1.8.3.1
- [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, (continued)
- [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Xiao Guangrong, 2015/11/02
- Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Vladimir Sementsov-Ogievskiy, 2015/11/02
- Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Xiao Guangrong, 2015/11/02
- Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Vladimir Sementsov-Ogievskiy, 2015/11/02
- Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Xiao Guangrong, 2015/11/02
- Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Vladimir Sementsov-Ogievskiy, 2015/11/02
- Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Xiao Guangrong, 2015/11/03
- Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Vladimir Sementsov-Ogievskiy, 2015/11/05
Re: [Qemu-devel] [PATCH v7 20/35] dimm: get mapped memory region from DIMMDeviceClass->get_memory_region, Eduardo Habkost, 2015/11/05
[Qemu-devel] [PATCH v7 21/35] dimm: keep the state of the whole backend memory,
Xiao Guangrong <=
[Qemu-devel] [PATCH v7 22/35] dimm: introduce realize callback, Xiao Guangrong, 2015/11/02
[Qemu-devel] [PATCH v7 19/35] dimm: abstract dimm device from pc-dimm, Xiao Guangrong, 2015/11/02
[Qemu-devel] [PATCH v7 28/35] nvdimm acpi: save arg3 for NVDIMM device _DSM method, Xiao Guangrong, 2015/11/02
[Qemu-devel] [PATCH v7 32/35] nvdimm acpi: support Set Namespace Label Data function, Xiao Guangrong, 2015/11/02
[Qemu-devel] [PATCH v7 24/35] docs: add NVDIMM ACPI documentation, Xiao Guangrong, 2015/11/02
[Qemu-devel] [PATCH v7 27/35] nvdimm acpi: build ACPI nvdimm devices, Xiao Guangrong, 2015/11/02