include src/kernel/lmm/maxmin.hpp
include src/kernel/lmm/maxmin_test.cpp
include src/kernel/resource/Action.cpp
+include src/kernel/resource/CpuImpl.cpp
+include src/kernel/resource/CpuImpl.hpp
include src/kernel/resource/DiskImpl.cpp
include src/kernel/resource/DiskImpl.hpp
include src/kernel/resource/Model.cpp
include src/surf/SplitDuplexLinkImpl_test.cpp
include src/surf/cpu_cas01.cpp
include src/surf/cpu_cas01.hpp
-include src/surf/cpu_interface.cpp
-include src/surf/cpu_interface.hpp
include src/surf/cpu_ti.cpp
include src/surf/cpu_ti.hpp
include src/surf/disk_s19.cpp
Actually there are five kind of models: CpuModel, NetworkModel, WorkstationModel,
WorkstationVMModel and StorageModel. For each kind of model, there is an
-interface (e.g.: @ref SURF_cpu_interface "cpu_interface.hpp") and some implementations (e.g.: cpu_cas01.hpp,
+interface (e.g.: @ref SURF_cpu_interface "CpuImpl.hpp") and some implementations (e.g.: cpu_cas01.hpp,
cpu_ti.hpp).
The CPU model Cas01, for instance, is initialized by the function
#include <xbt/graph.h>
#include "src/instr/instr_private.hpp"
-#include "src/surf/cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/surf/network_interface.hpp"
#include "src/surf/surf_interface.hpp"
#include "src/kernel/activity/CommImpl.hpp"
#include "src/kernel/activity/MailboxImpl.hpp"
#include "src/kernel/context/Context.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/mc/mc_replay.hpp"
-#include "src/surf/cpu_interface.hpp"
#include "src/surf/network_interface.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_network, simix, "SIMIX network-related synchronization");
#include "src/kernel/activity/ExecImpl.hpp"
#include "src/kernel/actor/ActorImpl.hpp"
#include "src/kernel/actor/SimcallObserver.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/mc/mc_replay.hpp"
#include "src/surf/HostImpl.hpp"
-#include "src/surf/cpu_interface.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_process);
#include "src/kernel/actor/ActorImpl.hpp"
#include "src/kernel/actor/SimcallObserver.hpp"
#include "src/kernel/context/Context.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/kernel/resource/DiskImpl.hpp"
#include "src/mc/mc_replay.hpp"
-#include "src/surf/cpu_interface.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_io, simix, "Logging specific to SIMIX (io)");
#include "src/kernel/activity/SleepImpl.hpp"
#include "src/kernel/actor/ActorImpl.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/simix/popping_private.hpp"
-#include "src/surf/cpu_interface.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_process);
namespace simgrid {
#include "src/kernel/activity/SynchroRaw.hpp"
#include "src/kernel/actor/ActorImpl.hpp"
#include "src/kernel/context/Context.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/simix/popping_private.hpp"
-#include "src/surf/cpu_interface.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_synchro, simix, "SIMIX Synchronization (mutex, semaphores and conditions)");
/* 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. */
-#include "src/surf/cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/kernel/resource/profile/Profile.hpp"
#include "src/surf/cpu_ti.hpp"
#include "src/surf/surf_interface.hpp"
CpuImpl::CpuImpl(s4u::Host* host, const std::vector<double>& speed_per_pstate)
: Resource_T(host->get_cname()), piface_(host), speed_per_pstate_(speed_per_pstate)
{
- speed_.scale = 1;
- speed_.peak = speed_per_pstate_.front();
+ speed_.scale = 1;
+ speed_.peak = speed_per_pstate_.front();
host->set_cpu(this);
}
/* 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. */
-#ifndef SURF_CPU_INTERFACE_HPP_
-#define SURF_CPU_INTERFACE_HPP_
+#ifndef CPU_IMPL_HPP_
+#define CPU_IMPL_HPP_
#include "simgrid/kernel/resource/Model.hpp"
#include "simgrid/s4u/Host.hpp"
#include <list>
-/***********
- * Classes *
- ***********/
-
namespace simgrid {
namespace kernel {
namespace resource {
+/***********
+ * Classes *
+ ***********/
+
class CpuAction;
/*********
friend VirtualMachineImpl; // Resets the VCPU
s4u::Host* piface_;
- int core_count_ = 1;
+ int core_count_ = 1;
unsigned long pstate_ = 0; /*< Current pstate (index in the speed_per_pstate_)*/
std::vector<double> speed_per_pstate_; /*< List of supported CPU capacities (pstate related). Not 'const' because VCPU
get modified on migration */
**/
virtual void reset_vcpu(CpuImpl* that);
- Metric speed_ = {1.0, 0, nullptr};
+ Metric speed_ = {1.0, 0, nullptr};
};
/**********
* Action *
**********/
- /** @ingroup SURF_cpu_interface
+/** @ingroup SURF_cpu_interface
* @brief A CpuAction represents the execution of code on one or several Cpus
*/
class XBT_PUBLIC CpuAction : public Action {
public:
+ using Action::Action;
+
/** @brief Signal emitted when the action state changes (ready/running/done, etc)
* Signature: `void(CpuAction const& action, simgrid::kernel::resource::Action::State previous)`
*/
static xbt::signal<void(CpuAction const&, Action::State)> on_state_change;
- using Action::Action;
-
void set_state(Action::State state) override;
void update_remains_lazy(double now) override;
} // namespace kernel
} // namespace simgrid
-#endif /* SURF_CPU_INTERFACE_HPP_ */
+#endif /* CPU_IMPL_HPP_ */
#include "src/include/simgrid/sg_config.hpp"
#include "src/kernel/EngineImpl.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/kernel/resource/DiskImpl.hpp"
#include "src/surf/HostImpl.hpp"
#include "src/surf/SplitDuplexLinkImpl.hpp"
-#include "src/surf/cpu_interface.hpp"
#include "src/surf/network_interface.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_route);
#include <simgrid/s4u/VirtualMachine.hpp>
#include <simgrid/simix.hpp>
-#include "src/surf/cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include <boost/algorithm/string/classification.hpp>
#include <boost/algorithm/string/split.hpp>
#define SURF_HOST_INTERFACE_HPP
#include "src/kernel/actor/ActorImpl.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/kernel/resource/DiskImpl.hpp"
-#include "src/surf/cpu_interface.hpp"
#include "src/surf/network_interface.hpp"
#include <xbt/PropertyHolder.hpp>
#ifndef SIMGRID_SURF_CPUCAS01_HPP
#define SIMGRID_SURF_CPUCAS01_HPP
-#include "cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "xbt/base.h"
/***********
#ifndef SURF_MODEL_CPUTI_H_
#define SURF_MODEL_CPUTI_H_
-#include "cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/kernel/resource/profile/Profile.hpp"
#include <boost/intrusive/list.hpp>
#include <memory>
#include <simgrid/s4u/Engine.hpp>
-#include "src/surf/cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/surf/network_interface.hpp"
#include "src/surf/surf_interface.hpp"
#include "src/surf/xml/platf.hpp"
#include "simgrid/kernel/routing/NetZoneImpl.hpp" // full type for NetZoneImpl object
#include "simgrid/s4u/Engine.hpp"
#include "simgrid/zone.h"
-#include "src/surf/cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/surf/network_interface.hpp"
#include "surf/surf.hpp"
#include "xbt/config.hpp"
#include "simgrid/s4u/Engine.hpp"
#include "simgrid/zone.h"
#include "src/kernel/EngineImpl.hpp"
-#include "src/surf/cpu_interface.hpp"
+#include "src/kernel/resource/CpuImpl.hpp"
#include "src/surf/network_interface.hpp"
#include "src/surf/surf_interface.hpp"
#include "surf/surf.hpp"
src/smpi/smpi_main.c
src/smpi/smpi_replay_main.cpp
src/surf/cpu_cas01.hpp
- src/surf/cpu_interface.hpp
src/surf/cpu_ti.hpp
src/surf/network_cm02.hpp
src/surf/network_constant.hpp
src/kernel/lmm/maxmin.cpp
src/kernel/resource/Action.cpp
- src/kernel/resource/Model.cpp
+ src/kernel/resource/CpuImpl.cpp
+ src/kernel/resource/CpuImpl.hpp
src/kernel/resource/DiskImpl.cpp
src/kernel/resource/DiskImpl.hpp
+ src/kernel/resource/Model.cpp
src/kernel/resource/Resource.hpp
src/kernel/resource/VirtualMachineImpl.hpp
src/kernel/resource/VirtualMachineImpl.cpp
src/kernel/EngineImpl.hpp
src/surf/cpu_cas01.cpp
- src/surf/cpu_interface.cpp
src/surf/cpu_ti.cpp
src/surf/disk_s19.cpp
src/surf/network_cm02.cpp