Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
tiny doc improvements
[simgrid.git] / src / plugins / vm / s4u_VirtualMachine.cpp
index 29174e3..5119271 100644 (file)
@@ -33,12 +33,15 @@ VirtualMachine::VirtualMachine(const char* name, s4u::Host* pm, int coreAmount,
 
   /* Currently, a VM uses the network resource of its physical host */
   pimpl_netpoint = pm->pimpl_netpoint;
+
   // Create a VCPU for this VM
-  surf::CpuCas01* sub_cpu = dynamic_cast<surf::CpuCas01*>(pm->pimpl_cpu);
+  std::vector<double> speeds;
+  for (int i = 0; i < pm->getPstatesCount(); i++)
+    speeds.push_back(pm->getPstateSpeed(i));
 
-  pimpl_cpu = surf_cpu_model_vm->createCpu(this, sub_cpu->getSpeedPeakList(), coreAmount);
-  if (sub_cpu->getPState() != 0)
-    pimpl_cpu->setPState(sub_cpu->getPState());
+  surf_cpu_model_vm->create_cpu(this, &speeds, pm->getCoreCount());
+  if (pm->getPstate() != 0)
+    setPstate(pm->getPstate());
 
   /* Make a process container */
   extension_set<simgrid::simix::Host>(new simgrid::simix::Host());
@@ -46,7 +49,7 @@ VirtualMachine::VirtualMachine(const char* name, s4u::Host* pm, int coreAmount,
 
 VirtualMachine::~VirtualMachine()
 {
-  onDestruction(*this);
+  on_destruction(*this);
 
   XBT_DEBUG("destroy %s", get_cname());
 
@@ -66,7 +69,7 @@ void VirtualMachine::start()
 {
   on_start(*this);
 
-  simgrid::simix::kernelImmediate([this]() {
+  simgrid::simix::simcall([this]() {
     simgrid::vm::VmHostExt::ensureVmExtInstalled();
 
     simgrid::s4u::Host* pm = this->pimpl_vm_->getPm();
@@ -85,7 +88,7 @@ void VirtualMachine::start()
           total_ramsize_of_vms += ws_vm->getRamsize();
 
       if (vm_ramsize > pm_ramsize - total_ramsize_of_vms) {
-        XBT_WARN("cannnot start %s@%s due to memory shortage: vm_ramsize %ld, free %ld, pm_ramsize %ld (bytes).",
+        XBT_WARN("cannot start %s@%s due to memory shortage: vm_ramsize %ld, free %ld, pm_ramsize %ld (bytes).",
                  this->get_cname(), pm->get_cname(), vm_ramsize, pm_ramsize - total_ramsize_of_vms, pm_ramsize);
         THROWF(vm_error, 0, "Memory shortage on host '%s', VM '%s' cannot be started", pm->get_cname(),
                this->get_cname());
@@ -102,7 +105,7 @@ void VirtualMachine::suspend()
 {
   on_suspend(*this);
   smx_actor_t issuer = SIMIX_process_self();
-  simgrid::simix::kernelImmediate([this, issuer]() { pimpl_vm_->suspend(issuer); });
+  simgrid::simix::simcall([this, issuer]() { pimpl_vm_->suspend(issuer); });
 }
 
 void VirtualMachine::resume()
@@ -114,7 +117,7 @@ void VirtualMachine::resume()
 void VirtualMachine::shutdown()
 {
   smx_actor_t issuer = SIMIX_process_self();
-  simgrid::simix::kernelImmediate([this, issuer]() { pimpl_vm_->shutdown(issuer); });
+  simgrid::simix::simcall([this, issuer]() { pimpl_vm_->shutdown(issuer); });
   on_shutdown(*this);
 }
 
@@ -134,12 +137,12 @@ simgrid::s4u::Host* VirtualMachine::getPm()
 
 void VirtualMachine::setPm(simgrid::s4u::Host* pm)
 {
-  simgrid::simix::kernelImmediate([this, pm]() { pimpl_vm_->setPm(pm); });
+  simgrid::simix::simcall([this, pm]() { pimpl_vm_->setPm(pm); });
 }
 
 e_surf_vm_state_t VirtualMachine::getState()
 {
-  return simgrid::simix::kernelImmediate([this]() { return pimpl_vm_->getState(); });
+  return simgrid::simix::simcall([this]() { return pimpl_vm_->getState(); });
 }
 
 size_t VirtualMachine::getRamsize()
@@ -179,7 +182,7 @@ void VirtualMachine::setRamsize(size_t ramsize)
  */
 void VirtualMachine::setBound(double bound)
 {
-  simgrid::simix::kernelImmediate([this, bound]() { pimpl_vm_->setBound(bound); });
+  simgrid::simix::simcall([this, bound]() { pimpl_vm_->setBound(bound); });
 }
 
 } // namespace simgrid