ruby: Make sure addresses print in hex
authorJason Lowe-Power <jason@lowepower.com>
Thu, 27 Jul 2017 16:50:06 +0000 (11:50 -0500)
committerJason Lowe-Power <jason@lowepower.com>
Fri, 23 Mar 2018 17:49:06 +0000 (17:49 +0000)
Added fix in the invalid transition panic and various places in ruby
random tester.

Change-Id: I879264da58369faf7de49d1a28b2da1cb935ef0a
Signed-off-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-on: https://gem5-review.googlesource.com/8941
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
src/cpu/testers/rubytest/Check.cc
src/mem/slicc/symbols/StateMachine.py

index e68196c65aeb5a60fa4edb0b5f68782cb6033589..2ce79e72d29b49f03cfdf326b856fd50f8ead003 100644 (file)
@@ -209,7 +209,7 @@ Check::initiateAction()
         DPRINTF(RubyTest, "status before action update: %s\n",
                 (TesterStatus_to_string(m_status)).c_str());
         m_status = TesterStatus_Action_Pending;
-        DPRINTF(RubyTest, "Check %s, State=Action_Pending\n", m_address);
+        DPRINTF(RubyTest, "Check %#x, State=Action_Pending\n", m_address);
     } else {
         // If the packet did not issue, must delete
         // Note: No need to delete the data, the packet destructor
@@ -263,7 +263,7 @@ Check::initiateCheck()
         DPRINTF(RubyTest, "status before check update: %s\n",
                 TesterStatus_to_string(m_status).c_str());
         m_status = TesterStatus_Check_Pending;
-        DPRINTF(RubyTest, "Check %s, State=Check_Pending\n", m_address);
+        DPRINTF(RubyTest, "Check %#x, State=Check_Pending\n", m_address);
     } else {
         // If the packet did not issue, must delete
         // Note: No need to delete the data, the packet destructor
@@ -301,10 +301,10 @@ Check::performCallback(NodeID proc, SubBlock* data, Cycles curTime)
         m_store_count++;
         if (m_store_count == CHECK_SIZE) {
             m_status = TesterStatus_Ready;
-            DPRINTF(RubyTest, "Check %s, State=Ready\n", m_address);
+            DPRINTF(RubyTest, "Check %#x, State=Ready\n", m_address);
         } else {
             m_status = TesterStatus_Idle;
-            DPRINTF(RubyTest, "Check %s, State=Idle store_count: %d\n",
+            DPRINTF(RubyTest, "Check %#x, State=Idle store_count: %d\n",
                     m_address, m_store_count);
         }
         DPRINTF(RubyTest, "Action callback return data now %d\n",
@@ -314,7 +314,7 @@ Check::performCallback(NodeID proc, SubBlock* data, Cycles curTime)
         // Perform load/check
         for (int byte_number=0; byte_number<CHECK_SIZE; byte_number++) {
             if (uint8_t(m_value + byte_number) != data->getByte(byte_number)) {
-                panic("Action/check failure: proc: %d address: %s data: %s "
+                panic("Action/check failure: proc: %d address: %#x data: %s "
                       "byte_number: %d m_value+byte_number: %d byte: %d %s"
                       "Time: %d\n",
                       proc, address, data, byte_number,
@@ -329,7 +329,7 @@ Check::performCallback(NodeID proc, SubBlock* data, Cycles curTime)
         m_tester_ptr->incrementCheckCompletions();
 
         m_status = TesterStatus_Idle;
-        DPRINTF(RubyTest, "Check %s, State=Idle\n", m_address);
+        DPRINTF(RubyTest, "Check %#x, State=Idle\n", m_address);
         pickValue();
 
     } else {
@@ -349,7 +349,7 @@ Check::changeAddress(Addr address)
     assert(m_status == TesterStatus_Idle || m_status == TesterStatus_Ready);
     m_status = TesterStatus_Idle;
     m_address = address;
-    DPRINTF(RubyTest, "Check %s, State=Idle\n", m_address);
+    DPRINTF(RubyTest, "Check %#x, State=Idle\n", m_address);
     m_store_count = 0;
 }
 
@@ -367,7 +367,7 @@ Check::pickInitiatingNode()
     assert(m_status == TesterStatus_Idle || m_status == TesterStatus_Ready);
     m_status = TesterStatus_Idle;
     m_initiatingNode = (random_mt.random(0, m_num_writers - 1));
-    DPRINTF(RubyTest, "Check %s, State=Idle, picked initiating node %d\n",
+    DPRINTF(RubyTest, "Check %#x, State=Idle, picked initiating node %d\n",
             m_address, m_initiatingNode);
     m_store_count = 0;
 }
index 3f4e43a8be7e4eaa1acea0980e641c52dbb9b422..e63f6fc602894873778b418b4a40021e1866bb97 100644 (file)
@@ -1400,7 +1400,7 @@ if (!checkResourceAvailable(%s_RequestType_%s, addr)) {
         code('''
       default:
         panic("Invalid transition\\n"
-              "%s time: %d addr: %s event: %s state: %s\\n",
+              "%s time: %d addr: %#x event: %s state: %s\\n",
               name(), curCycle(), addr, event, state);
     }