mem: Make the XBar responsible for tracking response routing
[gem5.git] / src / sim / clock_domain.cc
index 746ef12fd554c4ba52af40e30db2b37653bd6ff8..8f45bba0930138397a24c0b7665c56c39f16dae0 100644 (file)
@@ -136,6 +136,11 @@ SrcClockDomain::perfLevel(PerfLevel perf_level)
 {
     assert(validPerfLevel(perf_level));
 
+    if (perf_level == _perfLevel) {
+        // Silently ignore identical overwrites
+        return;
+    }
+
     DPRINTF(ClockDomain, "DVFS: Switching performance level of domain %s "\
             "(id: %d) from  %d to %d\n", name(), domainID(), _perfLevel,
             perf_level);
@@ -162,6 +167,13 @@ SrcClockDomain::unserialize(Checkpoint *cp, const std::string &section)
 {
     ClockDomain::unserialize(cp, section);
     UNSERIALIZE_SCALAR(_perfLevel);
+}
+
+void
+SrcClockDomain::startup()
+{
+    // Perform proper clock update when all related components have been
+    // created (i.e. after unserialization / object creation)
     perfLevel(_perfLevel);
 }