From 9df3f2e0264961bdb73743c3ffcc124ec786d4a8 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Fri, 1 Apr 2016 21:15:19 +0200 Subject: [PATCH] tiny cleanups in the VMs and links --- src/surf/HostImpl.cpp | 8 ++++---- src/surf/network_interface.hpp | 31 +++++------------------------ src/surf/virtual_machine.cpp | 6 +++--- src/surf/virtual_machine.hpp | 16 ++++----------- src/surf/vm_hl13.cpp | 36 +++++++++++++++++----------------- 5 files changed, 34 insertions(+), 63 deletions(-) diff --git a/src/surf/HostImpl.cpp b/src/surf/HostImpl.cpp index 646f093fad..63995901bc 100644 --- a/src/surf/HostImpl.cpp +++ b/src/surf/HostImpl.cpp @@ -31,7 +31,7 @@ simgrid::xbt::Extension HostImpl::EXTENSION_ID; /********* * Model * *********/ -HostImpl *HostModel::createHost(const char *name,NetCard *netElm, Cpu *cpu){ +HostImpl *HostModel::createHost(const char *name, NetCard *netElm, Cpu *cpu){ xbt_dynar_t storageList = (xbt_dynar_t)xbt_lib_get_or_null(storage_lib, name, ROUTING_STORAGE_HOST_LEVEL); HostImpl *host = new simgrid::surf::HostImpl(surf_host_model, name, storageList, cpu); @@ -61,13 +61,13 @@ void HostModel::adjustWeightOfDummyCpuActions() /* FIXME: we should use lmm_update_variable_weight() ? */ /* FIXME: If we assign 1.05 and 0.05, the system makes apparently wrong values. */ - ws_vm->p_action->setPriority(1); + ws_vm->action_->setPriority(1); } else { /* no task exits on this VM */ XBT_DEBUG("set the weight of the dummy CPU action on PM to 0"); - ws_vm->p_action->setPriority(0); + ws_vm->action_->setPriority(0); } } } @@ -391,7 +391,7 @@ xbt_dynar_t HostImpl::getVms() iter != simgrid::surf::VMModel::ws_vms.end(); ++iter) { simgrid::surf::VirtualMachine *ws_vm = &*iter; - if (this == ws_vm->p_hostPM->extension(simgrid::surf::HostImpl::EXTENSION_ID)) + if (this == ws_vm->getPm()->extension(simgrid::surf::HostImpl::EXTENSION_ID)) xbt_dynar_push(dyn, &ws_vm); } diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 082934e5e4..7473f1fa8e 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -26,19 +26,13 @@ namespace simgrid { namespace surf { - class NetworkModel; class NetworkAction; - /************* - * Callbacks * - *************/ - - /** @brief Callback signal fired when the state of a NetworkAction changes * Signature: `void(NetworkAction *action, simgrid::surf::Action::State old, simgrid::surf::Action::State current)` */ XBT_PUBLIC_DATA(simgrid::xbt::signal) networkActionStateChangedCallbacks; - } + } } /********* * Model * @@ -70,8 +64,6 @@ namespace simgrid { * @param bandwidth The initial bandwidth of the Link in bytes per second * @param latency The initial latency of the Link in seconds * @param policy The sharing policy of the Link - * @param properties Dictionary of properties associated to this Resource - * @return The created Link */ virtual Link* createLink(const char *name, double bandwidth, double latency, e_surf_link_sharing_policy_t policy, xbt_dict_t properties)=0; @@ -79,7 +71,7 @@ namespace simgrid { /** * @brief Create a communication between two hosts. * @details It makes calls to the routing part, and execute the communication - * between the two end points. + * between the two end points. * * @param src The source of the communication * @param dst The destination of the communication @@ -144,23 +136,10 @@ namespace simgrid { public simgrid::surf::Resource, public simgrid::surf::PropertyHolder { public: - /** - * @brief Link constructor - * - * @param model The NetworkModel associated to this Link - * @param name The name of the Link - * @param props Dictionary of properties associated to this Link - */ - Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props); - /** - * @brief Link constructor - * - * @param model The NetworkModel associated to this Link - * @param name The name of the Link - * @param props Dictionary of properties associated to this Link - * @param constraint The lmm constraint associated to this Cpu if it is part of a LMM component - */ + /** @brief Constructor of non-LMM links */ + Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props); + /** @brief Constructor of LMM links */ Link(simgrid::surf::NetworkModel *model, const char *name, xbt_dict_t props, lmm_constraint_t constraint); /* Link destruction logic */ diff --git a/src/surf/virtual_machine.cpp b/src/surf/virtual_machine.cpp index 37e771c020..75017d8790 100644 --- a/src/surf/virtual_machine.cpp +++ b/src/surf/virtual_machine.cpp @@ -34,7 +34,7 @@ VMModel::vm_list_t VMModel::ws_vms; VirtualMachine::VirtualMachine(HostModel *model, const char *name, simgrid::s4u::Host *hostPM) : HostImpl(model, name, NULL, NULL, NULL) -, p_hostPM(hostPM) +, hostPM_(hostPM) { VMModel::ws_vms.push_back(*this); simgrid::s4u::Host::by_name_or_create(name)->extension_set(this); @@ -48,7 +48,7 @@ VirtualMachine::~VirtualMachine() VMDestructedCallbacks(this); VMModel::ws_vms.erase(VMModel::vm_list_t::s_iterator_to(*this)); /* Free the cpu_action of the VM. */ - XBT_ATTRIB_UNUSED int ret = p_action->unref(); + XBT_ATTRIB_UNUSED int ret = action_->unref(); xbt_assert(ret == 1, "Bug: some resource still remains"); } @@ -74,7 +74,7 @@ void VirtualMachine::turnOff() { /** @brief returns the physical machine on which the VM is running **/ sg_host_t VirtualMachine::getPm() { - return p_hostPM; + return hostPM_; } } diff --git a/src/surf/virtual_machine.hpp b/src/surf/virtual_machine.hpp index 4c64492549..b65d29198b 100644 --- a/src/surf/virtual_machine.hpp +++ b/src/surf/virtual_machine.hpp @@ -53,16 +53,7 @@ extern XBT_PRIVATE simgrid::xbt::signal VM */ class VirtualMachine : public HostImpl { public: - /** - * @brief Constructor - * - * @param model VMModel associated to this VM - * @param name The name of the VM - * @param host The host - */ VirtualMachine(simgrid::surf::HostModel *model, const char *name, simgrid::s4u::Host *host); - - /** @brief Destructor */ ~VirtualMachine(); /** @brief Suspend the VM */ @@ -87,13 +78,14 @@ public: virtual void setAffinity(Cpu *cpu, unsigned long mask)=0; /* The vm object of the lower layer */ - CpuAction *p_action; - simgrid::s4u::Host *p_hostPM; + CpuAction *action_; +protected: + simgrid::s4u::Host *hostPM_; +public: void turnOn() override; void turnOff() override; -public: e_surf_vm_state_t getState(); void setState(e_surf_vm_state_t state); protected: diff --git a/src/surf/vm_hl13.cpp b/src/surf/vm_hl13.cpp index ad0151d985..fde670b2df 100644 --- a/src/surf/vm_hl13.cpp +++ b/src/surf/vm_hl13.cpp @@ -75,8 +75,8 @@ double VMHL13Model::next_occuring_event(double now) Cpu *cpu = ws_vm->p_cpu; xbt_assert(cpu, "cpu-less host"); - double solved_value = ws_vm->p_action->getVariable()->value; - XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, ws_vm->getName(), ws_vm->p_hostPM->name().c_str()); + double solved_value = ws_vm->action_->getVariable()->value; + XBT_DEBUG("assign %f to vm %s @ pm %s", solved_value, ws_vm->getName(), ws_vm->getPm()->name().c_str()); // TODO: check lmm_update_constraint_bound() works fine instead of the below manual substitution. // cpu_cas01->constraint->bound = solved_value; @@ -123,20 +123,20 @@ VMHL13::VMHL13(VMModel *model, const char* name, sg_host_t host_PM) /* We create cpu_action corresponding to a VM process on the host operating system. */ /* FIXME: TODO: we have to periodically input GUESTOS_NOISE to the system? how ? */ - p_action = sub_cpu->execution_start(0); + action_ = sub_cpu->execution_start(0); - XBT_VERB("Create VM(%s)@PM(%s) with %ld mounted disks", name, p_hostPM->name().c_str(), xbt_dynar_length(p_storage)); + XBT_VERB("Create VM(%s)@PM(%s) with %ld mounted disks", name, hostPM_->name().c_str(), xbt_dynar_length(p_storage)); } void VMHL13::suspend() { - p_action->suspend(); + action_->suspend(); p_vm_state = SURF_VM_STATE_SUSPENDED; } void VMHL13::resume() { - p_action->resume(); + action_->resume(); p_vm_state = SURF_VM_STATE_RUNNING; } @@ -145,7 +145,7 @@ void VMHL13::save() p_vm_state = SURF_VM_STATE_SAVING; /* FIXME: do something here */ - p_action->suspend(); + action_->suspend(); p_vm_state = SURF_VM_STATE_SAVED; } @@ -154,7 +154,7 @@ void VMHL13::restore() p_vm_state = SURF_VM_STATE_RESTORING; /* FIXME: do something here */ - p_action->resume(); + action_->resume(); p_vm_state = SURF_VM_STATE_RUNNING; } @@ -163,47 +163,47 @@ void VMHL13::migrate(sg_host_t host_dest) { HostImpl *surfHost_dst = host_dest->extension(); const char *vm_name = getName(); - const char *pm_name_src = p_hostPM->name().c_str(); + const char *pm_name_src = hostPM_->name().c_str(); const char *pm_name_dst = surfHost_dst->getName(); /* update net_elm with that of the destination physical host */ sg_host_by_name(vm_name)->pimpl_netcard = sg_host_by_name(pm_name_dst)->pimpl_netcard; - p_hostPM = host_dest; + hostPM_ = host_dest; /* Update vcpu's action for the new pm */ { /* create a cpu action bound to the pm model at the destination. */ CpuAction *new_cpu_action = static_cast(host_dest->pimpl_cpu->execution_start(0)); - Action::State state = p_action->getState(); + Action::State state = action_->getState(); if (state != Action::State::done) XBT_CRITICAL("FIXME: may need a proper handling, %d", static_cast(state)); - if (p_action->getRemainsNoUpdate() > 0) - XBT_CRITICAL("FIXME: need copy the state(?), %f", p_action->getRemainsNoUpdate()); + if (action_->getRemainsNoUpdate() > 0) + XBT_CRITICAL("FIXME: need copy the state(?), %f", action_->getRemainsNoUpdate()); /* keep the bound value of the cpu action of the VM. */ - double old_bound = p_action->getBound(); + double old_bound = action_->getBound(); if (old_bound != 0) { XBT_DEBUG("migrate VM(%s): set bound (%f) at %s", vm_name, old_bound, pm_name_dst); new_cpu_action->setBound(old_bound); } - XBT_ATTRIB_UNUSED int ret = p_action->unref(); + XBT_ATTRIB_UNUSED int ret = action_->unref(); xbt_assert(ret == 1, "Bug: some resource still remains"); - p_action = new_cpu_action; + action_ = new_cpu_action; } XBT_DEBUG("migrate VM(%s): change PM (%s to %s)", vm_name, pm_name_src, pm_name_dst); } void VMHL13::setBound(double bound){ - p_action->setBound(bound); + action_->setBound(bound); } void VMHL13::setAffinity(Cpu *cpu, unsigned long mask){ - p_action->setAffinity(cpu, mask); + action_->setAffinity(cpu, mask); } } -- 2.20.1