From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38408) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqLNE-0003T1-Sq for qemu-devel@nongnu.org; Mon, 17 Nov 2014 07:25:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XqLN6-0006wr-R7 for qemu-devel@nongnu.org; Mon, 17 Nov 2014 07:25:40 -0500 Received: from szxga01-in.huawei.com ([119.145.14.64]:62642) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XqLN5-0006wP-W7 for qemu-devel@nongnu.org; Mon, 17 Nov 2014 07:25:32 -0500 Message-ID: <5469E92A.7000405@huawei.com> Date: Mon, 17 Nov 2014 20:25:14 +0800 From: zhanghailiang MIME-Version: 1.0 References: <1416201070-11448-1-git-send-email-zhang.zhanghailiang@huawei.com> <20141117103957.GB20638@redhat.com> <5469D3A4.1010901@huawei.com> In-Reply-To: <5469D3A4.1010901@huawei.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit 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: "Michael S. Tsirkin" Cc: imammedo@redhat.com, qemu-devel@nongnu.org, peter.huangpeng@huawei.com 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 :( ). 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? ;) 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 >>> >> >> . >> > > > > >