v1 -> v2:
fix memoryleak of MigrationState hostname
add tls_hostname into MultiFDSendParams for handshake use
fix function alignment
squash Patch005 and Patch006
add ioc into trace-events
TLS migration could easily reach bottleneck of cpu because of encryption
and decryption in migration thread.
In our test, the tls migration could only reach 300MB/s under bandwidth
of 500MB/s.
Inspired by multifd, we add multifd support for tls migration to make fully
use of given net bandwidth at the cost of multi-cpus and could reduce
at most of 100% migration time with 4U16G test vm.
Evaluate migration time of migration vm.
The VM specifications for migration are as follows:
- VM use 4-K page;
- the number of VCPU is 4;
- the total memory is 16Gigabit;
- use 'mempress' tool to pressurize VM(mempress 4096 100);
- migration flag is 73755 (8219 + 65536 (TLS)) vs 204827 (8219 + 65536 (TLS) + 131072(Multifd))
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| | TLS | MultiFD + TLS (2 channel) |
--------------------------------------------------------t---------------------------
| mempress 1024 120 | 25.035s | 15.067s |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| mempress 1024 200 | 48.798s | 25.334s |
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
| mempress 1024 300 | Migration Failed | 25.617s |
------------------------------------------------------------------------------------
Chuan Zheng (6):
migration/tls: save hostname into MigrationState
migration/tls: extract migration_tls_client_create for common-use
migration/tls: add MigrationState and tls_hostname into
MultiFDSendParams
migration/tls: extract cleanup function for common-use
migration/tls: add support for multifd tls-handshake
migration/tls: add trace points for multifd-tls
migration/channel.c | 6 +++
migration/migration.c | 1 +
migration/migration.h | 5 ++
migration/multifd.c | 124 +++++++++++++++++++++++++++++++++++++++++++------
migration/multifd.h | 4 ++
migration/tls.c | 26 +++++++----
migration/tls.h | 6 +++
migration/trace-events | 5 ++
8 files changed, 155 insertions(+), 22 deletions(-)
--
1.8.3.1