From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: Re: [PATCH v2 03/15] pc-dimm: keep the state of the whole backend memory Date: Tue, 31 May 2016 10:04:30 +0800 Message-ID: <574CF12E.40808@linux.intel.com> References: <1463732412-99212-1-git-send-email-guangrong.xiao@linux.intel.com> <1463732412-99212-4-git-send-email-guangrong.xiao@linux.intel.com> <20160530184245.GG1366@stefanha-x1.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Cc: pbonzini@redhat.com, imammedo@redhat.com, gleb@kernel.org, mtosatti@redhat.com, mst@redhat.com, rth@twiddle.net, ehabkost@redhat.com, dan.j.williams@intel.com, kvm@vger.kernel.org, qemu-devel@nongnu.org To: Stefan Hajnoczi Return-path: Received: from mga04.intel.com ([192.55.52.120]:14400 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161746AbcEaCHP (ORCPT ); Mon, 30 May 2016 22:07:15 -0400 In-Reply-To: <20160530184245.GG1366@stefanha-x1.localdomain> Sender: kvm-owner@vger.kernel.org List-ID: On 05/31/2016 02:42 AM, Stefan Hajnoczi wrote: > On Fri, May 20, 2016 at 04:20:00PM +0800, Xiao Guangrong wrote: >> 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 >> --- >> hw/mem/pc-dimm.c | 13 +++++++++++-- >> 1 file changed, 11 insertions(+), 2 deletions(-) >> >> diff --git a/hw/mem/pc-dimm.c b/hw/mem/pc-dimm.c >> index 6de2275..72b33ba 100644 >> --- a/hw/mem/pc-dimm.c >> +++ b/hw/mem/pc-dimm.c >> @@ -105,9 +105,16 @@ void pc_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); >> } > > In Patch 1 you introduced a callback to get the guest-visible memory > region. Instead of mentioning NVDIMM in generic pc-dimm.c code, it > would be cleaner to add another callback to get the vmstate memory > region: > > .get_guest_memory_region() - Patch 1 > .get_vmstate_memory_region() - a new patch in this series > It is good to me, will do it. Thanks!