ruby: cleaning up RubyQueue and RubyNetwork dprintfs
authorKorey Sewell <ksewell@umich.edu>
Wed, 23 Feb 2011 05:58:40 +0000 (00:58 -0500)
committerKorey Sewell <ksewell@umich.edu>
Wed, 23 Feb 2011 05:58:40 +0000 (00:58 -0500)
Overall, continue to progress Ruby debug messages to more of the normal M5
debug message style
- add a name() to the Ruby Throttle & PerfectSwitch objects so that the debug output
isn't littered w/"global:" everywhere.
- clean up messages that print over multiple lines when possible
- clean up duplicate prints in the message buffer

src/mem/ruby/buffers/MessageBuffer.cc
src/mem/ruby/buffers/MessageBuffer.hh
src/mem/ruby/common/NetDest.hh
src/mem/ruby/network/simple/PerfectSwitch.cc
src/mem/ruby/network/simple/PerfectSwitch.hh
src/mem/ruby/network/simple/Throttle.cc
src/mem/ruby/network/simple/Throttle.hh

index 2255950053006cd10b1a61d78632d33f080ed025..793e28857dc0cbce0685ede81640a8269cdb0d79 100644 (file)
@@ -125,8 +125,8 @@ MessageBuffer::getMsgPtrCopy() const
 const Message*
 MessageBuffer::peekAtHeadOfQueue() const
 {
-    DPRINTF(RubyQueue, "Peeking at head of queue %s time: %lld\n",
-            m_name, g_eventQueue_ptr->getTime());
+    DPRINTF(RubyQueue, "Peeking at head of queue time: %lld\n",
+            g_eventQueue_ptr->getTime());
     assert(isReady());
 
     const Message* msg_ptr = m_prio_heap.front().m_msgptr.get();
@@ -151,9 +151,6 @@ random_time()
 void
 MessageBuffer::enqueue(MsgPtr message, Time delta)
 {
-    DPRINTF(RubyQueue, "Enqueue %s time: %lld, message: %s.\n",
-            m_name, g_eventQueue_ptr->getTime(), (*(message.get())));
-
     m_msg_counter++;
     m_size++;
 
@@ -222,10 +219,9 @@ MessageBuffer::enqueue(MsgPtr message, Time delta)
     push_heap(m_prio_heap.begin(), m_prio_heap.end(),
         greater<MessageBufferNode>());
 
-    DPRINTF(RubyQueue, "Enqueue %s with arrival_time %lld cur_time: %lld, "
-            "message: %s.\n",
-            m_name, arrival_time, g_eventQueue_ptr->getTime(),
-            (*(message.get())));
+    DPRINTF(RubyQueue, "Enqueue with arrival_time %lld (cur_time: %lld).\n",
+            arrival_time, g_eventQueue_ptr->getTime());
+    DPRINTF(RubyQueue, "Enqueue Message: %s.\n", (*(message.get())));
 
     // Schedule the wakeup
     if (m_consumer_ptr != NULL) {
@@ -253,7 +249,7 @@ MessageBuffer::dequeue_getDelayCycles(MsgPtr& message)
 void
 MessageBuffer::dequeue(MsgPtr& message)
 {
-    DPRINTF(RubyQueue, "Dequeue from %s\n", m_name);
+    DPRINTF(RubyQueue, "Dequeueing\n");
     message = m_prio_heap.front().m_msgptr;
 
     pop();
@@ -280,7 +276,7 @@ MessageBuffer::dequeue_getDelayCycles()
 void
 MessageBuffer::pop()
 {
-    DPRINTF(RubyQueue, "Pop from %s\n", m_name);
+    DPRINTF(RubyQueue, "Popping\n");
     assert(isReady());
     pop_heap(m_prio_heap.begin(), m_prio_heap.end(),
         greater<MessageBufferNode>());
@@ -311,7 +307,7 @@ MessageBuffer::clear()
 void
 MessageBuffer::recycle()
 {
-    DPRINTF(RubyQueue, "Recycling %s\n", m_name);
+    DPRINTF(RubyQueue, "Recycling.\n");
     assert(isReady());
     MessageBufferNode node = m_prio_heap.front();
     pop_heap(m_prio_heap.begin(), m_prio_heap.end(),
@@ -327,7 +323,7 @@ MessageBuffer::recycle()
 void
 MessageBuffer::reanalyzeMessages(const Address& addr)
 {
-    DPRINTF(RubyQueue, "ReanalyzeMessages %s\n", m_name);
+    DPRINTF(RubyQueue, "ReanalyzeMessages\n");
     assert(m_stall_msg_map.count(addr) > 0);
 
     //
@@ -353,7 +349,7 @@ MessageBuffer::reanalyzeMessages(const Address& addr)
 void
 MessageBuffer::reanalyzeAllMessages()
 {
-    DPRINTF(RubyQueue, "ReanalyzeAllMessages %s\n", m_name);
+    DPRINTF(RubyQueue, "ReanalyzeAllMessages %s\n");
 
     //
     // Put all stalled messages associated with this address back on the
@@ -384,7 +380,7 @@ MessageBuffer::reanalyzeAllMessages()
 void
 MessageBuffer::stallMessage(const Address& addr)
 {
-    DPRINTF(RubyQueue, "Stalling %s\n", m_name);
+    DPRINTF(RubyQueue, "Stalling %s\n");
     assert(isReady());
     assert(addr.getOffset() == 0);
     MsgPtr message = m_prio_heap.front().m_msgptr;
@@ -421,14 +417,14 @@ MessageBuffer::setAndReturnDelayCycles(MsgPtr msg_ptr)
 void
 MessageBuffer::print(ostream& out) const
 {
-    out << "[MessageBuffer: ";
+    ccprintf(out, "[MessageBuffer: ");
     if (m_consumer_ptr != NULL) {
-        out << " consumer-yes ";
+        ccprintf(out, " consumer-yes ");
     }
 
     vector<MessageBufferNode> copy(m_prio_heap);
     sort_heap(copy.begin(), copy.end(), greater<MessageBufferNode>());
-    out << copy << "] " << m_name << endl;
+    ccprintf(out, "%s] %s", copy, m_name);
 }
 
 void
index 88df5b788e23d14543a23e5d8ead596856092b92..a59b8207725e01517824cfac65199d7bfd1b2dea 100644 (file)
@@ -53,6 +53,8 @@ class MessageBuffer
   public:
     MessageBuffer(const std::string &name = "");
 
+    std::string name() const { return m_name; }
+
     static void printConfig(std::ostream& out) {}
     void
     setRecycleLatency(int recycle_latency)
index dc4a54965565fd2d7ff334b8e36fcc5aa43b6fd9..b5c57157776423d8046e5456cdda999b390a3a7e 100644 (file)
@@ -54,9 +54,7 @@ class NetDest
     NetDest& operator=(const Set& obj);
 
     ~NetDest()
-    {
-        DPRINTF(RubyMemory, "NetDest Destructor\n");
-    }
+    { }
 
     void add(MachineID newElement);
     void addNetDest(const NetDest& netDest);
index 5c461c63fe7be542c1c50a6097d9d311bf01d08d..9f197f4cd2982bb75b4078c5a2cedb2b70a7e085 100644 (file)
@@ -131,8 +131,6 @@ PerfectSwitch::~PerfectSwitch()
 void
 PerfectSwitch::wakeup()
 {
-    DPRINTF(RubyNetwork, "m_switch_id: %d\n",m_switch_id);
-
     MsgPtr msg_ptr;
 
     // Give the highest numbered link priority most of the time
@@ -255,7 +253,7 @@ PerfectSwitch::wakeup()
                         int outgoing = output_links[i];
                         if (!m_out[outgoing][vnet]->areNSlotsAvailable(1))
                             enough = false;
-                        DPRINTF(RubyNetwork, "Checking if node is blocked\n"
+                        DPRINTF(RubyNetwork, "Checking if node is blocked ..."
                                 "outgoing: %d, vnet: %d, enough: %d\n",
                                 outgoing, vnet, enough);
                     }
@@ -264,8 +262,8 @@ PerfectSwitch::wakeup()
                     if (!enough) {
                         g_eventQueue_ptr->scheduleEvent(this, 1);
                         DPRINTF(RubyNetwork, "Can't deliver message since a node "
-                                "is blocked\n"
-                                "Message: %s\n", (*net_msg_ptr));
+                                "is blocked\n");
+                        DPRINTF(RubyNetwork, "Message: %s\n", (*net_msg_ptr));
                         break; // go to next incoming port
                     }
 
@@ -302,9 +300,9 @@ PerfectSwitch::wakeup()
                             output_link_destinations[i];
 
                         // Enqeue msg
-                        DPRINTF(RubyNetwork, "Switch: %d enqueuing net msg from "
+                        DPRINTF(RubyNetwork, "%d enqueuing net msg from "
                                 "inport[%d][%d] to outport [%d][%d] time: %lld.\n",
-                                m_switch_id, incoming, vnet, outgoing, vnet,
+                                incoming, vnet, outgoing, vnet,
                                 g_eventQueue_ptr->getTime());
 
                         m_out[outgoing][vnet]->enqueue(msg_ptr);
index cd0219fd9f1af4d3ec314461af191189fa5558a0..41125083f690b7cb120e4bfaa6717e0e1015da39 100644 (file)
@@ -38,6 +38,7 @@
 
 #include <iostream>
 #include <vector>
+#include <string>
 
 #include "mem/ruby/common/Consumer.hh"
 #include "mem/ruby/common/Global.hh"
@@ -59,6 +60,9 @@ class PerfectSwitch : public Consumer
     PerfectSwitch(SwitchID sid, SimpleNetwork* network_ptr);
     ~PerfectSwitch();
 
+    std::string name()
+    { return csprintf("PerfectSwitch-%i", m_switch_id); }
+
     void addInPort(const std::vector<MessageBuffer*>& in);
     void addOutPort(const std::vector<MessageBuffer*>& out,
         const NetDest& routing_table_entry);
index 55e5b4e78560e96aa5adcba00678a7e77f2c9690..28638cca91fcf9ae0602be954dde90a9ee9d54af 100644 (file)
@@ -250,8 +250,7 @@ Throttle::getUtilization() const
 void
 Throttle::print(ostream& out) const
 {
-    out << "[Throttle: " << m_sID << " " << m_node
-        << " bw: " << getLinkBandwidth() << "]";
+    ccprintf(out,  "[%i bw: %i]", m_node, getLinkBandwidth());
 }
 
 int
index c80f24d77fb4aea19689358bb424ec83dc080060..b4e6c867ebc8617326963787e238e2fd6d3894b5 100644 (file)
@@ -40,6 +40,7 @@
 
 #include <iostream>
 #include <vector>
+#include <string>
 
 #include "mem/ruby/common/Consumer.hh"
 #include "mem/ruby/common/Global.hh"
@@ -57,6 +58,9 @@ class Throttle : public Consumer
     Throttle(NodeID node, int link_latency, int link_bandwidth_multiplier);
     ~Throttle() {}
 
+    std::string name()
+    { return csprintf("Throttle-%i", m_sID); }
+
     void addLinks(const std::vector<MessageBuffer*>& in_vec,
         const std::vector<MessageBuffer*>& out_vec);
     void wakeup();