xbt_assert(cpu_energy_it != surf_energy->end(), "The cpu is not in surf_energy.");
CpuEnergy *cpu_energy = cpu_energy_it->second;
- if (cpu->getState() == SURF_RESOURCE_OFF)
- update_consumption_off(cpu, cpu_energy);
- else
- update_consumption_running(cpu, cpu_energy);
+ update_consumption(cpu, cpu_energy);
- XBT_INFO("Total energy of host %s: %f Joules", cpu->getName(), cpu_energy->getConsumedEnergy());
- delete cpu_energy_it->second;
- surf_energy->erase(cpu_energy_it);
+ // Adrien - October 2015, Changes related to VM energy extensions
+ // Only report/delete and erase if the cpu_energy is related to a physical one
+ if(cpu->isVirtual() == NULL){
+ XBT_INFO("Total energy of host %s: %f Joules", cpu->getName(), cpu_energy->getConsumedEnergy());
+ delete cpu_energy_it->second;
+ surf_energy->erase(cpu_energy_it);
+ }
+
}
static void energyCpuActionStateChangedCallback(CpuAction *action, e_surf_action_state_t old, e_surf_action_state_t cur){
Cpu *cpu = getActionCpu(action);
+
CpuEnergy *cpu_energy = (*surf_energy)[cpu];
- if(cpu_energy->last_updated < surf_get_clock()) {
- update_consumption_running(cpu, cpu_energy);
- }
+ if(cpu_energy->last_updated < surf_get_clock())
+ update_consumption(cpu, cpu_energy);
}
static void energyStateChangedCallback(Cpu *cpu, e_surf_resource_state_t oldState, e_surf_resource_state_t newState){
double CpuEnergy::getConsumedEnergy()
{
-
- if(last_updated < surf_get_clock()) {
- if (cpu->getState() == SURF_RESOURCE_OFF)
- update_consumption_off(cpu, this);
- else
- update_consumption_running(cpu, this);
- }
- return total_energy;
++
+ if(last_updated < surf_get_clock())
+ update_consumption(cpu, this);
+ return total_energy;
++
}
xbt_dynar_t CpuEnergy::getWattsRangeList()