dev: Use shared_ptr for Arguments::Data
[gem5.git] / src / sim / voltage_domain.cc
index b5673feda249d920347d7fd5c2777fe6d06b1ddd..2b16d04b9c5918f2c7565665cca83d6c34b838a8 100644 (file)
@@ -54,9 +54,9 @@ VoltageDomain::VoltageDomain(const Params *p)
 
     // Voltages must be sorted in descending order.
     fatal_if(!std::is_sorted(voltageOpPoints.begin(), voltageOpPoints.end(),
-             std::greater_equal<Voltages::value_type>()), "DVFS: Voltage "\
-             "operation points not in descending order for voltage domain "\
-             "%s\n", name());
+             std::greater<Voltages::value_type>()), "DVFS: Voltage operation "\
+             "points not in descending order for voltage domain %s\n",
+             name());
 }
 
 void
@@ -66,6 +66,11 @@ VoltageDomain::perfLevel(PerfLevel perf_level)
                   "DVFS: Requested voltage ID %d is outside the known "\
                   "range for domain %s.\n", perf_level, name());
 
+    if (perf_level == _perfLevel) {
+        // Silently ignore identical overwrites
+        return;
+    }
+
     _perfLevel = perf_level;
 
     DPRINTF(VoltageDomain, "Setting voltage to %.3fV idx: %d for domain %s\n",