X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/59251ff676c562b79573e3561166e4351e4ad11e..9856e530871afa8c75fda68ab7cbc718e9ba7e95:/src/s4u/s4u_Host.cpp diff --git a/src/s4u/s4u_Host.cpp b/src/s4u/s4u_Host.cpp index 7437ff74dd..0b81ba17dc 100644 --- a/src/s4u/s4u_Host.cpp +++ b/src/s4u/s4u_Host.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2006-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2006-2022. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -13,13 +13,14 @@ #include #include -#include "src/plugins/vm/VirtualMachineImpl.hpp" +#include "src/kernel/resource/StandardLinkImpl.hpp" +#include "src/kernel/resource/VirtualMachineImpl.hpp" #include "src/surf/HostImpl.hpp" #include XBT_LOG_NEW_DEFAULT_SUBCATEGORY(s4u_host, s4u, "Logging specific to the S4U hosts"); -XBT_LOG_EXTERNAL_CATEGORY(surf_route); +XBT_LOG_EXTERNAL_CATEGORY(ker_routing); namespace simgrid { @@ -27,10 +28,12 @@ template class xbt::Extendable; namespace s4u { +#ifndef DOXYGEN xbt::signal Host::on_creation; xbt::signal Host::on_destruction; xbt::signal Host::on_state_change; xbt::signal Host::on_speed_change; +#endif Host* Host::set_cpu(kernel::resource::CpuImpl* cpu) { @@ -108,7 +111,7 @@ void Host::turn_off() if (is_on()) { const kernel::actor::ActorImpl* self = kernel::actor::ActorImpl::self(); kernel::actor::simcall([this, self] { - for (VirtualMachine* const& vm : vm::VirtualMachineImpl::allVms_) + for (VirtualMachine* const& vm : kernel::resource::VirtualMachineImpl::allVms_) if (vm->get_pm() == this) { vm->shutdown(); vm->turn_off(); @@ -160,21 +163,21 @@ size_t Host::get_actor_count() const */ void Host::route_to(const Host* dest, std::vector& links, double* latency) const { - std::vector linkImpls; + std::vector linkImpls; this->route_to(dest, linkImpls, latency); for (auto* l : linkImpls) links.push_back(l->get_iface()); } /** @brief Just like Host::routeTo, but filling an array of link implementations */ -void Host::route_to(const Host* dest, std::vector& links, double* latency) const +void Host::route_to(const Host* dest, std::vector& links, double* latency) const { kernel::routing::NetZoneImpl::get_global_route(pimpl_netpoint_, dest->get_netpoint(), links, latency); - if (XBT_LOG_ISENABLED(surf_route, xbt_log_priority_debug)) { - XBT_CDEBUG(surf_route, "Route from '%s' to '%s' (latency: %f):", get_cname(), dest->get_cname(), + if (XBT_LOG_ISENABLED(ker_routing, xbt_log_priority_debug)) { + XBT_CDEBUG(ker_routing, "Route from '%s' to '%s' (latency: %f):", get_cname(), dest->get_cname(), (latency == nullptr ? -1 : *latency)); for (auto const* link : links) - XBT_CDEBUG(surf_route, " Link '%s'", link->get_cname()); + XBT_CDEBUG(ker_routing, " Link '%s'", link->get_cname()); } } @@ -184,23 +187,6 @@ NetZone* Host::get_englobing_zone() const return pimpl_netpoint_->get_englobing_zone()->get_iface(); } -#ifndef DOXYGEN -void Host::sendto(Host* dest, double byte_amount) // XBT_ATTRIB_DEPRECATED_v331 -{ - Comm::sendto_async(this, dest, byte_amount)->wait(); -} - -CommPtr Host::sendto_async(Host* dest, double byte_amount) // XBT_ATTRIB_DEPRECATED_v331 -{ - return Comm::sendto_async(this, dest, byte_amount); -} - -void Host::send_to(Host* dest, double byte_amount) // XBT_ATTRIB_DEPRECATED_v330 -{ - Comm::sendto(this, dest, byte_amount); -} -#endif - /** Get the properties assigned to a host */ const std::unordered_map* Host::get_properties() const { @@ -380,6 +366,16 @@ void Host::remove_disk(const std::string& disk_name) kernel::actor::simcall([this, disk_name] { this->pimpl_->remove_disk(disk_name); }); } +VirtualMachine* Host::create_vm(const std::string& name, int core_amount) +{ + return new VirtualMachine(name, this, core_amount); +} + +VirtualMachine* Host::create_vm(const std::string& name, int core_amount, size_t ramsize) +{ + return new VirtualMachine(name, this, core_amount, ramsize); +} + ExecPtr Host::exec_init(double flops) const { return this_actor::exec_init(flops); @@ -449,40 +445,17 @@ sg_host_t sg_host_by_name(const char* name) return simgrid::s4u::Host::by_name_or_null(name); } -xbt_dynar_t sg_hosts_as_dynar() // XBT_ATTRIB_DEPRECATED_v330 -{ - std::vector list = simgrid::s4u::Engine::get_instance()->get_all_hosts(); - - auto last = std::remove_if(begin(list), end(list), [](const simgrid::s4u::Host* host) { - return not host || not host->get_netpoint() || not host->get_netpoint()->is_host(); - }); - std::sort(begin(list), last, - [](const simgrid::s4u::Host* a, const simgrid::s4u::Host* b) { return a->get_name() < b->get_name(); }); - - xbt_dynar_t res = xbt_dynar_new(sizeof(sg_host_t), nullptr); - std::for_each(begin(list), last, [res](sg_host_t host) { xbt_dynar_push_as(res, sg_host_t, host); }); - return res; -} - // ========= Layering madness ==============* // ========== User data Layer ========== void* sg_host_get_data(const_sg_host_t host) { - return host->get_data(); + return host->get_data(); } void sg_host_set_data(sg_host_t host, void* userdata) { host->set_data(userdata); } -void* sg_host_data(const_sg_host_t host) // XBT_ATTRIB_DEPRECATED_v330 -{ - return sg_host_get_data(host); -} -void sg_host_data_set(sg_host_t host, void* userdata) // XBT_ATTRIB_DEPRECATED_v330 -{ - sg_host_set_data(host, userdata); -} // ========= Disk related functions ============ void sg_host_get_disks(const_sg_host_t host, unsigned int* disk_count, sg_disk_t** disks) @@ -501,11 +474,6 @@ double sg_host_get_speed(const_sg_host_t host) return host->get_speed(); } -double sg_host_speed(const_sg_host_t host) // XBT_ATTRIB_DEPRECATED_v330 -{ - return sg_host_get_speed(host); -} - /** @brief Return the speed of the processor (in flop/s) at a given pstate. See also @ref plugin_host_energy. * * @param host host to test @@ -675,21 +643,6 @@ double sg_host_get_route_bandwidth(const_sg_host_t from, const_sg_host_t to) return min_bandwidth; } -void sg_host_route(const_sg_host_t from, const_sg_host_t to, xbt_dynar_t links) // XBT_ATTRIB_DEPRECATED_v330 -{ - sg_host_get_route(from, to, links); -} - -double sg_host_route_latency(const_sg_host_t from, const_sg_host_t to) // XBT_ATTRIB_DEPRECATED_v330 -{ - return sg_host_get_route_latency(from, to); -} - -double sg_host_route_bandwidth(const_sg_host_t from, const_sg_host_t to) // XBT_ATTRIB_DEPRECATED_v330 -{ - return sg_host_get_route_bandwidth(from, to); -} - void sg_host_sendto(sg_host_t from, sg_host_t to, double byte_amount) { simgrid::s4u::Comm::sendto(from, to, byte_amount); @@ -725,14 +678,14 @@ void sg_host_get_actor_list(const_sg_host_t host, xbt_dynar_t whereto) sg_host_t sg_host_self() { - return SIMIX_is_maestro() ? nullptr : simgrid::kernel::actor::ActorImpl::self()->get_host(); + return simgrid::s4u::Actor::is_maestro() ? nullptr : simgrid::kernel::actor::ActorImpl::self()->get_host(); } /* needs to be public and without simcall for exceptions and logging events */ const char* sg_host_self_get_name() { const char* res = ""; - if (not SIMIX_is_maestro()) { + if (not simgrid::s4u::Actor::is_maestro()) { const simgrid::s4u::Host* host = simgrid::kernel::actor::ActorImpl::self()->get_host(); if (host != nullptr) res = host->get_cname(); @@ -744,8 +697,3 @@ double sg_host_get_load(const_sg_host_t host) { return host->get_load(); } - -double sg_host_load(const_sg_host_t host) // XBT_ATTRIB_DEPRECATED_v330 -{ - return sg_host_get_load(host); -}