[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 16/18] migration/rdma: add rdma_channel into Migrationstate fi
From: |
Chuan Zheng |
Subject: |
[PATCH v3 16/18] migration/rdma: add rdma_channel into Migrationstate field |
Date: |
Sat, 17 Oct 2020 12:25:46 +0800 |
Multifd RDMA is need to poll when we send data, record it.
Signed-off-by: Chuan Zheng <zhengchuan@huawei.com>
---
migration/migration.c | 1 +
migration/migration.h | 1 +
migration/rdma.c | 14 ++++++++++++++
3 files changed, 16 insertions(+)
diff --git a/migration/migration.c b/migration/migration.c
index 7061410..1ec1dc9 100644
--- a/migration/migration.c
+++ b/migration/migration.c
@@ -1892,6 +1892,7 @@ void migrate_init(MigrationState *s)
s->migration_thread_running = false;
s->enabled_rdma_migration = false;
s->host_port = NULL;
+ s->rdma_channel = 0;
error_free(s->error);
s->error = NULL;
s->hostname = NULL;
diff --git a/migration/migration.h b/migration/migration.h
index fea63de..5676b23 100644
--- a/migration/migration.h
+++ b/migration/migration.h
@@ -272,6 +272,7 @@ struct MigrationState
/* Need by Multi-RDMA */
char *host_port;
+ int rdma_channel;
};
void migrate_set_state(int *state, int old_state, int new_state);
diff --git a/migration/rdma.c b/migration/rdma.c
index d5d6364..327f80f 100644
--- a/migration/rdma.c
+++ b/migration/rdma.c
@@ -183,6 +183,20 @@ typedef struct {
} RDMAWorkRequestData;
/*
+ * Get the multifd RDMA channel used to send data.
+ */
+static int get_multifd_RDMA_channel(void)
+{
+ int thread_count = migrate_multifd_channels();
+ MigrationState *s = migrate_get_current();
+
+ s->rdma_channel++;
+ s->rdma_channel %= thread_count;
+
+ return s->rdma_channel;
+}
+
+/*
* Negotiate RDMA capabilities during connection-setup time.
*/
typedef struct {
--
1.8.3.1
- [PATCH v3 07/18] migration/rdma: add rdma field into multifd send/recv param, (continued)
- [PATCH v3 07/18] migration/rdma: add rdma field into multifd send/recv param, Chuan Zheng, 2020/10/17
- [PATCH v3 09/18] migration/rdma: add multifd_rdma_load_setup() to setup multifd rdma, Chuan Zheng, 2020/10/17
- [PATCH v3 03/18] migration/rdma: create multifd_setup_ops for Tx/Rx thread, Chuan Zheng, 2020/10/17
- [PATCH v3 05/18] migration/rdma: do not need sync main for rdma, Chuan Zheng, 2020/10/17
- [PATCH v3 06/18] migration/rdma: export MultiFDSendParams/MultiFDRecvParams, Chuan Zheng, 2020/10/17
- [PATCH v3 17/18] migration/rdma: send data for both rdma-pin-all and NOT rdma-pin-all mode, Chuan Zheng, 2020/10/17
- [PATCH v3 18/18] migration/rdma: RDMA cleanup for multifd migration, Chuan Zheng, 2020/10/17
- [PATCH v3 14/18] migration/rdma: register memory for multifd RDMA channels, Chuan Zheng, 2020/10/17
- [PATCH v3 13/18] migration/rdma: Add the function for dynamic page registration, Chuan Zheng, 2020/10/17
- [PATCH v3 12/18] migration/rdma: Create the multifd send channels for RDMA, Chuan Zheng, 2020/10/17
- [PATCH v3 16/18] migration/rdma: add rdma_channel into Migrationstate field,
Chuan Zheng <=
- [PATCH v3 11/18] migration/rdma: record host_port for multifd RDMA, Chuan Zheng, 2020/10/17
- [PATCH v3 15/18] migration/rdma: only register the memory for multifd channels, Chuan Zheng, 2020/10/17
- [PATCH v3 10/18] migration/rdma: Create the multifd recv channels for RDMA, Chuan Zheng, 2020/10/17
- RE: [PATCH v3 00/18] Support Multifd for RDMA migration, Zhanghailiang, 2020/10/21