[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 21/23] block migration: Report progress also via inf
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH 21/23] block migration: Report progress also via info migration |
Date: |
Mon, 30 Nov 2009 18:21:21 +0100 |
User-agent: |
StGIT/0.14.3 |
Signed-off-by: Jan Kiszka <address@hidden>
---
block-migration.c | 32 ++++++++++++++++++++++++++++++++
block-migration.h | 4 ++++
migration.c | 9 +++++++++
3 files changed, 45 insertions(+), 0 deletions(-)
diff --git a/block-migration.c b/block-migration.c
index 22d10f0..7510923 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;
diff --git a/block-migration.h b/block-migration.h
index a274d2d..ffa8ac0 100644
--- a/block-migration.h
+++ b/block-migration.h
@@ -15,5 +15,9 @@
#define BLOCK_MIGRATION_H
void blk_mig_init(void);
+int blk_mig_active(void);
+uint64_t blk_mig_bytes_transferred(void);
+uint64_t blk_mig_bytes_remaining(void);
+uint64_t blk_mig_bytes_total(void);
#endif /* BLOCK_MIGRATION_H */
diff --git a/migration.c b/migration.c
index f4d3022..d6a3e26 100644
--- a/migration.c
+++ b/migration.c
@@ -18,6 +18,7 @@
#include "sysemu.h"
#include "block.h"
#include "qemu_socket.h"
+#include "block-migration.h"
//#define DEBUG_MIGRATION
@@ -174,6 +175,14 @@ void do_info_migrate(Monitor *mon)
monitor_printf(mon, "transferred ram: %" PRIu64 " kbytes\n",
ram_bytes_transferred() >> 10);
monitor_printf(mon, "remaining ram: %" PRIu64 " kbytes\n",
ram_bytes_remaining() >> 10);
monitor_printf(mon, "total ram: %" PRIu64 " kbytes\n",
ram_bytes_total() >> 10);
+ if (blk_mig_active()) {
+ monitor_printf(mon, "transferred disk: %" PRIu64 " kbytes\n",
+ blk_mig_bytes_transferred() >> 10);
+ monitor_printf(mon, "remaining disk: %" PRIu64 " kbytes\n",
+ blk_mig_bytes_remaining() >> 10);
+ monitor_printf(mon, "total disk: %" PRIu64 " kbytes\n",
+ blk_mig_bytes_total() >> 10);
+ }
break;
case MIG_STATE_COMPLETED:
monitor_printf(mon, "completed\n");
- [Qemu-devel] [PATCH 00/23] block migration: Fixes, cleanups and speedups, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 13/23] block migration: Consolidate mig_read_device_bulk into mig_save_device_bulk, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 02/23] migration: Catch multiple start commands, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 23/23] block migration: Increase dirty chunk size to 1M, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 16/23] ram migration: Stop loading on error, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 05/23] block migration: Cleanup dirty tracking code, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 06/23] block migration: Avoid large stack buffer, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 19/23] live migration: Propagate output monitor to callback handler, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 21/23] block migration: Report progress also via info migration,
Jan Kiszka <=
- [Qemu-devel] [PATCH 01/23] migration: Fix use of file after release, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 08/23] block migration: Drop dead code, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 17/23] live migration: Allow cleanup after cancellation or error, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 03/23] block migration: Fix coding style and whitespaces, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 15/23] block migration: Add error handling/propagation, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 12/23] block migration: Clean up use of total_sectors, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 14/23] block migration: Consolidate block transmission, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 09/23] Import a simple queue implementation from NetBSD, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 18/23] block migration: Report overall migration progress, Jan Kiszka, 2009/11/30
- [Qemu-devel] [PATCH 22/23] block migration: Add support for restore progress reporting, Jan Kiszka, 2009/11/30