From 25f236433f5c791edce74228201254a1cc84f9a3 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Mon, 30 Nov 2009 18:21:21 +0100 Subject: block migration: Report progress also via info migration Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori --- block-migration.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'block-migration.c') diff --git a/block-migration.c b/block-migration.c index 22d10f03c6..7510923a82 100644 --- a/block-migration.c +++ b/block-migration.c @@ -91,6 +91,38 @@ static void blk_send(QEMUFile *f, BlkMigBlock * blk) qemu_put_buffer(f, blk->buf, BLOCK_SIZE); } +int blk_mig_active(void) +{ + return !QSIMPLEQ_EMPTY(&block_mig_state.bmds_list); +} + +uint64_t blk_mig_bytes_transferred(void) +{ + BlkMigDevState *bmds; + uint64_t sum = 0; + + QSIMPLEQ_FOREACH(bmds, &block_mig_state.bmds_list, entry) { + sum += bmds->completed_sectors; + } + return sum << BDRV_SECTOR_BITS; +} + +uint64_t blk_mig_bytes_remaining(void) +{ + return blk_mig_bytes_total() - blk_mig_bytes_transferred(); +} + +uint64_t blk_mig_bytes_total(void) +{ + BlkMigDevState *bmds; + uint64_t sum = 0; + + QSIMPLEQ_FOREACH(bmds, &block_mig_state.bmds_list, entry) { + sum += bmds->total_sectors; + } + return sum << BDRV_SECTOR_BITS; +} + static void blk_mig_read_cb(void *opaque, int ret) { BlkMigBlock *blk = opaque; -- cgit v1.2.1