From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48886) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zji5v-0002W9-7t for qemu-devel@nongnu.org; Wed, 07 Oct 2015 02:20:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zji5r-0000NE-CD for qemu-devel@nongnu.org; Wed, 07 Oct 2015 02:20:55 -0400 Received: from mailhub.sw.ru ([195.214.232.25]:48186 helo=relay.sw.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zji5r-0000Mw-1V for qemu-devel@nongnu.org; Wed, 07 Oct 2015 02:20:51 -0400 From: "Denis V. Lunev" Date: Wed, 7 Oct 2015 09:20:39 +0300 Message-Id: <1444198846-5383-2-git-send-email-den@openvz.org> In-Reply-To: <1444198846-5383-1-git-send-email-den@openvz.org> References: <5614531B.5080107@redhat.com> <1444198846-5383-1-git-send-email-den@openvz.org> Subject: [Qemu-devel] [PATCH 1/8] migration: fix expected_downtime List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Denis V. Lunev" , Igor Redko , jsnow@redhat.com, qemu-devel@nongnu.org, annam@virtuozzo.com From: Igor Redko To get this estimation we must divide pending_size by bandwidth according to description of expected-downtime ("qmp-commands.hx:3246"): "expected-downtime": only present while migration is active total amount in ms for downtime that was calculated on the last bitmap round (json-int) Previous version was just wrong because dirty_bytes_rate and bandwidth are measured in Bytes/ms, so dividing first by second we get some dimensionless quantity. As it said in description above this value is showed during active migration phase and recalculated only after transferring all memory and if this process took more than 1 sec. So maybe just nobody noticed that bug. Signed-off-by: Igor Redko Reviewed-by: Anna Melekhova Signed-off-by: Denis V. Lunev --- migration/migration.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/migration.c b/migration/migration.c index b7de9b7..b710a2d 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -1063,7 +1063,7 @@ static void *migration_thread(void *opaque) /* if we haven't sent anything, we don't want to recalculate 10000 is a small enough number for our purposes */ if (s->dirty_bytes_rate && transferred_bytes > 10000) { - s->expected_downtime = s->dirty_bytes_rate / bandwidth; + s->expected_downtime = pending_size / bandwidth; } qemu_file_reset_rate_limit(s->file); -- 2.1.4