virtual void turn_on();
/** @brief Turn off the current Resource */
virtual void turn_off();
+ /** @brief setup the trace file with states events (ON or OFF). Trace must contain boolean values. */
+ virtual void set_state_trace(tmgr_trace_t trace);
private:
std::string name_;
private:
kernel::lmm::Constraint* const constraint_ = nullptr;
+public:
+ TraceEvent* state_event_ = nullptr;
+
protected:
struct Metric {
double peak; /**< The peak of the metric, ie its max value */
#include "simgrid/kernel/resource/Resource.hpp"
#include "src/kernel/lmm/maxmin.hpp" // Constraint
#include "src/surf/surf_interface.hpp"
+#include "src/surf/trace_mgr.hpp"
namespace simgrid {
namespace kernel {
return name_ == other.name_;
}
+void Resource::set_state_trace(tmgr_trace_t trace)
+{
+ xbt_assert(state_event_ == nullptr, "Cannot set a second state trace to %s", get_cname());
+
+ state_event_ = future_evt_set->add_trace(trace, this);
+}
+
kernel::lmm::Constraint* Resource::get_constraint() const
{
return constraint_;
return core_count_;
}
-void Cpu::set_state_trace(tmgr_trace_t trace)
-{
- xbt_assert(state_event_ == nullptr, "Cannot set a second state trace to Host %s", host_->get_cname());
-
- state_event_ = future_evt_set->add_trace(trace, this);
-}
void Cpu::set_speed_trace(tmgr_trace_t trace)
{
xbt_assert(speed_.event == nullptr, "Cannot set a second speed trace to Host %s", host_->get_cname());
std::vector<double> speed_per_pstate_; /*< List of supported CPU capacities (pstate related) */
public:
- /** @brief Setup the trace file with states events (ON or OFF).
- * Trace must contain boolean values (0 or 1).
- */
- virtual void set_state_trace(tmgr_trace_t trace);
/*< @brief Setup the trace file with availability events (peak speed changes due to external load).
* Trace must contain relative values (ratio between 0 and 1)
*/
virtual void set_speed_trace(tmgr_trace_t trace);
protected:
- tmgr_trace_event_t state_event_ = nullptr;
Metric speed_ = {1.0, 0, nullptr};
};
s4u::Link::on_bandwidth_change(this->piface_);
}
-void LinkImpl::set_state_trace(tmgr_trace_t trace)
-{
- xbt_assert(state_event_ == nullptr, "Cannot set a second state trace to Link %s", get_cname());
- state_event_ = future_evt_set->add_trace(trace, this);
-}
void LinkImpl::set_bandwidth_trace(tmgr_trace_t trace)
{
xbt_assert(bandwidth_.event == nullptr, "Cannot set a second bandwidth trace to Link %s", get_cname());
bandwidth_.event = future_evt_set->add_trace(trace, this);
}
+
void LinkImpl::set_latency_trace(tmgr_trace_t trace)
{
xbt_assert(latency_.event == nullptr, "Cannot set a second latency trace to Link %s", get_cname());
void on_bandwidth_change();
- virtual void set_state_trace(tmgr_trace_t trace); /*< setup the trace file with states events (ON or OFF).
- Trace must contain boolean values. */
virtual void set_bandwidth_trace(
tmgr_trace_t trace); /*< setup the trace file with bandwidth events (peak speed changes due to external load).
Trace must contain percentages (value between 0 and 1). */
tmgr_trace_t trace); /*< setup the trace file with latency events (peak latency changes due to external load).
Trace must contain absolute values */
- tmgr_trace_event_t state_event_ = nullptr;
Metric latency_ = {1.0, 0, nullptr};
Metric bandwidth_ = {1.0, 0, nullptr};