[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 5/8] migration: add draft of new transport
From: |
Denis V. Lunev |
Subject: |
[Qemu-devel] [PATCH 5/8] migration: add draft of new transport |
Date: |
Wed, 7 Oct 2015 09:20:43 +0300 |
From: Igor Redko <address@hidden>
In this patch transport test is added. It can be used to estimate
the possibility of live migration given downtime and bandwidth.
In this patch basic functionality is implemented to meet the
QEMUFile interface requirements.
This transport is write-only. Moreover, it saves only the size of
the transferred data and drops the data itself.
Also, the Makefile modification to link this file included.
Signed-off-by: Igor Redko <address@hidden>
Reviewed-by: Anna Melekhova <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
---
include/migration/migration.h | 2 ++
migration/Makefile.objs | 2 +-
migration/test.c | 66 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 69 insertions(+), 1 deletion(-)
create mode 100644 migration/test.c
diff --git a/include/migration/migration.h b/include/migration/migration.h
index 8611750..555267b 100644
--- a/include/migration/migration.h
+++ b/include/migration/migration.h
@@ -108,6 +108,8 @@ void rdma_start_outgoing_migration(void *opaque, const char
*host_port, Error **
void rdma_start_incoming_migration(const char *host_port, Error **errp);
+void test_start_migration(void *opaque, const char *host_port, Error **errp);
+
void migrate_fd_error(MigrationState *s);
void migrate_fd_connect(MigrationState *s);
diff --git a/migration/Makefile.objs b/migration/Makefile.objs
index d929e96..2da590b 100644
--- a/migration/Makefile.objs
+++ b/migration/Makefile.objs
@@ -1,4 +1,4 @@
-common-obj-y += migration.o tcp.o
+common-obj-y += migration.o tcp.o test.o
common-obj-y += vmstate.o
common-obj-y += qemu-file.o qemu-file-buf.o qemu-file-unix.o qemu-file-stdio.o
common-obj-y += xbzrle.o
diff --git a/migration/test.c b/migration/test.c
new file mode 100644
index 0000000..8d06988
--- /dev/null
+++ b/migration/test.c
@@ -0,0 +1,66 @@
+#include "qemu-common.h"
+#include "migration/migration.h"
+#include "migration/qemu-file.h"
+#include "exec/cpu-common.h"
+#include "qemu/error-report.h"
+#include "qemu/main-loop.h"
+#include "qemu/sockets.h"
+#include "qemu/bitmap.h"
+#include <stdio.h>
+#include <string.h>
+#include "qmp-commands.h"
+
+typedef struct QEMUFileTest {
+ MigrationState *s;
+ size_t len;
+ QEMUFile *file;
+} QEMUFileTest;
+
+static uint64_t transfered_bytes;
+static uint64_t initial_bytes;
+
+static ssize_t qemu_test_put_buffer(void *opaque, const uint8_t *buf,
+ int64_t pos, size_t size)
+{
+ transfered_bytes += size;
+ return size;
+}
+
+static int qemu_test_close(void *opaque)
+{
+ return 0;
+}
+
+static const QEMUFileOps test_write_ops = {
+ .put_buffer = qemu_test_put_buffer,
+ .close = qemu_test_close,
+};
+
+static void *qemu_fopen_test(MigrationState *s, const char *mode)
+{
+ QEMUFileTest *t;
+ transfered_bytes = 0;
+ initial_bytes = 0;
+ if (qemu_file_mode_is_not_valid(mode)) {
+ return NULL;
+ }
+
+ t = g_malloc0(sizeof(QEMUFileTest));
+ t->s = s;
+
+ if (mode[0] == 'w') {
+ t->file = qemu_fopen_ops(s, &test_write_ops);
+ } else {
+ return NULL;
+ }
+ qemu_file_set_rate_limit(t->file, -1);
+ return t->file;
+}
+
+void test_start_migration(void *opaque, const char *host_port, Error **errp)
+{
+ MigrationState *s = opaque;
+ s->file = qemu_fopen_test(s, "wb");
+ migrate_fd_connect(s);
+ return;
+}
--
2.1.4
- Re: [Qemu-devel] [PATCH 3/8] migration: add new capability test-only, (continued)
- [Qemu-devel] [PATCH 7/8] migration: new migration test mode, Denis V. Lunev, 2015/10/08
- Re: [Qemu-devel] [PATCH 7/8] migration: new migration test mode, Dr. David Alan Gilbert, 2015/10/08
- Re: [Qemu-devel] [PATCH 7/8] migration: new migration test mode, Eric Blake, 2015/10/08
- Re: [Qemu-devel] [PATCH 7/8] migration: new migration test mode, Denis V. Lunev, 2015/10/09
- Re: [Qemu-devel] [PATCH 7/8] migration: new migration test mode, Dr. David Alan Gilbert, 2015/10/08
- Re: [Qemu-devel] [PATCH 7/8] migration: new migration test mode, Denis V. Lunev, 2015/10/09
- Re: [Qemu-devel] [PATCH 7/8] migration: new migration test mode, Dr. David Alan Gilbert, 2015/10/08
- [Qemu-devel] [PATCH 4/8] migration: add function for reseting migration bitmap, Denis V. Lunev, 2015/10/08
- [Qemu-devel] [PATCH 5/8] migration: add draft of new transport,
Denis V. Lunev <=
- [Qemu-devel] [PATCH 2/8] qemu-file: new hook in qemu-file, Denis V. Lunev, 2015/10/08
- [Qemu-devel] [PATCH 6/8] migration: implementation of hook_ram_sync, Denis V. Lunev, 2015/10/08
- Re: [Qemu-devel] [PATCH 6/8] migration: implementation of hook_ram_sync, Paolo Bonzini, 2015/10/08
- Re: [Qemu-devel] [PATCH 6/8] migration: implementation of hook_ram_sync, Denis V. Lunev, 2015/10/09
- Re: [Qemu-devel] [PATCH 6/8] migration: implementation of hook_ram_sync, Paolo Bonzini, 2015/10/08
- Re: [Qemu-devel] [PATCH 6/8] migration: implementation of hook_ram_sync, Denis V. Lunev, 2015/10/09
- Re: [Qemu-devel] [PATCH 6/8] migration: implementation of hook_ram_sync, Dr. David Alan Gilbert, 2015/10/08
- [Qemu-devel] [PATCH 1/8] migration: fix expected_downtime, Denis V. Lunev, 2015/10/08
- [Qemu-devel] [PATCH 8/8] migration: add output of gathered statistics, Denis V. Lunev, 2015/10/08
- Re: [Qemu-devel] [RFC 0/8] QEMUFile-way to gather VM's memory statistics, Dr. David Alan Gilbert, 2015/10/08