Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add signals for VM live migration start/end
authorFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 13 Jul 2018 12:16:24 +0000 (14:16 +0200)
committerFrederic Suter <frederic.suter@cc.in2p3.fr>
Fri, 13 Jul 2018 12:16:24 +0000 (14:16 +0200)
include/simgrid/s4u/VirtualMachine.hpp
src/plugins/vm/VmLiveMigration.cpp
src/plugins/vm/s4u_VirtualMachine.cpp

index baafbcf..f7bb2c7 100644 (file)
@@ -57,6 +57,8 @@ public:
   static simgrid::xbt::signal<void(VirtualMachine&)> on_shutdown;
   static simgrid::xbt::signal<void(VirtualMachine&)> on_suspend;
   static simgrid::xbt::signal<void(VirtualMachine&)> on_resume;
   static simgrid::xbt::signal<void(VirtualMachine&)> on_shutdown;
   static simgrid::xbt::signal<void(VirtualMachine&)> on_suspend;
   static simgrid::xbt::signal<void(VirtualMachine&)> on_resume;
+  static simgrid::xbt::signal<void(VirtualMachine&)> on_migration_start;
+  static simgrid::xbt::signal<void(VirtualMachine&)> on_migration_end;
 
   // Deprecated methods
   XBT_ATTRIB_DEPRECATED_v323("Please use VirtualMachine::get_state()") VirtualMachine::state getState()
 
   // Deprecated methods
   XBT_ATTRIB_DEPRECATED_v323("Please use VirtualMachine::get_state()") VirtualMachine::state getState()
index 38741de..2cdd524 100644 (file)
@@ -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;
     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() + ")";
 
   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;
   rx->join();
 
   vm->get_impl()->is_migrating_ = false;
+  simgrid::s4u::VirtualMachine::on_migration_end(*vm);
 }
 }
index 9e892c6..6f0dbe5 100644 (file)
@@ -21,6 +21,8 @@ simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_started;
 simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_shutdown;
 simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_suspend;
 simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_resume;
 simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_shutdown;
 simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_suspend;
 simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_resume;
+simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_migration_start;
+simgrid::xbt::signal<void(VirtualMachine&)> VirtualMachine::on_migration_end;
 
 VirtualMachine::VirtualMachine(const char* name, s4u::Host* physical_host, int core_amount)
     : VirtualMachine(name, physical_host, core_amount, 1024)
 
 VirtualMachine::VirtualMachine(const char* name, s4u::Host* physical_host, int core_amount)
     : VirtualMachine(name, physical_host, core_amount, 1024)