ruby: bug in functionalRead, revert recent changes
authorNilay Vaish <nilay@cs.wisc.edu>
Sat, 10 Nov 2012 23:18:00 +0000 (17:18 -0600)
committerNilay Vaish <nilay@cs.wisc.edu>
Sat, 10 Nov 2012 23:18:00 +0000 (17:18 -0600)
Recent changes to functionalRead() in the memory system was not correct.
The change allowed for returning data from the first message found in
the buffers of the memory system. This is not correct since it is possible
that a timing message has data from an older state of the block.

The changes are being reverted.

src/mem/ruby/system/System.cc

index bbdcb3ebbbe587f0b348b342e069f23529acc0d5..65bad07b3e752abc364aa720acd37fc7d44e3750 100644 (file)
@@ -495,26 +495,6 @@ RubySystem::functionalRead(PacketPtr pkt)
         }
     }
 
-    // Since we are here, this means that none of the controllers hold this
-    // address in a stable/base state. The function searches through all the
-    // buffers that exist in different cache, directory and memory
-    // controllers, and in the network components and reads the data portion
-    // of the first message that holds address specified in the packet.
-    for (unsigned int i = 0; i < num_controllers;++i) {
-        if (m_abs_cntrl_vec[i]->functionalReadBuffers(pkt)) {
-            return true;
-        }
-    }
-
-    for (unsigned int i = 0; i < m_memory_controller_vec.size(); ++i) {
-        if (m_memory_controller_vec[i]->functionalReadBuffers(pkt)) {
-            return true;
-        }
-    }
-
-    if (m_network_ptr->functionalRead(pkt)) {
-        return true;
-    }
     return false;
 }