From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:58938) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WAevJ-0007xs-DD for qemu-devel@nongnu.org; Tue, 04 Feb 2014 07:16:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WAevB-0007sG-Vw for qemu-devel@nongnu.org; Tue, 04 Feb 2014 07:16:17 -0500 Received: from mail-pa0-f42.google.com ([209.85.220.42]:40515) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WAevB-0007sB-PQ for qemu-devel@nongnu.org; Tue, 04 Feb 2014 07:16:09 -0500 Received: by mail-pa0-f42.google.com with SMTP id kl14so8426940pab.29 for ; Tue, 04 Feb 2014 04:16:09 -0800 (PST) Message-ID: <52F0DA04.9040003@ozlabs.ru> Date: Tue, 04 Feb 2014 23:16:04 +1100 From: Alexey Kardashevskiy MIME-Version: 1.0 References: <52F0938F.2040102@ozlabs.ru> <52F0C523.30102@redhat.com> <52F0D611.7070105@ozlabs.ru> <52F0D810.4070806@redhat.com> In-Reply-To: <52F0D810.4070806@redhat.com> Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] migration: broken ram_save_pending List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , "qemu-devel@nongnu.org" Cc: Alex Graf On 02/04/2014 11:07 PM, Paolo Bonzini wrote: > Il 04/02/2014 12:59, Alexey Kardashevskiy ha scritto: >>> > With the default throttling of 32 MiB/s, bandwidth must be something like >>> > 33000 (expressed in bytes/ms) with the default settings, and then >>> max_size >>> > should be 33000*3*10^9 / 10^6 = 6000000. Where is my computation wrong? >> >> migrate_max_downtime() = 30000000 = 3*10^7. > > Oops, that's the mistake. Make a patch? :) >> When the migration is in iterating stage, bandwidth is a speed in last >> 100ms which is usually 5 blocks 250KB each so it is >> 1250000/100=12500bytes/s and max_size=12500*30000000/10^6=375000 which is >> less than the last chunk is. >> >> > > Perhaps our default maximum downtime is too low. 30 ms doesn't seem > achievable in practice with 32 MiB/s bandwidth. Just making it 300 ms or > so should fix your problem. Well, it will fix it in my particular case but in a long run this does not feel like a fix - there should be a way for migration_thread() to know that ram_save_iterate() sent all dirty pages it had to send, no? -- Alexey