From: Christian Heinrich Date: Wed, 7 Feb 2018 12:54:21 +0000 (+0100) Subject: [DVFS] Fix load calculation for Dvfs governors X-Git-Tag: v3.19~214 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/a3f5e3d6901fbcd1857fb8cc07ad3a54bf244bde?ds=sidebyside [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. --- 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) {