From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: Live migration broken when under heavy IO Date: Tue, 16 Jun 2009 12:13:50 +0300 Message-ID: <4A37624E.4040503@redhat.com> References: <4A36B025.2080602@us.ibm.com> <4A37618E.6040606@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: "qemu-devel@nongnu.org" , kvm-devel To: Anthony Liguori Return-path: Received: from mx2.redhat.com ([66.187.237.31]:54323 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751361AbZFPJNk (ORCPT ); Tue, 16 Jun 2009 05:13:40 -0400 In-Reply-To: <4A37618E.6040606@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 06/16/2009 12:10 PM, Avi Kivity wrote: >> 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. Well, we can introduce a new live stage, where we migrate RAM and complete block requests, but the vm is otherwise stopped. This allows the flush to overlap with sending memory dirtied by the flush, reducing some downtime. Since block requests can dirty large amounts of memory, this may be significant. We can even keep the vcpu alive, only blocking new block requests, but that may cause dirty RAM divergence. -- error compiling committee.c: too many arguments to function