From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MGUgf-0005zL-Pz for qemu-devel@nongnu.org; Tue, 16 Jun 2009 05:10:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MGUga-0005qc-6E for qemu-devel@nongnu.org; Tue, 16 Jun 2009 05:10:36 -0400 Received: from [199.232.76.173] (port=55717 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MGUga-0005qJ-0J for qemu-devel@nongnu.org; Tue, 16 Jun 2009 05:10:32 -0400 Received: from mx2.redhat.com ([66.187.237.31]:58377) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MGUgZ-0004i6-G3 for qemu-devel@nongnu.org; Tue, 16 Jun 2009 05:10:31 -0400 Message-ID: <4A37618E.6040606@redhat.com> Date: Tue, 16 Jun 2009 12:10:38 +0300 From: Avi Kivity MIME-Version: 1.0 References: <4A36B025.2080602@us.ibm.com> In-Reply-To: <4A36B025.2080602@us.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: Live migration broken when under heavy IO List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: "qemu-devel@nongnu.org" , kvm-devel On 06/15/2009 11:33 PM, Anthony Liguori wrote: > The basic issue is that: > > migrate_fd_put_ready(): bdrv_flush_all(); > > Does: > > block.c: > > foreach block driver: > drv->flush(bs); > > Which in the case of raw, is just fsync(s->fd). > > Any submitted request is not queued or flushed which will lead to the > request being dropped after the live migration. > > Is anyone working on fixing this? Not to my knowledge > Does anyone have a clever idea how to fix this without just waiting > for all IO requests to complete? What's wrong with waiting for requests to complete? It should take a few tens of milliseconds. We could start throttling requests late in the live stage, but I don't really see the point. Isn't virtio migration currently broken due to the qdev changes? -- error compiling committee.c: too many arguments to function