Hi This is a version against current code. It is based on the multifd work. we can use the multifd parameters for rdma transport. All data is transported by the multifd RDMA channels and the main channel is only used to distribute its to the different multifd channels.
Zhimin Feng (14): migration: add the 'migrate_use_rdma_pin_all' function migration: judge whether or not the RDMA is used for migration migration/rdma: Create multiFd migration threads migration/rdma: Export the RDMAContext struct migration/rdma: Create the multifd channels for RDMA migration/rdma: Transmit initial packet migration/rdma: Export the 'qemu_rdma_registration_handle' and 'qemu_rdma_exchange_send' functions migration/rdma: Add the function for dynamic page registration migration/rdma: register memory for multifd RDMA channels migration/rdma: Wait for all multifd to complete registration migration/rdma: use multifd to migrate VM for rdma-pin-all mode migration/rdma: use multifd to migrate VM for NOT rdma-pin-all mode migration/rdma: only register the memory for multifd channels migration/rdma: RDMA cleanup for multifd migration migration/migration.c | 19 ++ migration/migration.h | 2 + migration/multifd.c | 192 +++++++++++++- migration/multifd.h | 12 + migration/qemu-file.c | 5 + migration/qemu-file.h | 1 + migration/rdma.c | 579 +++++++++++++++++++++++------------------- migration/rdma.h | 268 +++++++++++++++++++ 8 files changed, 804 insertions(+), 274 deletions(-) -- 2.19.1