-/* Copyright (c) 2013-2017. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2013-2018. 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. */
CpuAction* action = static_cast<CpuAction*>(actionHeapPop());
XBT_CDEBUG(surf_kernel, "Something happened to action %p", action);
if (TRACE_is_enabled()) {
- Cpu *cpu = static_cast<Cpu*>(lmm_constraint_id(lmm_get_cnst_from_var(getMaxminSystem(), action->getVariable(), 0)));
- TRACE_surf_host_set_utilization(cpu->getCname(), action->getCategory(),
- lmm_variable_getvalue(action->getVariable()), action->getLastUpdate(),
- now - action->getLastUpdate());
+ Cpu* cpu = static_cast<Cpu*>(action->getVariable()->get_constraint(0)->get_id());
+ TRACE_surf_host_set_utilization(cpu->getCname(), action->get_category(), action->getVariable()->get_value(),
+ action->getLastUpdate(), now - action->getLastUpdate());
}
- action->finish(Action::State::done);
+ action->finish(kernel::resource::Action::State::done);
XBT_CDEBUG(surf_kernel, "Action %p finished", action);
/* set the remains to 0 due to precision problems when updating the remaining amount */
- action->setRemains(0);
+ action->set_remains(0);
}
if (TRACE_is_enabled()) {
//defining the last timestamp that we can safely dump to trace file
//without losing the event ascending order (considering all CPU's)
double smaller = -1;
- for (Action const& action : *getRunningActionSet()) {
+ for (kernel::resource::Action const& action : *getRunningActionSet()) {
if (smaller < 0 || action.getLastUpdate() < smaller)
smaller = action.getLastUpdate();
}
CpuAction& action = static_cast<CpuAction&>(*it);
++it; // increment iterator here since the following calls to action.finish() may invalidate it
if (TRACE_is_enabled()) {
- Cpu* cpu =
- static_cast<Cpu*>(lmm_constraint_id(lmm_get_cnst_from_var(getMaxminSystem(), action.getVariable(), 0)));
-
- TRACE_surf_host_set_utilization(cpu->getCname(), action.getCategory(),
- lmm_variable_getvalue(action.getVariable()), now - delta, delta);
+ Cpu* cpu = static_cast<Cpu*>(action.getVariable()->get_constraint(0)->get_id());
+ TRACE_surf_host_set_utilization(cpu->getCname(), action.get_category(), action.getVariable()->get_value(),
+ now - delta, delta);
TRACE_last_timestamp_to_dump = now - delta;
}
- action.updateRemains(lmm_variable_getvalue(action.getVariable()) * delta);
+ action.update_remains(action.getVariable()->get_value() * delta);
- if (action.getMaxDuration() != NO_MAX_DURATION)
- action.updateMaxDuration(delta);
+ if (action.get_max_duration() != NO_MAX_DURATION)
+ action.update_max_duration(delta);
- if (((action.getRemainsNoUpdate() <= 0) && (lmm_get_variable_weight(action.getVariable()) > 0)) ||
- ((action.getMaxDuration() != NO_MAX_DURATION) && (action.getMaxDuration() <= 0))) {
- action.finish(Action::State::done);
+ if (((action.get_remains_no_update() <= 0) && (action.getVariable()->get_weight() > 0)) ||
+ ((action.get_max_duration() != NO_MAX_DURATION) && (action.get_max_duration() <= 0))) {
+ action.finish(kernel::resource::Action::State::done);
}
}
}
/************
* Resource *
************/
-Cpu::Cpu(Model *model, simgrid::s4u::Host *host, std::vector<double> *speedPerPstate, int core)
- : Cpu(model, host, nullptr/*constraint*/, speedPerPstate, core)
+Cpu::Cpu(kernel::resource::Model* model, simgrid::s4u::Host* host, std::vector<double>* speedPerPstate, int core)
+ : Cpu(model, host, nullptr /*constraint*/, speedPerPstate, core)
{
}
-Cpu::Cpu(Model* model, simgrid::s4u::Host* host, lmm_constraint_t constraint, std::vector<double>* speedPerPstate,
- int core)
+Cpu::Cpu(kernel::resource::Model* model, simgrid::s4u::Host* host, kernel::lmm::Constraint* constraint,
+ std::vector<double>* speedPerPstate, int core)
: Resource(model, host->getCname(), constraint), coresAmount_(core), host_(host)
{
xbt_assert(core > 0, "Host %s must have at least one core, not 0.", host->getCname());
void CpuAction::updateRemainingLazy(double now)
{
- xbt_assert(getStateSet() == getModel()->getRunningActionSet(), "You're updating an action that is not running.");
- xbt_assert(getPriority() > 0, "You're updating an action that seems suspended.");
+ xbt_assert(get_state_set() == get_model()->getRunningActionSet(), "You're updating an action that is not running.");
+ xbt_assert(get_priority() > 0, "You're updating an action that seems suspended.");
double delta = now - getLastUpdate();
- if (getRemainsNoUpdate() > 0) {
- XBT_CDEBUG(surf_kernel, "Updating action(%p): remains was %f, last_update was: %f", this, getRemainsNoUpdate(),
+ if (get_remains_no_update() > 0) {
+ XBT_CDEBUG(surf_kernel, "Updating action(%p): remains was %f, last_update was: %f", this, get_remains_no_update(),
getLastUpdate());
- updateRemains(getLastValue() * delta);
+ update_remains(getLastValue() * delta);
if (TRACE_is_enabled()) {
- Cpu *cpu = static_cast<Cpu*>(lmm_constraint_id(lmm_get_cnst_from_var(getModel()->getMaxminSystem(), getVariable(), 0)));
- TRACE_surf_host_set_utilization(cpu->getCname(), getCategory(), getLastValue(), getLastUpdate(),
+ Cpu* cpu = static_cast<Cpu*>(getVariable()->get_constraint(0)->get_id());
+ TRACE_surf_host_set_utilization(cpu->getCname(), get_category(), getLastValue(), getLastUpdate(),
now - getLastUpdate());
}
- XBT_CDEBUG(surf_kernel, "Updating action(%p): remains is now %f", this, getRemainsNoUpdate());
+ XBT_CDEBUG(surf_kernel, "Updating action(%p): remains is now %f", this, get_remains_no_update());
}
refreshLastUpdate();
- setLastValue(lmm_variable_getvalue(getVariable()));
+ setLastValue(getVariable()->get_value());
}
-simgrid::xbt::signal<void(simgrid::surf::CpuAction*, Action::State)> CpuAction::onStateChange;
+simgrid::xbt::signal<void(simgrid::surf::CpuAction*, kernel::resource::Action::State)> CpuAction::onStateChange;
void CpuAction::suspend(){
- Action::State previous = getState();
+ Action::State previous = get_state();
onStateChange(this, previous);
Action::suspend();
}
void CpuAction::resume(){
- Action::State previous = getState();
+ Action::State previous = get_state();
onStateChange(this, previous);
Action::resume();
}
-void CpuAction::setState(Action::State state){
- Action::State previous = getState();
- Action::setState(state);
+void CpuAction::set_state(Action::State state)
+{
+ Action::State previous = get_state();
+ Action::set_state(state);
onStateChange(this, previous);
}
/** @brief returns a list of all CPUs that this action is using */
std::list<Cpu*> CpuAction::cpus() {
std::list<Cpu*> retlist;
- lmm_system_t sys = getModel()->getMaxminSystem();
- int llen = lmm_get_number_of_cnst_from_var(sys, getVariable());
+ int llen = getVariable()->get_number_of_constraint();
for (int i = 0; i < llen; i++) {
/* Beware of composite actions: ptasks put links and cpus together */
// extra pb: we cannot dynamic_cast from void*...
- Resource* resource = static_cast<Resource*>(lmm_constraint_id(lmm_get_cnst_from_var(sys, getVariable(), i)));
+ kernel::resource::Resource* resource =
+ static_cast<kernel::resource::Resource*>(getVariable()->get_constraint(i)->get_id());
Cpu* cpu = dynamic_cast<Cpu*>(resource);
if (cpu != nullptr)
retlist.push_back(cpu);