From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Live migration broken when under heavy IO Date: Mon, 15 Jun 2009 15:33:41 -0500 Message-ID: <4A36B025.2080602@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit To: "qemu-devel@nongnu.org" , kvm-devel Return-path: Received: from e5.ny.us.ibm.com ([32.97.182.145]:39249 "EHLO e5.ny.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757468AbZFOUdk (ORCPT ); Mon, 15 Jun 2009 16:33:40 -0400 Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e5.ny.us.ibm.com (8.13.1/8.13.1) with ESMTP id n5FKRaxB003611 for ; Mon, 15 Jun 2009 16:27:36 -0400 Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v9.2) with ESMTP id n5FKXhSZ234046 for ; Mon, 15 Jun 2009 16:33:43 -0400 Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id n5FKXgKv020863 for ; Mon, 15 Jun 2009 16:33:42 -0400 Sender: kvm-owner@vger.kernel.org List-ID: 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? Does anyone have a clever idea how to fix this without just waiting for all IO requests to complete? --- Regards, Anthony Liguori