From afe124fe4b3c9b00609c62393ef020bb3b8a9d9a Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Tue, 5 Jan 2016 22:01:43 +0100 Subject: [PATCH] [energy] react sainly when the host speed is 0 (fix #44) --- src/surf/plugins/energy.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/surf/plugins/energy.cpp b/src/surf/plugins/energy.cpp index 8f5a2baeaa..0f7f72c105 100644 --- a/src/surf/plugins/energy.cpp +++ b/src/surf/plugins/energy.cpp @@ -63,9 +63,15 @@ using simgrid::energy::surf_energy; /* Computes the consumption so far. Called lazily on need. */ static void update_consumption(simgrid::surf::Host *host, HostEnergy *host_energy) { - double cpu_load = lmm_constraint_get_usage(host->p_cpu->getConstraint()) / host->p_cpu->m_speedPeak; double start_time = host_energy->last_updated; double finish_time = surf_get_clock(); + double cpu_load; + if (host->p_cpu->m_speedPeak == 0) + // Some users declare a pstate of speed 0 flops (eg to model boot time). + // We consider that the machine is then fully loaded. That's arbitrary but it avoids a NaN + cpu_load = 1; + else + cpu_load = lmm_constraint_get_usage(host->p_cpu->getConstraint()) / host->p_cpu->m_speedPeak; double previous_energy = host_energy->total_energy; -- 2.20.1