Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
try to reduce the amount of warnings in StarPU compilation
[simgrid.git] / src / msg / msg_vm.cpp
index c43ab8d..67d1e40 100644 (file)
@@ -14,7 +14,6 @@
 #include "simgrid/plugins/live_migration.h"
 #include "src/instr/instr_private.hpp"
 #include "src/plugins/vm/VirtualMachineImpl.hpp"
-#include "src/plugins/vm/VmHostExt.hpp"
 
 #include "simgrid/host.h"
 #include "simgrid/simix.hpp"
@@ -37,53 +36,27 @@ msg_host_t MSG_vm_get_pm(msg_vm_t vm)
   return vm->getPm();
 }
 
-/** \ingroup m_vm_management
- * \brief Set the parameters of a given host
- *
- * \param vm a vm
- * \param params a parameter object
- */
-void MSG_vm_set_params(msg_vm_t vm, vm_params_t params)
-{
-  vm->setParameters(params);
-}
-
-/** \ingroup m_vm_management
- * \brief Get the parameters of a given host
- *
- * \param vm the vm you are interested into
- * \param params a prameter object
- */
-void MSG_vm_get_params(msg_vm_t vm, vm_params_t params)
-{
-  vm->getParameters(params);
-}
-
 void MSG_vm_set_ramsize(msg_vm_t vm, size_t size)
 {
   vm->setRamsize(size);
 }
+
 size_t MSG_vm_get_ramsize(msg_vm_t vm)
 {
   return vm->getRamsize();
 }
 
-/* **** Check state of a VM **** */
 void MSG_vm_set_bound(msg_vm_t vm, double bound)
 {
   vm->setBound(bound);
 }
-static inline int __MSG_vm_is_state(msg_vm_t vm, e_surf_vm_state_t state)
-{
-  return vm->pimpl_vm_ != nullptr && vm->getState() == state;
-}
 
 /** @brief Returns whether the given VM has just created, not running.
  *  @ingroup msg_VMs
  */
 int MSG_vm_is_created(msg_vm_t vm)
 {
-  return __MSG_vm_is_state(vm, SURF_VM_STATE_CREATED);
+  return vm->getState() == SURF_VM_STATE_CREATED;
 }
 
 /** @brief Returns whether the given VM is currently running
@@ -91,15 +64,7 @@ int MSG_vm_is_created(msg_vm_t vm)
  */
 int MSG_vm_is_running(msg_vm_t vm)
 {
-  return __MSG_vm_is_state(vm, SURF_VM_STATE_RUNNING);
-}
-
-/** @brief Returns whether the given VM is currently migrating
- *  @ingroup msg_VMs
- */
-int MSG_vm_is_migrating(msg_vm_t vm)
-{
-  return vm->isMigrating();
+  return vm->getState() == SURF_VM_STATE_RUNNING;
 }
 
 /** @brief Returns whether the given VM is currently suspended, not running.
@@ -107,38 +72,10 @@ int MSG_vm_is_migrating(msg_vm_t vm)
  */
 int MSG_vm_is_suspended(msg_vm_t vm)
 {
-  return __MSG_vm_is_state(vm, SURF_VM_STATE_SUSPENDED);
+  return vm->getState() == SURF_VM_STATE_SUSPENDED;
 }
 
 /* **** ******** MSG vm actions ********* **** */
-/** @brief Create a new VM with specified parameters.
- *  @ingroup msg_VMs*
- *  @param pm        Physical machine that will host the VM
- *  @param name      Must be unique
- *  @param coreAmount Must be >= 1
- *  @param ramsize   [TODO]
- *  @param mig_netspeed Amount of Mbyte/s allocated to the migration (cannot be larger than net_cap). Use 0 if unsure.
- *  @param dp_intensity Dirty page percentage according to migNetSpeed, [0-100]. Use 0 if unsure.
- */
-msg_vm_t MSG_vm_create(msg_host_t pm, const char* name, int coreAmount, int ramsize, int mig_netspeed, int dp_intensity)
-{
-  simgrid::vm::VmHostExt::ensureVmExtInstalled();
-
-  /* For the moment, intensity_rate is the percentage against the migration bandwidth */
-
-  msg_vm_t vm = new simgrid::s4u::VirtualMachine(name, pm, coreAmount, static_cast<sg_size_t>(ramsize) * 1024 * 1024);
-  s_vm_params_t params;
-  params.max_downtime = 0.03;
-  params.mig_speed    = static_cast<double>(mig_netspeed) * 1024 * 1024; // mig_speed
-  params.dp_intensity = static_cast<double>(dp_intensity) / 100;
-  params.dp_cap       = vm->getRamsize() * 0.9; // assume working set memory is 90% of ramsize
-
-  XBT_DEBUG("migspeed : %f intensity mem : %d", params.mig_speed, dp_intensity);
-  vm->setParameters(&params);
-
-  return vm;
-}
-
 /** @brief Create a new VM object with the default parameters
  *  @ingroup msg_VMs*
  *
@@ -146,14 +83,7 @@ msg_vm_t MSG_vm_create(msg_host_t pm, const char* name, int coreAmount, int rams
  */
 msg_vm_t MSG_vm_create_core(msg_host_t pm, const char* name)
 {
-  xbt_assert(sg_host_by_name(name) == nullptr,
-             "Cannot create a VM named %s: this name is already used by an host or a VM", name);
-
-  msg_vm_t vm = new simgrid::s4u::VirtualMachine(name, pm, 1);
-  s_vm_params_t params;
-  memset(&params, 0, sizeof(params));
-  vm->setParameters(&params);
-  return vm;
+  return MSG_vm_create_multicore(pm, name, 1);
 }
 /** @brief Create a new VM object with the default parameters, but with a specified amount of cores
  *  @ingroup msg_VMs*
@@ -165,11 +95,7 @@ msg_vm_t MSG_vm_create_multicore(msg_host_t pm, const char* name, int coreAmount
   xbt_assert(sg_host_by_name(name) == nullptr,
              "Cannot create a VM named %s: this name is already used by an host or a VM", name);
 
-  msg_vm_t vm = new simgrid::s4u::VirtualMachine(name, pm, coreAmount);
-  s_vm_params_t params;
-  memset(&params, 0, sizeof(params));
-  vm->setParameters(&params);
-  return vm;
+  return new simgrid::s4u::VirtualMachine(name, pm, coreAmount);
 }
 
 /** @brief Start a vm (i.e., boot the guest operating system)
@@ -180,11 +106,6 @@ msg_vm_t MSG_vm_create_multicore(msg_host_t pm, const char* name, int coreAmount
 void MSG_vm_start(msg_vm_t vm)
 {
   vm->start();
-  if (TRACE_msg_vm_is_enabled()) {
-    simgrid::instr::StateType* state = simgrid::instr::Container::byName(vm->getName())->getState("MSG_VM_STATE");
-    state->addEntityValue("start", "0 0 1"); // start is blue
-    state->pushEvent("start");
-  }
 }
 
 /** @brief Immediately suspend the execution of all processes within the given VM.
@@ -198,11 +119,6 @@ void MSG_vm_start(msg_vm_t vm)
 void MSG_vm_suspend(msg_vm_t vm)
 {
   vm->suspend();
-  if (TRACE_msg_vm_is_enabled()) {
-    simgrid::instr::StateType* state = simgrid::instr::Container::byName(vm->getName())->getState("MSG_VM_STATE");
-    state->addEntityValue("suspend", "1 0 0"); // suspend is red
-    state->pushEvent("suspend");
-  }
 }
 
 /** @brief Resume the execution of the VM. All processes on the VM run again.
@@ -213,8 +129,6 @@ void MSG_vm_suspend(msg_vm_t vm)
 void MSG_vm_resume(msg_vm_t vm)
 {
   vm->resume();
-  if (TRACE_msg_vm_is_enabled())
-    simgrid::instr::Container::byName(vm->getName())->getState("MSG_VM_STATE")->popEvent();
 }
 
 /** @brief Immediately kills all processes within the given VM.
@@ -229,25 +143,18 @@ void MSG_vm_shutdown(msg_vm_t vm)
   vm->shutdown();
 }
 
+/* Deprecated. Please use MSG_vm_create_migratable() instead */
+msg_vm_t MSG_vm_create(msg_host_t ind_pm, const char* name, int coreAmount, int ramsize, int mig_netspeed,
+                       int dp_intensity)
+{
+  return sg_vm_create_migratable(ind_pm, name, coreAmount, ramsize, mig_netspeed, dp_intensity);
+}
+
 /** @brief Destroy a VM. Destroy the VM object from the simulation.
  *  @ingroup msg_VMs
  */
 void MSG_vm_destroy(msg_vm_t vm)
 {
-  if (vm->isMigrating())
-    THROWF(vm_error, 0, "Cannot destroy VM '%s', which is migrating.", vm->getCname());
-
-  /* First, terminate all processes on the VM if necessary */
-  vm->shutdown();
-
-  /* Then, destroy the VM object */
   vm->destroy();
-
-  if (TRACE_msg_vm_is_enabled()) {
-    container_t container = simgrid::instr::Container::byName(vm->getName());
-    container->removeFromParent();
-    delete container;
-  }
 }
-
 }