Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
more VM functions inlining (plus, getters don't need to be a simcall)
authorMartin Quinson <martin.quinson@loria.fr>
Sun, 20 Nov 2016 17:21:06 +0000 (18:21 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Sun, 20 Nov 2016 17:21:06 +0000 (18:21 +0100)
include/simgrid/simix.h
src/msg/msg_vm.cpp
src/simix/libsmx.cpp
src/simix/smx_host_private.h
src/simix/smx_vm.cpp

index c3ea657..59cc0fb 100644 (file)
@@ -260,7 +260,6 @@ XBT_PUBLIC(e_smx_state_t) simcall_execution_wait(smx_activity_t execution);
 /******************************* VM simcalls ********************************/
 // Create the vm_workstation at the SURF level
 XBT_PUBLIC(sg_host_t) simcall_vm_create(const char *name, sg_host_t host);
-XBT_PUBLIC(int) simcall_vm_get_state(sg_host_t vm);
 XBT_PUBLIC(void) simcall_vm_start(sg_host_t vm);
 XBT_PUBLIC(void) simcall_vm_migrate(sg_host_t vm, sg_host_t dst_pm);
 XBT_PUBLIC(void *) simcall_vm_get_pm(sg_host_t vm);
index 77b9855..35efaa7 100644 (file)
@@ -52,7 +52,7 @@ void MSG_vm_get_params(msg_vm_t vm, vm_params_t params)
 /* **** Check state of a VM **** */
 static inline int __MSG_vm_is_state(msg_vm_t vm, e_surf_vm_state_t state)
 {
-  return simcall_vm_get_state(vm) == state;
+  return static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() == state;
 }
 
 /** @brief Returns whether the given VM has just created, not running.
index 95f8dfa..1f15dfe 100644 (file)
@@ -205,18 +205,6 @@ void simcall_vm_start(sg_host_t vm)
   simgrid::simix::kernelImmediate(std::bind(SIMIX_vm_start, vm));
 }
 
-/**
- * \ingroup simix_vm_management
- * \brief Get the state of the given VM
- *
- * \param vm VM
- * \return The state of the VM
- */
-int simcall_vm_get_state(sg_host_t vm)
-{
-  return simgrid::simix::kernelImmediate(std::bind(SIMIX_vm_get_state, vm));
-}
-
 /**
  * \ingroup simix_vm_management
  * \brief Get the physical host on which the given VM runs.
@@ -296,7 +284,7 @@ void simcall_vm_save(sg_host_t vm)
 void simcall_vm_restore(sg_host_t vm)
 {
   simgrid::simix::kernelImmediate([vm]() {
-    if (SIMIX_vm_get_state(vm) != SURF_VM_STATE_SAVED)
+    if (static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() != SURF_VM_STATE_SAVED)
       THROWF(vm_error, 0, "VM(%s) was not saved", vm->name().c_str());
 
     XBT_DEBUG("restore VM(%s), where %d processes exist", vm->name().c_str(),
index 0e0d387..d87ae8b 100644 (file)
@@ -78,8 +78,6 @@ XBT_PRIVATE void SIMIX_vm_start(sg_host_t ind_vm);
 XBT_PRIVATE void SIMIX_vm_shutdown(sg_host_t ind_vm, smx_actor_t issuer);
 // --
 
-XBT_PRIVATE e_surf_vm_state_t SIMIX_vm_get_state(sg_host_t ind_vm);
-// --
 XBT_PRIVATE void SIMIX_vm_migrate(sg_host_t ind_vm, sg_host_t ind_dst_pm);
 
 SG_END_DECL()
index cd04a97..d1b585f 100644 (file)
@@ -67,17 +67,11 @@ static int __can_be_started(sg_host_t vm)
 void SIMIX_vm_start(sg_host_t vm)
 {
   if (__can_be_started(vm))
-    static_cast<simgrid::surf::VirtualMachineImpl*>(vm->pimpl_)->setState(SURF_VM_STATE_RUNNING);
+    static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->setState(SURF_VM_STATE_RUNNING);
   else
     THROWF(vm_error, 0, "The VM %s cannot be started", vm->name().c_str());
 }
 
-
-e_surf_vm_state_t SIMIX_vm_get_state(sg_host_t vm)
-{
-  return static_cast<simgrid::surf::VirtualMachineImpl*>(vm->pimpl_)->getState();
-}
-
 /**
  * @brief Function to migrate a SIMIX VM host.
  *
@@ -86,7 +80,7 @@ e_surf_vm_state_t SIMIX_vm_get_state(sg_host_t vm)
 void SIMIX_vm_migrate(sg_host_t vm, sg_host_t dst_pm)
 {
   /* precopy migration makes the VM temporally paused */
-  xbt_assert(SIMIX_vm_get_state(vm) == SURF_VM_STATE_SUSPENDED);
+  xbt_assert(static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() == SURF_VM_STATE_SUSPENDED);
 
   /* jump to vm_ws_xigrate(). this will update the vm location. */
   static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->migrate(dst_pm);
@@ -101,7 +95,7 @@ void SIMIX_vm_migrate(sg_host_t vm, sg_host_t dst_pm)
  */
 void SIMIX_vm_suspend(sg_host_t vm, smx_actor_t issuer)
 {
-  if (SIMIX_vm_get_state(vm) != SURF_VM_STATE_RUNNING)
+  if (static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() != SURF_VM_STATE_RUNNING)
     THROWF(vm_error, 0, "VM(%s) is not running", vm->name().c_str());
 
   XBT_DEBUG("suspend VM(%s), where %d processes exist", vm->name().c_str(), xbt_swag_size(sg_host_simix(vm)->process_list));
@@ -136,7 +130,7 @@ void simcall_HANDLER_vm_suspend(smx_simcall_t simcall, sg_host_t vm)
  */
 void SIMIX_vm_resume(sg_host_t vm)
 {
-  if (SIMIX_vm_get_state(vm) != SURF_VM_STATE_SUSPENDED)
+  if (static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() != SURF_VM_STATE_SUSPENDED)
     THROWF(vm_error, 0, "VM(%s) was not suspended", vm->name().c_str());
 
   XBT_DEBUG("resume VM(%s), where %d processes exist",
@@ -163,7 +157,7 @@ void SIMIX_vm_save(sg_host_t vm, smx_actor_t issuer)
 {
   const char *name = sg_host_get_name(vm);
 
-  if (SIMIX_vm_get_state(vm) != SURF_VM_STATE_RUNNING)
+  if (static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() != SURF_VM_STATE_RUNNING)
     THROWF(vm_error, 0, "VM(%s) is not running", name);
 
   XBT_DEBUG("save VM(%s), where %d processes exist", name, xbt_swag_size(sg_host_simix(vm)->process_list));
@@ -192,7 +186,7 @@ void simcall_HANDLER_vm_save(smx_simcall_t simcall, sg_host_t vm)
  */
 void SIMIX_vm_shutdown(sg_host_t vm, smx_actor_t issuer)
 {
-  if (SIMIX_vm_get_state(vm) != SURF_VM_STATE_RUNNING)
+  if (static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->getState() != SURF_VM_STATE_RUNNING)
     THROWF(vm_error, 0, "VM(%s) is not running", vm->name().c_str());
 
   XBT_DEBUG("shutdown VM %s, that contains %d processes",
@@ -205,7 +199,7 @@ void SIMIX_vm_shutdown(sg_host_t vm, smx_actor_t issuer)
   }
 
   /* FIXME: we may have to do something at the surf layer, e.g., vcpu action */
-  static_cast<simgrid::surf::VirtualMachineImpl*>(vm->pimpl_)->setState(SURF_VM_STATE_CREATED);
+  static_cast<simgrid::s4u::VirtualMachine*>(vm)->pimpl_vm_->setState(SURF_VM_STATE_CREATED);
 }
 
 void simcall_HANDLER_vm_shutdown(smx_simcall_t simcall, sg_host_t vm)