From a3f5e3d6901fbcd1857fb8cc07ad3a54bf244bde Mon Sep 17 00:00:00 2001 From: Christian Heinrich Date: Wed, 7 Feb 2018 13:54:21 +0100 Subject: [PATCH] [DVFS] Fix load calculation for Dvfs governors The HostLoad plugin computes the load as /. This means that governors sometimes decide to slow down even though one or several cores were used because too many cores were unused. --- src/surf/plugins/host_dvfs.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/surf/plugins/host_dvfs.cpp b/src/surf/plugins/host_dvfs.cpp index 985d0d8c4d..1d7336a30a 100644 --- a/src/surf/plugins/host_dvfs.cpp +++ b/src/surf/plugins/host_dvfs.cpp @@ -81,7 +81,8 @@ public: { double load = sg_host_get_current_load(host); - if (load > freq_up_threshold) { + // FIXME I don't like that we multiply with the getCoreCount() just here... + if (load*host->getCoreCount() > freq_up_threshold) { host->setPstate(0); /* Run at max. performance! */ XBT_INFO("Changed to pstate %f", 0.0); } else { @@ -109,7 +110,7 @@ public: void update() { - double load = sg_host_get_current_load(host); + double load = sg_host_get_current_load(host)*host->getCoreCount(); int pstate = host->getPstate(); if (load > freq_up_threshold) { -- 2.20.1