From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41555) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqLbk-0000FE-VI for qemu-devel@nongnu.org; Mon, 17 Nov 2014 07:40:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XqLbe-000470-Np for qemu-devel@nongnu.org; Mon, 17 Nov 2014 07:40:40 -0500 Received: from mx1.redhat.com ([209.132.183.28]:46558) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqLbe-00046u-Fz for qemu-devel@nongnu.org; Mon, 17 Nov 2014 07:40:34 -0500 Date: Mon, 17 Nov 2014 14:40:22 +0200 From: "Michael S. Tsirkin" Message-ID: <20141117124022.GB10868@redhat.com> References: <1416201070-11448-1-git-send-email-zhang.zhanghailiang@huawei.com> <20141117103957.GB20638@redhat.com> <5469D3A4.1010901@huawei.com> <5469E92A.7000405@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5469E92A.7000405@huawei.com> Subject: Re: [Qemu-devel] [PATCH v2 0/3] fix bug about balloon working incorrectly when hotplug memeory List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: zhanghailiang Cc: imammedo@redhat.com, qemu-devel@nongnu.org, peter.huangpeng@huawei.com On Mon, Nov 17, 2014 at 08:25:14PM +0800, zhanghailiang wrote: > On 2014/11/17 18:53, zhanghailiang wrote: > >On 2014/11/17 18:39, Michael S. Tsirkin wrote: > >>On Mon, Nov 17, 2014 at 01:11:07PM +0800, zhanghailiang wrote: > >>>Hi, > >>> > >>>Patch 1 and 2 mainly fix bug about balloon not working correctly when we do > >>>hotplug memory. It takes 'ram_size' as VM's real RAM size which is wrong > >>>after we hotplug memory. > >>> > >>>This bug exists since we begin to support hotplug memory, and it is better > >>>to fix it. > >>> > >>>Patch 3 add some trace events, it helps debugging balloon. If it is unnecessary, > >>>pls feel free to remove it. > >>> > >>>Thanks, > >>>zhanghailiang > >> > >>What about other users of ram_size? > >>Are they all incorrect? > >> > > > >pc-dimm is only supported in x86 target now, and i am not quite sure if hotplug > >memory will break migration. I'll look into it. Thanks. > > > > Hi Michael, > > I have made a global search in qemu code, ram_size is used mostly for VM's > startup initialization, I think it's all OK except virtio-balloon and > function vmport_cmd_ram_size (I'm not sure about this place :( ). Comment out ram_size in header, and see what breaks. > But, Unfortunately, hotplug memory action breaks migration. :( > I have made a simple test about this: > > Source: > # start VM > # hotplug memory: > object_add memory-backend-ram,id=ram1,size=1024M,host-nodes=0,policy=bind > device_add pc-dimm,id=dimm1,memdev=ram1 > # migrate VM to Destination > > Destination: > # qemu-system-x86_64: Unknown ramblock "ram1", cannot accept migration > qemu: warning: error while loading state for instance 0x0 of device 'ram' > qemu-system-x86_64: load of migration failed: Invalid argument > > *further test*: > hot-add CPU also break migration and reports error in destination: > 'Unknown savevm section or instance 'cpu_common' 4 > qemu-system-x86_64: load of migration failed: Invalid argument' > > I think we should support migration after hotplug memory/CPU action, > what's your opinion? ;) You must configure identical hardware on source and destination. This means that after adding memory on source, you must specify it (on command line) for destination. > I will try to fix these two problems. > > Thanks, > zhanghailiang > >>>v2: > >>>- fix compiling break for other targets that don't support pc-dimm > >>> > >>>zhanghailiang (3): > >>> pc-dimm: add a function to calculate VM's current RAM size > >>> virtio-balloon: Fix balloon not working correctly when hotplug memory > >>> virtio-balloon: Add some trace events > >>> > >>> hw/mem/pc-dimm.c | 26 ++++++++++++++++++++++++++ > >>> hw/virtio/virtio-balloon.c | 21 +++++++++++++++------ > >>> include/exec/cpu-common.h | 1 + > >>> stubs/qmp_pc_dimm_device_list.c | 5 +++++ > >>> trace-events | 4 ++++ > >>> 5 files changed, 51 insertions(+), 6 deletions(-) > >>> > >>>-- > >>>1.7.12.4 > >>> > >> > >>. > >> > > > > > > > > > > >