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