From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40261) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b7Z5X-0001kg-5V for qemu-devel@nongnu.org; Mon, 30 May 2016 22:07:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b7Z5S-0002IJ-EN for qemu-devel@nongnu.org; Mon, 30 May 2016 22:07:21 -0400 Received: from mga03.intel.com ([134.134.136.65]:52218) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b7Z5S-0002I3-8M for qemu-devel@nongnu.org; Mon, 30 May 2016 22:07:18 -0400 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> From: Xiao Guangrong Message-ID: <574CF12E.40808@linux.intel.com> Date: Tue, 31 May 2016 10:04:30 +0800 MIME-Version: 1.0 In-Reply-To: <20160530184245.GG1366@stefanha-x1.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 03/15] pc-dimm: keep the state of the whole backend memory List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi 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 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!