From mboxrd@z Thu Jan 1 00:00:00 1970 From: Anthony Liguori Subject: Re: [Qemu-devel] [PATCH 3/10] Add bdrv_flush_all() Date: Wed, 10 Sep 2008 10:19:21 -0500 Message-ID: <48C7E579.5040702@us.ibm.com> References: <1220989802-13706-1-git-send-email-aliguori@us.ibm.com> <1220989802-13706-4-git-send-email-aliguori@us.ibm.com> <48C7CB05.8070107@redhat.com> <5d6222a80809100746kd4bcf21h5c3fd9afbec1067d@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, Chris Wright , Uri Lublin , kvm@vger.kernel.org To: Glauber Costa Return-path: Received: from e35.co.us.ibm.com ([32.97.110.153]:56132 "EHLO e35.co.us.ibm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751847AbYIJPUW (ORCPT ); Wed, 10 Sep 2008 11:20:22 -0400 Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e35.co.us.ibm.com (8.13.8/8.13.8) with ESMTP id m8AFKLZK020162 for ; Wed, 10 Sep 2008 11:20:21 -0400 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id m8AFKB6I196062 for ; Wed, 10 Sep 2008 09:20:12 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m8AFKAvO017858 for ; Wed, 10 Sep 2008 09:20:11 -0600 In-Reply-To: <5d6222a80809100746kd4bcf21h5c3fd9afbec1067d@mail.gmail.com> Sender: kvm-owner@vger.kernel.org List-ID: Glauber Costa wrote: > On Wed, Sep 10, 2008 at 10:26 AM, Chris Lalancette wrote: > >> Anthony Liguori wrote: >> >>> This patch adds a bdrv_flush_all() function. It's necessary to ensure that all >>> IO operations have been flushed to disk before completely a live migration. >>> >>> N.B. we don't actually use this now. We really should flush the block drivers >>> using an live savevm callback to avoid unnecessary guest down time. >>> >> Simple enough, and follows the pattern in the KVM migration. >> >> Chris Lalancette >> >> > sounds ok. > I'm actually liking bdrv_flush_all() less and less. If there are any outstanding IO requests, it will increase the down time associated with live migration. I think we definitely need to add a live save handler that waits until there are no outstanding IO requests to converge. I'm concerned though that it's not totally unreasonable to expect a guest to always have an IO request in flight. That leads me to think that maybe we should be cancelling outstanding requests, and somehow saving their state? Regards, Anthony Liguori From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KdRUd-0006Up-GY for qemu-devel@nongnu.org; Wed, 10 Sep 2008 11:20:31 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KdRUc-0006Tw-23 for qemu-devel@nongnu.org; Wed, 10 Sep 2008 11:20:31 -0400 Received: from [199.232.76.173] (port=58316 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KdRUb-0006Tr-N7 for qemu-devel@nongnu.org; Wed, 10 Sep 2008 11:20:29 -0400 Received: from e31.co.us.ibm.com ([32.97.110.149]:40630) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KdRUb-0002m2-7t for qemu-devel@nongnu.org; Wed, 10 Sep 2008 11:20:29 -0400 Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e31.co.us.ibm.com (8.13.8/8.13.8) with ESMTP id m8AFKPPb017888 for ; Wed, 10 Sep 2008 11:20:25 -0400 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id m8AFKBrq083278 for ; Wed, 10 Sep 2008 09:20:11 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.12.11.20060308/8.13.3) with ESMTP id m8AFKAvI017858 for ; Wed, 10 Sep 2008 09:20:11 -0600 Message-ID: <48C7E579.5040702@us.ibm.com> Date: Wed, 10 Sep 2008 10:19:21 -0500 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH 3/10] Add bdrv_flush_all() References: <1220989802-13706-1-git-send-email-aliguori@us.ibm.com> <1220989802-13706-4-git-send-email-aliguori@us.ibm.com> <48C7CB05.8070107@redhat.com> <5d6222a80809100746kd4bcf21h5c3fd9afbec1067d@mail.gmail.com> In-Reply-To: <5d6222a80809100746kd4bcf21h5c3fd9afbec1067d@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Glauber Costa Cc: Chris Wright , Uri Lublin , qemu-devel@nongnu.org, kvm@vger.kernel.org Glauber Costa wrote: > On Wed, Sep 10, 2008 at 10:26 AM, Chris Lalancette wrote: > >> Anthony Liguori wrote: >> >>> This patch adds a bdrv_flush_all() function. It's necessary to ensure that all >>> IO operations have been flushed to disk before completely a live migration. >>> >>> N.B. we don't actually use this now. We really should flush the block drivers >>> using an live savevm callback to avoid unnecessary guest down time. >>> >> Simple enough, and follows the pattern in the KVM migration. >> >> Chris Lalancette >> >> > sounds ok. > I'm actually liking bdrv_flush_all() less and less. If there are any outstanding IO requests, it will increase the down time associated with live migration. I think we definitely need to add a live save handler that waits until there are no outstanding IO requests to converge. I'm concerned though that it's not totally unreasonable to expect a guest to always have an IO request in flight. That leads me to think that maybe we should be cancelling outstanding requests, and somehow saving their state? Regards, Anthony Liguori