qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Stalls on Live Migration of VMs with a lot of memory


From: Peter Lieven
Subject: Re: [Qemu-devel] Stalls on Live Migration of VMs with a lot of memory
Date: Wed, 04 Jan 2012 15:21:56 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110921 Thunderbird/3.1.15

On 04.01.2012 15:14, Paolo Bonzini wrote:
On 01/04/2012 02:08 PM, Peter Lieven wrote:

thus my only option at the moment is to limit the runtime of the while
loop in stage 2 or
are there any post 1.0 patches in git that might already help?

No; even though (as I said) people are aware of the problems and do plan to fix them, don't hold your breath. :(
ok, just for the record. if someone wants the time limit patch for the while loop in stage 2 (which solves the problem for me) and after some tweaking is able to provide a throughput of approx. 450MB/s in my case, i attached it. it also solves the case that due to a lot of dups the rate_limit does not kick in and end the while loop.

--- qemu-kvm-1.0/arch_init.c.orig    2012-01-04 14:21:02.000000000 +0100
+++ qemu-kvm-1.0/arch_init.c    2012-01-04 14:27:34.000000000 +0100
@@ -301,6 +301,8 @@
     bytes_transferred_last = bytes_transferred;
     bwidth = qemu_get_clock_ns(rt_clock);

+    int pages_read = 0;
+
     while ((ret = qemu_file_rate_limit(f)) == 0) {
         int bytes_sent;

@@ -309,6 +311,11 @@
         if (bytes_sent == 0) { /* no more blocks */
             break;
         }
+        if (!(++pages_read & 0xff)) {
+ if ((qemu_get_clock_ns(rt_clock) - bwidth) > migrate_max_downtime()) + break; /* we have spent more than allowed downtime in this iteration */
+        }
     }

     if (ret < 0) {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]