[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 19/32] dimm: keep the state of the whole backend
From: |
Xiao Guangrong |
Subject: |
[Qemu-devel] [PATCH v3 19/32] dimm: keep the state of the whole backend memory |
Date: |
Sun, 11 Oct 2015 11:52:51 +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 b307511..efe964a 100644
--- a/hw/mem/dimm.c
+++ b/hw/mem/dimm.c
@@ -128,9 +128,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);
}
@@ -139,10 +146,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 v3 26/32] nvdimm: save arg3 for NVDIMM device _DSM method, (continued)
[Qemu-devel] [PATCH v3 20/32] dimm: introduce realize callback, Xiao Guangrong, 2015/10/10
[Qemu-devel] [PATCH v3 28/32] nvdimm: support DSM_CMD_NAMESPACE_LABEL_SIZE function, Xiao Guangrong, 2015/10/10
[Qemu-devel] [PATCH v3 05/32] acpi: add aml_concatenate, Xiao Guangrong, 2015/10/10
[Qemu-devel] [PATCH v3 06/32] acpi: add aml_object_type, Xiao Guangrong, 2015/10/10
[Qemu-devel] [PATCH v3 09/32] exec: allow file_ram_alloc to work on file, Xiao Guangrong, 2015/10/10
[Qemu-devel] [PATCH v3 19/32] dimm: keep the state of the whole backend memory,
Xiao Guangrong <=
[Qemu-devel] [PATCH v3 27/32] nvdimm: support DSM_CMD_IMPLEMENTED function, Xiao Guangrong, 2015/10/10
Re: [Qemu-devel] [PATCH v3 27/32] nvdimm: support DSM_CMD_IMPLEMENTED function, Stefan Hajnoczi, 2015/10/14
Re: [Qemu-devel] [PATCH v3 27/32] nvdimm: support DSM_CMD_IMPLEMENTED function, Stefan Hajnoczi, 2015/10/15