X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8a18a39ea4a00e51fc7c6d2f06a4c0c98fb79759..50d21aeadf6cf0fb44e217c9f0303bd44022758d:/src/surf/plugins/host_dvfs.cpp diff --git a/src/surf/plugins/host_dvfs.cpp b/src/surf/plugins/host_dvfs.cpp index 985d0d8c4d..d7cd83f393 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 { @@ -93,6 +94,8 @@ public: * lowest_pstate - load*pstatesCount() */ int max_pstate = host->getPstatesCount() - 1; + int new_pstate = max_pstate - load * max_pstate; + host->setPstate(new_pstate); host->setPstate(max_pstate - load * max_pstate); XBT_INFO("Changed to pstate %f -- check: %i", max_pstate - load * max_pstate, host->getPstate()); @@ -109,7 +112,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) {