On Sun, Apr 01, 2018 at 12:25:36AM +0530, Balamuruhan S wrote:
expected_downtime value is not accurate with dirty_pages_rate *
page_size,
using ram_bytes_remaining would yeild it correct.
Signed-off-by: Balamuruhan S <address@hidden>
---
migration/migration.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/migration/migration.c b/migration/migration.c
index 58bd382730..4e43dc4f92 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -2245,8 +2245,7 @@ static void
migration_update_counters(MigrationState *s,
* recalculate. 10000 is a small enough number for our purposes
*/
if (ram_counters.dirty_pages_rate && transferred > 10000) {
- s->expected_downtime = ram_counters.dirty_pages_rate *
- qemu_target_page_size() / bandwidth;
+ s->expected_downtime = ram_bytes_remaining() / bandwidth;
This field was removed in e4ed1541ac ("savevm: New save live migration
method: pending", 2012-12-20), in which remaing RAM was used.
And it was added back in 90f8ae724a ("migration: calculate
expected_downtime", 2013-02-22), in which dirty rate was used.
However I didn't find a clue on why we changed from using remaining
RAM to using dirty rate... So I'll leave this question to Juan.
Besides, I'm a bit confused on when we'll want such a value. AFAIU
precopy is mostly used by setting up the target downtime before hand,
so we should already know the downtime before hand. Then why we want
to observe such a thing?