X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a5ebe49265afa41c01e8386c47a1a94a136288d9..10f12acec06b772d960500524bbbaf2d5d48c08b:/src/plugins/vm/VirtualMachineImpl.cpp diff --git a/src/plugins/vm/VirtualMachineImpl.cpp b/src/plugins/vm/VirtualMachineImpl.cpp index 9634c6fc11..c5e65c6ddd 100644 --- a/src/plugins/vm/VirtualMachineImpl.cpp +++ b/src/plugins/vm/VirtualMachineImpl.cpp @@ -5,15 +5,34 @@ #include "src/plugins/vm/VirtualMachineImpl.hpp" #include "simgrid/Exception.hpp" +#include "simgrid/kernel/routing/NetZoneImpl.hpp" +#include "simgrid/s4u/Engine.hpp" #include "simgrid/s4u/Exec.hpp" +#include "simgrid/sg_config.hpp" #include "src/include/surf/surf.hpp" #include "src/kernel/EngineImpl.hpp" #include "src/kernel/activity/ExecImpl.hpp" +#include "src/surf/cpu_cas01.hpp" +#include "src/surf/cpu_ti.hpp" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(res_vm, ker_resource, "Virtual Machines, containing actors and mobile accross hosts"); void surf_vm_model_init_HL13() { + auto cpu_optim = simgrid::config::get_value("cpu/optim"); + std::shared_ptr cpu_model_vm; + if (cpu_optim == "TI") { + cpu_model_vm = std::make_shared(); + } else { + simgrid::kernel::resource::Model::UpdateAlgo algo = simgrid::kernel::resource::Model::UpdateAlgo::FULL; + if (cpu_optim == "Lazy") + algo = simgrid::kernel::resource::Model::UpdateAlgo::LAZY; + cpu_model_vm = std::make_shared(algo); + } + simgrid::kernel::EngineImpl::get_instance()->add_model(simgrid::kernel::resource::Model::Type::CPU_VM, cpu_model_vm, + true); + simgrid::s4u::Engine::get_instance()->get_netzone_root()->get_impl()->set_cpu_vm_model(cpu_model_vm); + auto vm_model = std::make_shared(); simgrid::kernel::EngineImpl::get_instance()->add_model(simgrid::kernel::resource::Model::Type::VM, std::move(vm_model), true);