-/* Copyright (c) 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2009-2013. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
if (!power_trace) {
trace->type = TRACE_FIXED;
trace->value = value;
- XBT_DEBUG("No availabily trace. Constant value = %lf", value);
+ XBT_DEBUG("No availability trace. Constant value = %lf", value);
return trace;
}
name);
xbt_assert(core==1,"Multi-core not handled with this model yet");
cpu = (cpu_ti_t) surf_resource_new(sizeof(s_cpu_ti_t),
- surf_cpu_model, name,cpu_properties);
+ surf_cpu_model, name,cpu_properties, NULL);
cpu->action_set =
xbt_swag_new(xbt_swag_offset(ti_action, cpu_list_hookup));
-
xbt_dynar_get_cpy(power_peak, 0, &cpu->power_peak);
+ xbt_dynar_free(&power_peak); /* kill memory leak */
//cpu->power_peak = power_peak;
cpu->pstate = pstate;
XBT_DEBUG("CPU create: peak=%lf, pstate=%d",cpu->power_peak, cpu->pstate);
/* set the remains to 0 due to precision problems when updating the remaining amount */
GENERIC_ACTION(action).remains = 0;
cpu_ti_action_state_set((surf_action_t) action, SURF_ACTION_DONE);
- /* update remaining amout of all actions */
+ /* update remaining amount of all actions */
cpu_ti_update_remaining_amount(surf_cpu_resource_priv(action->cpu), surf_get_clock());
}
#undef GENERIC_ACTION
cpu_ti_t cpu = id;
surf_action_cpu_ti_t action;
- surf_watched_hosts();
-
if (event_type == cpu->power_event) {
tmgr_trace_t power_trace;
surf_cpu_ti_tgmr_t trace;
cpu->power_event = NULL;
} else if (event_type == cpu->state_event) {
- if (value > 0)
+ if (value > 0) {
+ if(cpu->state_current == SURF_RESOURCE_OFF)
+ xbt_dynar_push_as(host_that_restart, char*, (cpu->generic_resource.name));
cpu->state_current = SURF_RESOURCE_ON;
- else {
+ } else {
cpu->state_current = SURF_RESOURCE_OFF;
/* put all action running on cpu to failed */