From 0fd45b48c7de0646ac07216ca943a595cc9ade94 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Fri, 13 Jul 2018 14:16:24 +0200 Subject: [PATCH 1/1] add signals for VM live migration start/end --- include/simgrid/s4u/VirtualMachine.hpp | 2 ++ src/plugins/vm/VmLiveMigration.cpp | 2 ++ src/plugins/vm/s4u_VirtualMachine.cpp | 2 ++ 3 files changed, 6 insertions(+) diff --git a/include/simgrid/s4u/VirtualMachine.hpp b/include/simgrid/s4u/VirtualMachine.hpp index baafbcf808..f7bb2c7b5c 100644 --- a/include/simgrid/s4u/VirtualMachine.hpp +++ b/include/simgrid/s4u/VirtualMachine.hpp @@ -57,6 +57,8 @@ public: static simgrid::xbt::signal on_shutdown; static simgrid::xbt::signal on_suspend; static simgrid::xbt::signal on_resume; + static simgrid::xbt::signal on_migration_start; + static simgrid::xbt::signal on_migration_end; // Deprecated methods XBT_ATTRIB_DEPRECATED_v323("Please use VirtualMachine::get_state()") VirtualMachine::state getState() diff --git a/src/plugins/vm/VmLiveMigration.cpp b/src/plugins/vm/VmLiveMigration.cpp index 38741de29a..2cdd524126 100644 --- a/src/plugins/vm/VmLiveMigration.cpp +++ b/src/plugins/vm/VmLiveMigration.cpp @@ -344,6 +344,7 @@ void sg_vm_migrate(simgrid::s4u::VirtualMachine* vm, simgrid::s4u::Host* dst_pm) THROWF(vm_error, 0, "Cannot migrate VM '%s' that is already migrating.", vm->get_cname()); vm->get_impl()->is_migrating_ = true; + simgrid::s4u::VirtualMachine::on_migration_start(*vm); std::string rx_name = std::string("__pr_mig_rx:") + vm->get_cname() + "(" + src_pm->get_cname() + "-" + dst_pm->get_cname() + ")"; @@ -366,4 +367,5 @@ void sg_vm_migrate(simgrid::s4u::VirtualMachine* vm, simgrid::s4u::Host* dst_pm) rx->join(); vm->get_impl()->is_migrating_ = false; + simgrid::s4u::VirtualMachine::on_migration_end(*vm); } diff --git a/src/plugins/vm/s4u_VirtualMachine.cpp b/src/plugins/vm/s4u_VirtualMachine.cpp index 9e892c6e78..6f0dbe580b 100644 --- a/src/plugins/vm/s4u_VirtualMachine.cpp +++ b/src/plugins/vm/s4u_VirtualMachine.cpp @@ -21,6 +21,8 @@ simgrid::xbt::signal VirtualMachine::on_started; simgrid::xbt::signal VirtualMachine::on_shutdown; simgrid::xbt::signal VirtualMachine::on_suspend; simgrid::xbt::signal VirtualMachine::on_resume; +simgrid::xbt::signal VirtualMachine::on_migration_start; +simgrid::xbt::signal VirtualMachine::on_migration_end; VirtualMachine::VirtualMachine(const char* name, s4u::Host* physical_host, int core_amount) : VirtualMachine(name, physical_host, core_amount, 1024) -- 2.20.1