summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Binkert <nate@binkert.org>2011-01-10 11:11:20 -0800
committerNathan Binkert <nate@binkert.org>2011-01-10 11:11:20 -0800
commitbd18ac82877072a87745aaf7a104e7bb036c6c66 (patch)
tree0fb980aea5b81d79160105fbf505670be0cf5e72
parent8e262adf4fcc009776810b9795f907fcd468591c (diff)
downloadgem5-bd18ac82877072a87745aaf7a104e7bb036c6c66.tar.xz
ruby: get rid of ruby's Debug.hh
Get rid of the Debug class Get rid of ASSERT and use assert Use DPRINTFR for ProtocolTrace
-rw-r--r--configs/ruby/Ruby.py8
-rw-r--r--src/mem/SConscript1
-rw-r--r--src/mem/ruby/buffers/MessageBuffer.cc4
-rw-r--r--src/mem/ruby/buffers/MessageBuffer.hh3
-rw-r--r--src/mem/ruby/common/Debug.cc338
-rw-r--r--src/mem/ruby/common/Debug.hh162
-rw-r--r--src/mem/ruby/common/Debug.py52
-rw-r--r--src/mem/ruby/common/Global.cc5
-rw-r--r--src/mem/ruby/common/Global.hh4
-rw-r--r--src/mem/ruby/common/SConscript3
-rw-r--r--src/mem/ruby/common/Set.cc2
-rw-r--r--src/mem/ruby/eventqueue/RubyEventQueue.cc4
-rw-r--r--src/mem/ruby/filters/BulkBloomFilter.cc14
-rw-r--r--src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc6
-rw-r--r--src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc3
-rw-r--r--src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh3
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc9
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc3
-rw-r--r--src/mem/ruby/network/garnet/flexible-pipeline/flit.hh3
-rw-r--r--src/mem/ruby/network/simple/SimpleNetwork.cc5
-rw-r--r--src/mem/ruby/network/simple/Throttle.cc6
-rw-r--r--src/mem/ruby/network/simple/Topology.cc6
-rw-r--r--src/mem/ruby/profiler/Profiler.cc47
-rw-r--r--src/mem/ruby/profiler/Profiler.hh3
-rw-r--r--src/mem/ruby/slicc_interface/RubySlicc_Util.hh4
-rw-r--r--src/mem/ruby/storebuffer/storebuffer.cc15
-rw-r--r--src/mem/ruby/system/RubySystem.py1
-rw-r--r--src/mem/ruby/system/Sequencer.cc32
-rw-r--r--src/mem/ruby/system/System.cc1
-rw-r--r--src/mem/ruby/tester/DeterministicDriver.cc11
-rw-r--r--src/mem/ruby/tester/RaceyDriver.cc8
-rw-r--r--src/mem/ruby/tester/RaceyPseudoThread.cc10
-rw-r--r--src/mem/ruby/tester/test_framework.cc2
-rw-r--r--src/mem/slicc/symbols/StateMachine.py56
-rw-r--r--src/mem/slicc/symbols/Type.py1
35 files changed, 115 insertions, 720 deletions
diff --git a/configs/ruby/Ruby.py b/configs/ruby/Ruby.py
index e88e8dfb7..398a18844 100644
--- a/configs/ruby/Ruby.py
+++ b/configs/ruby/Ruby.py
@@ -50,10 +50,6 @@ def define_options(parser):
parser.add_option("--use-map", action="store_true", default=False)
parser.add_option("--map-levels", type="int", default=4)
- # ruby debug cmd line options
- parser.add_option("--ruby-debug", action="store_true", default=False)
- parser.add_option("--ruby-debug-cycle", type="int", default=1)
-
parser.add_option("--recycle-latency", type="int", default=10,
help="Recycle latency for ruby controller input buffers")
@@ -131,10 +127,6 @@ def create_system(options, system, piobus = None, dma_devices = []):
network = network,
profiler = ruby_profiler,
tracer = RubyTracer(),
- debug = RubyDebug(filter_string = 'none',
- verbosity_string = 'none',
- protocol_trace = options.ruby_debug,
- start_time = options.ruby_debug_cycle),
mem_size = total_mem_size)
ruby.cpu_ruby_ports = cpu_sequencers
diff --git a/src/mem/SConscript b/src/mem/SConscript
index f0f6facd1..6692a181e 100644
--- a/src/mem/SConscript
+++ b/src/mem/SConscript
@@ -60,6 +60,7 @@ TraceFlag('LLSC')
TraceFlag('MMU')
TraceFlag('MemoryAccess')
+TraceFlag('ProtocolTrace')
TraceFlag('RubyCache')
TraceFlag('RubyDma')
TraceFlag('RubyGenerated')
diff --git a/src/mem/ruby/buffers/MessageBuffer.cc b/src/mem/ruby/buffers/MessageBuffer.cc
index b6d755b58..656787795 100644
--- a/src/mem/ruby/buffers/MessageBuffer.cc
+++ b/src/mem/ruby/buffers/MessageBuffer.cc
@@ -26,6 +26,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <cassert>
+
#include "base/cprintf.hh"
#include "base/misc.hh"
#include "base/stl_helpers.hh"
@@ -158,7 +160,7 @@ MessageBuffer::enqueue(MsgPtr message, Time delta)
}
m_msgs_this_cycle++;
- // ASSERT(m_max_size == -1 || m_size <= m_max_size + 1);
+ // assert(m_max_size == -1 || m_size <= m_max_size + 1);
// the plus one is a kluge because of a SLICC issue
if (!m_ordering_set) {
diff --git a/src/mem/ruby/buffers/MessageBuffer.hh b/src/mem/ruby/buffers/MessageBuffer.hh
index e09abeb7d..df04d810c 100644
--- a/src/mem/ruby/buffers/MessageBuffer.hh
+++ b/src/mem/ruby/buffers/MessageBuffer.hh
@@ -35,6 +35,7 @@
#define __MEM_RUBY_BUFFERS_MESSAGEBUFFER_HH__
#include <algorithm>
+#include <cassert>
#include <functional>
#include <iostream>
#include <vector>
@@ -85,7 +86,7 @@ class MessageBuffer
void setPriority(int rank) { m_priority_rank = rank; }
void setConsumer(Consumer* consumer_ptr)
{
- ASSERT(m_consumer_ptr == NULL);
+ assert(m_consumer_ptr == NULL);
m_consumer_ptr = consumer_ptr;
}
diff --git a/src/mem/ruby/common/Debug.cc b/src/mem/ruby/common/Debug.cc
deleted file mode 100644
index 6995ef637..000000000
--- a/src/mem/ruby/common/Debug.cc
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <fstream>
-#include <stdarg.h>
-
-#include "base/misc.hh"
-#include "mem/ruby/common/Debug.hh"
-#include "mem/ruby/common/Global.hh"
-#include "mem/ruby/eventqueue/RubyEventQueue.hh"
-
-using namespace std;
-
-class Debug;
-extern Debug* g_debug_ptr;
-ostream *debug_cout_ptr;
-
-bool Debug::m_protocol_trace = false;
-struct DebugComponentData
-{
- const char *desc;
- const char ch;
-};
-
-// component character list
-DebugComponentData debugComponents[] =
-{
- {"System", 's' },
- {"Node", 'N' },
- {"Queue", 'q' },
- {"Event Queue", 'e' },
- {"Network", 'n' },
- {"Sequencer", 'S' },
- {"Tester", 't' },
- {"Generated", 'g' },
- {"SLICC", 'l' },
- {"Network Queues", 'Q' },
- {"Time", 'T' },
- {"Network Internals", 'i' },
- {"Store Buffer", 'b' },
- {"Cache", 'c' },
- {"Predictor", 'p' },
- {"Memory", 'M' },
-};
-
-extern "C" void changeDebugVerbosity(VerbosityLevel vb);
-extern "C" void changeDebugFilter(int filter);
-
-void
-changeDebugVerbosity(VerbosityLevel vb)
-{
- g_debug_ptr->setVerbosity(vb);
-}
-
-void
-changeDebugFilter(int filter)
-{
- g_debug_ptr->setFilter(filter);
-}
-
-Debug::Debug(const Params *p)
- : SimObject(p)
-{
- clearFilter();
- debug_cout_ptr = &cout;
-
- setFilterString(p->filter_string.c_str());
- setVerbosityString(p->verbosity_string.c_str());
- setDebugOutputFile(p->output_filename.c_str());
- m_starting_cycle = p->start_time;
- m_protocol_trace = p->protocol_trace;
- g_debug_ptr = this;
-}
-
-Debug::~Debug()
-{
-}
-
-void
-Debug::printVerbosity(ostream& out) const
-{
- switch (getVerbosity()) {
- case No_Verb:
- out << "verbosity = No_Verb" << endl;
- break;
- case Low_Verb:
- out << "verbosity = Low_Verb" << endl;
- break;
- case Med_Verb:
- out << "verbosity = Med_Verb" << endl;
- break;
- case High_Verb:
- out << "verbosity = High_Verb" << endl;
- break;
- default:
- out << "verbosity = unknown" << endl;
- }
-}
-
-bool
-Debug::validDebug(int module, PriorityLevel priority)
-{
- int local_module = (1 << module);
- if (m_filter & local_module) {
- if (g_eventQueue_ptr == NULL ||
- g_eventQueue_ptr->getTime() >= m_starting_cycle) {
- switch (m_verbosityLevel) {
- case No_Verb:
- return false;
- case Low_Verb:
- return (priority == HighPrio);
- case Med_Verb:
- return (priority == HighPrio || priority == MedPrio);
- case High_Verb:
- return true;
- }
- }
- }
- return false;
-}
-
-void
-Debug::setDebugTime(Time t)
-{
- m_starting_cycle = t;
-}
-
-void
-Debug::setVerbosity(VerbosityLevel vb)
-{
- m_verbosityLevel = vb;
-}
-
-void
-Debug::setFilter(int filter)
-{
- m_filter = filter;
-}
-
-bool
-Debug::setVerbosityString(const char *verb_str)
-{
- string verb = verb_str ? verb_str : "";
- if (verb == "none") {
- setVerbosity(No_Verb);
- } else if (verb == "low") {
- setVerbosity(Low_Verb);
- } else if (verb == "med") {
- setVerbosity(Med_Verb);
- } else if (verb == "high") {
- setVerbosity(High_Verb);
- } else {
- cerr << "Error: unrecognized verbosity (use none, low, med, high): "
- << verb << endl;
- return true; // error
- }
- return false; // no error
-}
-
-bool
-Debug::checkFilter(char ch)
-{
- for (int i = 0; i < NUMBER_OF_COMPS; i++) {
- // Look at all components to find a character match
- if (debugComponents[i].ch == ch) {
- // We found a match - return no error
- return false; // no error
- }
- }
- return true; // error
-}
-
-bool
-Debug::checkFilterString(const char *filter_str)
-{
- if (filter_str == NULL) {
- cerr << "Error: unrecognized component filter: NULL" << endl;
- return true; // error
- }
-
- // check for default filter ("none") before reporting RUBY_DEBUG error
- if (string(filter_str) == "none") {
- return false; // no error
- }
-
- if (string(filter_str) == "all") {
- return false; // no error
- }
-
- // scan string checking each character
- for (unsigned int i = 0; i < strlen(filter_str); i++) {
- bool unrecognized = checkFilter(filter_str[i]);
- if (unrecognized == true) {
- return true; // error
- }
- }
- return false; // no error
-}
-
-bool
-Debug::setFilterString(const char *filter_str)
-{
- if (checkFilterString(filter_str)) {
- return true; // error
- }
-
- if (string(filter_str) == "all" ) {
- allFilter();
- } else if (string(filter_str) == "none") {
- clearFilter();
- } else {
- // scan string adding to bit mask for each component which is present
- for (unsigned int i = 0; i < strlen(filter_str); i++) {
- bool error = addFilter( filter_str[i] );
- if (error) {
- return true; // error
- }
- }
- }
- return false; // no error
-}
-
-bool
-Debug::addFilter(char ch)
-{
- for (int i = 0; i < NUMBER_OF_COMPS; i++) {
- // Look at all components to find a character match
- if (debugComponents[i].ch == ch) {
- // We found a match - update the filter bit mask
- cout << " Debug: Adding to filter: '" << ch << "' ("
- << debugComponents[i].desc << ")" << endl;
- m_filter |= (1 << i);
- return false; // no error
- }
- }
-
- // We didn't find the character
- cerr << "Error: unrecognized component filter: " << ch << endl;
- usageInstructions();
- return true; // error
-}
-
-void
-Debug::clearFilter()
-{
- m_filter = 0;
-}
-
-void Debug::allFilter()
-{
- m_filter = ~0;
-}
-
-void
-Debug::usageInstructions(void)
-{
- cerr << "Debug components: " << endl;
- for (int i = 0; i < NUMBER_OF_COMPS; i++) {
- cerr << " " << debugComponents[i].ch << ": "
- << debugComponents[i].desc << endl;
- }
-}
-
-void
-Debug::print(ostream& out) const
-{
- out << "[Debug]" << endl;
-}
-
-void
-Debug::setDebugOutputFile (const char *filename)
-{
- if (filename == NULL || !strcmp(filename, "none")) {
- debug_cout_ptr = &cout;
- return;
- }
-
- if (m_fout.is_open()) {
- m_fout.close();
- }
- m_fout.open(filename, ios::out);
- if (!m_fout.is_open()) {
- cerr << "setDebugOutputFile: can't open file " << filename << endl;
- } else {
- debug_cout_ptr = &m_fout;
- }
-}
-
-void
-Debug::closeDebugOutputFile ()
-{
- if (m_fout.is_open()) {
- m_fout.close ();
- debug_cout_ptr = &cout;
- }
-}
-
-void
-Debug::debugMsg( const char *fmt, ...)
-{
- va_list args;
-
- // you could check validDebug() here before printing the message
- va_start(args, fmt);
- vfprintf(stdout, fmt, args);
- va_end(args);
-}
-
-Debug *
-RubyDebugParams::create()
-{
- return new Debug(this);
-}
diff --git a/src/mem/ruby/common/Debug.hh b/src/mem/ruby/common/Debug.hh
deleted file mode 100644
index 4183aca4d..000000000
--- a/src/mem/ruby/common/Debug.hh
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (c) 1999-2008 Mark D. Hill and David A. Wood
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met: redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer;
- * redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution;
- * neither the name of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef __MEM_RUBY_COMMON_DEBUG_HH__
-#define __MEM_RUBY_COMMON_DEBUG_HH__
-
-#include <unistd.h>
-
-#include <fstream>
-#include <iostream>
-#include <string>
-#include <vector>
-
-#include "mem/ruby/common/Global.hh"
-#include "sim/sim_object.hh"
-
-#include "params/RubyDebug.hh"
-
-extern std::ostream * debug_cout_ptr;
-
-// component enumeration
-enum DebugComponents
-{
- SYSTEM_COMP,
- NODE_COMP,
- QUEUE_COMP,
- EVENTQUEUE_COMP,
- NETWORK_COMP,
- SEQUENCER_COMP,
- TESTER_COMP,
- GENERATED_COMP,
- SLICC_COMP,
- NETWORKQUEUE_COMP,
- TIME_COMP,
- NETWORK_INTERNALS_COMP,
- STOREBUFFER_COMP,
- CACHE_COMP,
- PREDICTOR_COMP,
- MEMORY_COMP,
- NUMBER_OF_COMPS
-};
-
-enum PriorityLevel {HighPrio, MedPrio, LowPrio};
-enum VerbosityLevel {No_Verb, Low_Verb, Med_Verb, High_Verb};
-
-class Debug : public SimObject
-{
- public:
- typedef RubyDebugParams Params;
- Debug(const Params *p);
- ~Debug();
-
- static bool getProtocolTrace() { return m_protocol_trace; }
- bool validDebug(int module, PriorityLevel priority);
- void printVerbosity(std::ostream& out) const;
- void setVerbosity(VerbosityLevel vb);
- bool setVerbosityString(const char *);
- VerbosityLevel getVerbosity() const { return m_verbosityLevel; }
- void setFilter(int);
- static bool checkFilter( char);
- static bool checkFilterString(const char *);
- bool setFilterString(const char *);
- void setDebugTime(Time);
- Time getDebugTime() const { return m_starting_cycle; }
- bool addFilter(char);
- void clearFilter();
- void allFilter();
- void print(std::ostream& out) const;
- /* old school debugging "vararg": sends messages to screen and log */
- void debugMsg(const char *fmt, ...);
-
- void setDebugOutputFile (const char * filename);
- void closeDebugOutputFile ();
- static void usageInstructions(void);
-
- private:
- // Private copy constructor and assignment operator
- Debug(const Debug& obj);
- Debug& operator=(const Debug& obj);
-
- static bool m_protocol_trace;
- VerbosityLevel m_verbosityLevel;
- int m_filter;
- Time m_starting_cycle;
-
- std::fstream m_fout;
-};
-
-inline std::ostream&
-operator<<(std::ostream& out, const Debug& obj)
-{
- obj.print(out);
- out << std::flush;
- return out;
-}
-
-#undef assert
-#define assert(EXPR) ASSERT(EXPR)
-#undef ASSERT
-
-#ifndef NDEBUG
-
-#define ASSERT(EXPR) do { \
- using namespace std; \
- if (!(EXPR)) { \
- cerr << "failed assertion '" \
- << #EXPR << "' at fn " \
- << __PRETTY_FUNCTION__ << " in " \
- << __FILE__ << ":" \
- << __LINE__ << endl << flush; \
- (*debug_cout_ptr) << "failed assertion '" \
- << #EXPR << "' at fn " \
- << __PRETTY_FUNCTION__ << " in " \
- << __FILE__ << ":" \
- << __LINE__ << endl << flush; \
- if (isatty(STDIN_FILENO)) { \
- cerr << "At this point you might want to attach a debug to " \
- << "the running and get to the" << endl \
- << "crash site; otherwise press enter to continue" \
- << endl \
- << "PID: " << getpid() \
- << endl << flush; \
- char c; \
- cin.get(c); \
- } \
- abort(); \
- } \
-} while (0)
-
-#else
-
-#define ASSERT(EXPR) do {} while (0)
-
-#endif // NDEBUG
-
-#endif // __MEM_RUBY_COMMON_DEBUG_HH__
-
diff --git a/src/mem/ruby/common/Debug.py b/src/mem/ruby/common/Debug.py
deleted file mode 100644
index b11a7afeb..000000000
--- a/src/mem/ruby/common/Debug.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (c) 2009 Advanced Micro Devices, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-# Authors: Steve Reinhardt
-# Brad Beckmann
-
-from m5.params import *
-from m5.SimObject import SimObject
-
-class RubyDebug(SimObject):
- type = 'RubyDebug'
- cxx_class = 'Debug'
-
- filter_string = Param.String('none',
- "a string for filtering debugging output (see Debug.h)")
- verbosity_string = Param.String('none',
- "filters debugging messages based on priority (low, med, high)")
- output_filename = Param.String('none',
- "sends debugging messages to a file")
- start_time = Param.Tick(1,
- "filters debugging messages based on a ruby time")
- # For debugging purposes, one can enable a trace of all the protocol
- # state machine changes. Unfortunately, the code to generate the
- # trace is protocol specific. To enable the code for some of the
- # standard protocols,
- # 1. change protocol_trace = true
- # 2. enable debug in the Ruby Makefile
- protocol_trace = Param.Bool(False,
- "enable protocol state machine trace")
diff --git a/src/mem/ruby/common/Global.cc b/src/mem/ruby/common/Global.cc
index f780707e2..e771de7ae 100644
--- a/src/mem/ruby/common/Global.cc
+++ b/src/mem/ruby/common/Global.cc
@@ -28,7 +28,6 @@
#include "mem/ruby/common/Global.hh"
-RubyEventQueue* g_eventQueue_ptr = NULL;
-RubySystem* g_system_ptr = NULL;
-Debug* g_debug_ptr = NULL;
+RubyEventQueue* g_eventQueue_ptr = 0;
+RubySystem* g_system_ptr = 0;
diff --git a/src/mem/ruby/common/Global.hh b/src/mem/ruby/common/Global.hh
index de96c5a6b..357825465 100644
--- a/src/mem/ruby/common/Global.hh
+++ b/src/mem/ruby/common/Global.hh
@@ -31,7 +31,6 @@
// external includes for all classes
#include "mem/ruby/common/TypeDefines.hh"
-#include "mem/ruby/common/Debug.hh"
// simple type declarations
typedef Time LogicalTime;
@@ -47,9 +46,6 @@ extern RubyEventQueue* g_eventQueue_ptr;
class RubySystem;
extern RubySystem* g_system_ptr;
-class Debug;
-extern Debug* g_debug_ptr;
-
// FIXME: this is required by the contructor of Directory_Entry.hh.
// It can't go into slicc_util.hh because it opens a can of ugly worms
extern inline int max_tokens()
diff --git a/src/mem/ruby/common/SConscript b/src/mem/ruby/common/SConscript
index 2197faae8..4184b4b5f 100644
--- a/src/mem/ruby/common/SConscript
+++ b/src/mem/ruby/common/SConscript
@@ -33,11 +33,8 @@ Import('*')
if not env['RUBY']:
Return()
-SimObject('Debug.py')
-
Source('Address.cc')
Source('DataBlock.cc')
-Source('Debug.cc')
Source('Driver.cc')
Source('Global.cc')
Source('Histogram.cc')
diff --git a/src/mem/ruby/common/Set.cc b/src/mem/ruby/common/Set.cc
index e747f5159..ffc0a3f07 100644
--- a/src/mem/ruby/common/Set.cc
+++ b/src/mem/ruby/common/Set.cc
@@ -29,6 +29,8 @@
// modified (rewritten) 05/20/05 by Dan Gibson to accomimdate FASTER
// >32 bit set sizes
+#include <cstdio>
+
#include "base/misc.hh"
#include "mem/ruby/common/Set.hh"
#include "mem/ruby/system/System.hh"
diff --git a/src/mem/ruby/eventqueue/RubyEventQueue.cc b/src/mem/ruby/eventqueue/RubyEventQueue.cc
index eb1f2d32b..0e5a68e39 100644
--- a/src/mem/ruby/eventqueue/RubyEventQueue.cc
+++ b/src/mem/ruby/eventqueue/RubyEventQueue.cc
@@ -26,6 +26,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <cassert>
+
#include "mem/ruby/common/Consumer.hh"
#include "mem/ruby/eventqueue/RubyEventQueue.hh"
#include "mem/ruby/eventqueue/RubyEventQueueNode.hh"
@@ -50,7 +52,7 @@ void
RubyEventQueue::scheduleEventAbsolute(Consumer* consumer, Time timeAbs)
{
// Check to see if this is a redundant wakeup
- ASSERT(consumer != NULL);
+ assert(consumer != NULL);
if (!consumer->alreadyScheduled(timeAbs)) {
// This wakeup is not redundant
RubyEventQueueNode *thisNode = new RubyEventQueueNode(consumer, this);
diff --git a/src/mem/ruby/filters/BulkBloomFilter.cc b/src/mem/ruby/filters/BulkBloomFilter.cc
index bf7f59732..a5daf4f6b 100644
--- a/src/mem/ruby/filters/BulkBloomFilter.cc
+++ b/src/mem/ruby/filters/BulkBloomFilter.cc
@@ -26,6 +26,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <cassert>
+
#include "base/intmath.hh"
#include "base/str.hh"
#include "mem/ruby/filters/BulkBloomFilter.hh"
@@ -98,9 +100,9 @@ BulkBloomFilter::set(const Address& addr)
//Address permuted_bits = permute(addr);
//int c1 = permuted_bits.bitSelect(0, set_bits-1);
int c1 = addr.bitSelect( block_bits+set_bits, (block_bits+2*set_bits) - 1);
- //ASSERT(c0 < (m_filter_size/2));
- //ASSERT(c0 + (m_filter_size/2) < m_filter_size);
- //ASSERT(c1 < (m_filter_size/2));
+ //assert(c0 < (m_filter_size/2));
+ //assert(c0 + (m_filter_size/2) < m_filter_size);
+ //assert(c1 < (m_filter_size/2));
// set v0 bit
m_filter[c0 + (m_filter_size/2)] = 1;
// set v1 bit
@@ -124,9 +126,9 @@ BulkBloomFilter::isSet(const Address& addr)
//Address permuted_bits = permute(addr);
//int c1 = permuted_bits.bitSelect(0, set_bits-1);
int c1 = addr.bitSelect( block_bits+set_bits, (block_bits+2*set_bits) - 1);
- //ASSERT(c0 < (m_filter_size/2));
- //ASSERT(c0 + (m_filter_size/2) < m_filter_size);
- //ASSERT(c1 < (m_filter_size/2));
+ //assert(c0 < (m_filter_size/2));
+ //assert(c0 + (m_filter_size/2) < m_filter_size);
+ //assert(c1 < (m_filter_size/2));
// set v0 bit
m_temp_filter[c0 + (m_filter_size/2)] = 1;
// set v1 bit
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
index 69fc416e6..216234bcb 100644
--- a/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.cc
@@ -28,6 +28,8 @@
* Authors: Niket Agarwal
*/
+#include <cassert>
+
#include "base/stl_helpers.hh"
#include "mem/ruby/network/garnet/fixed-pipeline/GarnetNetwork_d.hh"
#include "mem/protocol/MachineType.hh"
@@ -223,8 +225,8 @@ void
GarnetNetwork_d::checkNetworkAllocation(NodeID id, bool ordered,
int network_num)
{
- ASSERT(id < m_nodes);
- ASSERT(network_num < m_virtual_networks);
+ assert(id < m_nodes);
+ assert(network_num < m_virtual_networks);
if (ordered) {
m_ordered[network_num] = true;
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
index 0bcefe337..45270ad7a 100644
--- a/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/NetworkInterface_d.cc
@@ -28,6 +28,7 @@
* Authors: Niket Agarwal
*/
+#include <cassert>
#include <cmath>
#include "base/stl_helpers.hh"
@@ -105,7 +106,7 @@ void
NetworkInterface_d::addNode(vector<MessageBuffer *>& in,
vector<MessageBuffer *>& out)
{
- ASSERT(in.size() == m_virtual_networks);
+ assert(in.size() == m_virtual_networks);
inNode_ptr = in;
outNode_ptr = out;
for (int j = 0; j < m_virtual_networks; j++) {
diff --git a/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh b/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh
index bde8618ee..f928e04f6 100644
--- a/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh
+++ b/src/mem/ruby/network/garnet/fixed-pipeline/flit_d.hh
@@ -31,6 +31,7 @@
#ifndef __MEM_RUBY_NETWORK_GARNET_FIXED_PIPELINE_FLIT_D_HH__
#define __MEM_RUBY_NETWORK_GARNET_FIXED_PIPELINE_FLIT_D_HH__
+#include <cassert>
#include <iostream>
#include "mem/ruby/network/garnet/NetworkHeader.hh"
@@ -98,7 +99,7 @@ class flit_d
greater(flit_d* n1, flit_d* n2)
{
if (n1->get_time() == n2->get_time()) {
- //ASSERT(n1->flit_id != n2->flit_id);
+ //assert(n1->flit_id != n2->flit_id);
return (n1->get_id() > n2->get_id());
} else {
return (n1->get_time() > n2->get_time());
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
index 631c5ab21..20ddf86e5 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.cc
@@ -28,6 +28,9 @@
* Authors: Niket Agarwal
*/
+#include <cassert>
+
+#include "base/cprintf.hh"
#include "base/stl_helpers.hh"
#include "mem/ruby/network/garnet/flexible-pipeline/GarnetNetwork.hh"
#include "mem/protocol/MachineType.hh"
@@ -188,9 +191,9 @@ void
GarnetNetwork::checkNetworkAllocation(NodeID id, bool ordered,
int network_num)
{
- printf ("id = %i, m_nodes = %i \n", id, m_nodes);
- ASSERT(id < m_nodes);
- ASSERT(network_num < m_virtual_networks);
+ cprintf ("id = %i, m_nodes = %i \n", id, m_nodes);
+ assert(id < m_nodes);
+ assert(network_num < m_virtual_networks);
if (ordered) {
m_ordered[network_num] = true;
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
index 23efaa618..afc841a1b 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/NetworkInterface.cc
@@ -28,6 +28,7 @@
* Authors: Niket Agarwal
*/
+#include <cassert>
#include <cmath>
#include "base/stl_helpers.hh"
@@ -95,7 +96,7 @@ void
NetworkInterface::addNode(vector<MessageBuffer*>& in,
vector<MessageBuffer*>& out)
{
- ASSERT(in.size() == m_virtual_networks);
+ assert(in.size() == m_virtual_networks);
inNode_ptr = in;
outNode_ptr = out;
diff --git a/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh b/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh
index e0825f3ab..4c072b270 100644
--- a/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh
+++ b/src/mem/ruby/network/garnet/flexible-pipeline/flit.hh
@@ -28,6 +28,7 @@
* Authors: Niket Agarwal
*/
+#include <cassert>
#include <iostream>
#include "mem/ruby/network/garnet/NetworkHeader.hh"
@@ -57,7 +58,7 @@ class flit
greater(flit* n1, flit* n2)
{
if (n1->get_time() == n2->get_time())
- //ASSERT(n1->flit_id != n2->flit_id);
+ //assert(n1->flit_id != n2->flit_id);
return (n1->get_id() > n2->get_id());
else
return (n1->get_time() > n2->get_time());
diff --git a/src/mem/ruby/network/simple/SimpleNetwork.cc b/src/mem/ruby/network/simple/SimpleNetwork.cc
index 956b85f1d..3b215b849 100644
--- a/src/mem/ruby/network/simple/SimpleNetwork.cc
+++ b/src/mem/ruby/network/simple/SimpleNetwork.cc
@@ -26,6 +26,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <cassert>
#include <numeric>
#include "base/stl_helpers.hh"
@@ -198,8 +199,8 @@ SimpleNetwork::makeInternalLink(SwitchID src, SwitchID dest,
void
SimpleNetwork::checkNetworkAllocation(NodeID id, bool ordered, int network_num)
{
- ASSERT(id < m_nodes);
- ASSERT(network_num < m_virtual_networks);
+ assert(id < m_nodes);
+ assert(network_num < m_virtual_networks);
if (ordered) {
m_ordered[network_num] = true;
diff --git a/src/mem/ruby/network/simple/Throttle.cc b/src/mem/ruby/network/simple/Throttle.cc
index 096a8f466..55e5b4e78 100644
--- a/src/mem/ruby/network/simple/Throttle.cc
+++ b/src/mem/ruby/network/simple/Throttle.cc
@@ -26,6 +26,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <cassert>
+
#include "base/cprintf.hh"
#include "mem/protocol/Protocol.hh"
#include "mem/ruby/buffers/MessageBuffer.hh"
@@ -45,8 +47,6 @@ const int PRIORITY_SWITCH_LIMIT = 128;
static int network_message_to_size(NetworkMessage* net_msg_ptr);
-extern ostream *debug_cout_ptr;
-
Throttle::Throttle(int sID, NodeID node, int link_latency,
int link_bandwidth_multiplier)
{
@@ -67,7 +67,7 @@ Throttle::init(NodeID node, int link_latency, int link_bandwidth_multiplier)
m_node = node;
m_vnets = 0;
- ASSERT(link_bandwidth_multiplier > 0);
+ assert(link_bandwidth_multiplier > 0);
m_link_bandwidth_multiplier = link_bandwidth_multiplier;
m_link_latency = link_latency;
diff --git a/src/mem/ruby/network/simple/Topology.cc b/src/mem/ruby/network/simple/Topology.cc
index 5e6bf9939..d79491ef2 100644
--- a/src/mem/ruby/network/simple/Topology.cc
+++ b/src/mem/ruby/network/simple/Topology.cc
@@ -26,6 +26,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <cassert>
+
#include "mem/protocol/MachineType.hh"
#include "mem/protocol/Protocol.hh"
#include "mem/protocol/TopologyType.hh"
@@ -224,8 +226,8 @@ void
Topology::addLink(SwitchID src, SwitchID dest, int link_latency,
int bw_multiplier, int link_weight)
{
- ASSERT(src <= m_number_of_switches+m_nodes+m_nodes);
- ASSERT(dest <= m_number_of_switches+m_nodes+m_nodes);
+ assert(src <= m_number_of_switches+m_nodes+m_nodes);
+ assert(dest <= m_number_of_switches+m_nodes+m_nodes);
m_links_src_vector.push_back(src);
m_links_dest_vector.push_back(dest);
m_links_latency_vector.push_back(link_latency);
diff --git a/src/mem/ruby/profiler/Profiler.cc b/src/mem/ruby/profiler/Profiler.cc
index a42d919f7..8596d04f1 100644
--- a/src/mem/ruby/profiler/Profiler.cc
+++ b/src/mem/ruby/profiler/Profiler.cc
@@ -47,13 +47,13 @@
#include <sys/times.h>
#include <algorithm>
+#include <fstream>
#include "base/stl_helpers.hh"
#include "base/str.hh"
#include "mem/protocol/CacheMsg.hh"
#include "mem/protocol/MachineType.hh"
#include "mem/protocol/Protocol.hh"
-#include "mem/ruby/common/Debug.hh"
#include "mem/ruby/network/Network.hh"
#include "mem/ruby/profiler/AddressProfiler.hh"
#include "mem/ruby/profiler/Profiler.hh"
@@ -63,8 +63,6 @@
using namespace std;
using m5::stl_helpers::operator<<;
-extern ostream* debug_cout_ptr;
-
static double process_memory_total();
static double process_memory_resident();
@@ -697,39 +695,6 @@ Profiler::swPrefetchLatency(Time cycles,
}
}
-void
-Profiler::profileTransition(const string& component, NodeID version,
- Address addr, const string& state, const string& event,
- const string& next_state, const string& note)
-{
- const int EVENT_SPACES = 20;
- const int ID_SPACES = 3;
- const int TIME_SPACES = 7;
- const int COMP_SPACES = 10;
- const int STATE_SPACES = 6;
-
- if (g_debug_ptr->getDebugTime() <= 0 ||
- g_eventQueue_ptr->getTime() < g_debug_ptr->getDebugTime())
- return;
-
- ostream &out = *debug_cout_ptr;
- out.flags(ios::right);
- out << setw(TIME_SPACES) << g_eventQueue_ptr->getTime() << " ";
- out << setw(ID_SPACES) << version << " ";
- out << setw(COMP_SPACES) << component;
- out << setw(EVENT_SPACES) << event << " ";
-
- out.flags(ios::right);
- out << setw(STATE_SPACES) << state;
- out << ">";
- out.flags(ios::left);
- out << setw(STATE_SPACES) << next_state;
-
- out << " " << addr << " " << note;
-
- out << endl;
-}
-
// Helper function
static double
process_memory_total()
@@ -764,15 +729,9 @@ Profiler::rubyWatch(int id)
{
uint64 tr = 0;
Address watch_address = Address(tr);
- const int ID_SPACES = 3;
- const int TIME_SPACES = 7;
-
- ostream &out = *debug_cout_ptr;
- out.flags(ios::right);
- out << setw(TIME_SPACES) << g_eventQueue_ptr->getTime() << " ";
- out << setw(ID_SPACES) << id << " "
- << "RUBY WATCH " << watch_address << endl;
+ DPRINTFN("%7s %3s RUBY WATCH %d\n", g_eventQueue_ptr->getTime(), id,
+ watch_address);
// don't care about success or failure
m_watch_address_set.insert(watch_address);
diff --git a/src/mem/ruby/profiler/Profiler.hh b/src/mem/ruby/profiler/Profiler.hh
index 3a11f0596..26b5b466d 100644
--- a/src/mem/ruby/profiler/Profiler.hh
+++ b/src/mem/ruby/profiler/Profiler.hh
@@ -156,9 +156,6 @@ class Profiler : public SimObject, public Consumer
void sequencerRequests(int num) { m_sequencer_requests.add(num); }
- void profileTransition(const std::string& component, NodeID version,
- Address addr, const std::string& state, const std::string& event,
- const std::string& next_state, const std::string& note);
void profileMsgDelay(int virtualNetwork, int delayCycles);
void print(std::ostream& out) const;
diff --git a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh
index 432379449..7fff1525b 100644
--- a/src/mem/ruby/slicc_interface/RubySlicc_Util.hh
+++ b/src/mem/ruby/slicc_interface/RubySlicc_Util.hh
@@ -33,6 +33,8 @@
#ifndef __MEM_RUBY_SLICC_INTERFACE_RUBYSLICCUTIL_HH__
#define __MEM_RUBY_SLICC_INTERFACE_RUBYSLICCUTIL_HH__
+#include <cassert>
+
#include "mem/protocol/AccessType.hh"
#include "mem/protocol/CacheMsg.hh"
#include "mem/protocol/CacheRequestType.hh"
@@ -134,7 +136,7 @@ getTimePlusInt(Time addend1, int addend2)
inline Time
getTimeMinusTime(Time t1, Time t2)
{
- ASSERT(t1 >= t2);
+ assert(t1 >= t2);
return t1 - t2;
}
diff --git a/src/mem/ruby/storebuffer/storebuffer.cc b/src/mem/ruby/storebuffer/storebuffer.cc
index 25089aaf2..0486c6510 100644
--- a/src/mem/ruby/storebuffer/storebuffer.cc
+++ b/src/mem/ruby/storebuffer/storebuffer.cc
@@ -26,14 +26,17 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#include <cassert>
+#include <cstdio>
#include <map>
+#include "base/trace.hh"
#include "mem/ruby/common/Global.hh"
#include "mem/ruby/storebuffer/storebuffer.hh"
using namespace std;
-#define SYSTEM_EXIT ASSERT(0)
+#define SYSTEM_EXIT assert(0)
// global map of request id_s to map them back to storebuffer pointers
map<uint64_t, StoreBuffer *> request_map;
@@ -58,7 +61,7 @@ StoreBuffer::StoreBuffer(uint32 id, uint32 block_bits, int storebuffer_size)
sprintf(port_name, "%s%d", name, id);
m_port = libruby_get_port(port_name, hit);
m_hit_callback = NULL;
- ASSERT(storebuffer_size >= 0);
+ assert(storebuffer_size >= 0);
m_storebuffer_size = storebuffer_size;
m_id = id;
m_block_size = 1 << block_bits;
@@ -188,7 +191,7 @@ StoreBuffer::checkForLoadHit(RubyRequest request)
// if any matching entry is found, determine if all the
// requested bytes have been matched
if (found) {
- ASSERT(m_buffer_size > 0);
+ assert(m_buffer_size > 0);
int unmatched_bytes = 0;
for (int i = physical_address%64; i < len; i++) {
unmatched_bytes = unmatched_bytes + data[i];
@@ -221,7 +224,7 @@ StoreBuffer::returnMatchedData(RubyRequest request)
physical_address_t physical_address = request.paddr;
int len = request.len;
- ASSERT(checkForLoadHit(request) != NO_MATCH);
+ assert(checkForLoadHit(request) != NO_MATCH);
physical_address_t lineaddr = physical_address & m_block_mask;
bool found = false;
deque<SBEntry>::iterator satisfying_store;
@@ -285,7 +288,7 @@ StoreBuffer::complete(uint64_t id)
return;
}
- ASSERT(outstanding_requests.find(id) != outstanding_requests.end());
+ assert(outstanding_requests.find(id) != outstanding_requests.end());
physical_address_t physical_address =
outstanding_requests.find(id)->second.paddr;
RubyRequestType type = outstanding_requests.find(id)->second.type;
@@ -306,7 +309,7 @@ StoreBuffer::complete(uint64_t id)
from_buffer.m_request.type == type) {
buffer.pop_back();
m_buffer_size--;
- ASSERT(m_buffer_size >= 0);
+ assert(m_buffer_size >= 0);
// schedule the next request
if (m_buffer_size > 0) {
diff --git a/src/mem/ruby/system/RubySystem.py b/src/mem/ruby/system/RubySystem.py
index 00d02b3df..7878cec63 100644
--- a/src/mem/ruby/system/RubySystem.py
+++ b/src/mem/ruby/system/RubySystem.py
@@ -40,7 +40,6 @@ class RubySystem(SimObject):
"default cache block size; must be a power of two");
mem_size = Param.MemorySize("total memory size of the system");
network = Param.RubyNetwork("")
- debug = Param.RubyDebug("the default debug object")
profiler = Param.RubyProfiler("");
tracer = Param.RubyTracer("");
stats_filename = Param.String("ruby.stats",
diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc
index 6357980f2..a82bcd2af 100644
--- a/src/mem/ruby/system/Sequencer.cc
+++ b/src/mem/ruby/system/Sequencer.cc
@@ -485,19 +485,10 @@ Sequencer::hitCallback(SequencerRequest* srequest,
g_eventQueue_ptr->getTime());
}
- if (Debug::getProtocolTrace()) {
- if (success) {
- g_system_ptr->getProfiler()->
- profileTransition("Seq", m_version,
- Address(ruby_request.paddr), "", "Done", "",
- csprintf("%d cycles", miss_latency));
- } else {
- g_system_ptr->getProfiler()->
- profileTransition("Seq", m_version,
- Address(ruby_request.paddr), "", "SC_Failed", "",
- csprintf("%d cycles", miss_latency));
- }
- }
+ DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %d cycles\n",
+ g_eventQueue_ptr->getTime(), m_version, "Seq",
+ success ? "Done" : "SC_Failed", "", "",
+ Address(ruby_request.paddr), miss_latency);
}
#if 0
if (request.getPrefetch() == PrefetchBit_Yes) {
@@ -658,18 +649,9 @@ Sequencer::issueRequest(const RubyRequest& request)
Address(request.pc), amtype, request.len, PrefetchBit_No,
request.proc_id);
- if (Debug::getProtocolTrace()) {
- g_system_ptr->getProfiler()->
- profileTransition("Seq", m_version, Address(request.paddr),
- "", "Begin", "",
- RubyRequestType_to_string(request.type));
- }
-
- if (g_system_ptr->getTracer()->traceEnabled()) {
- g_system_ptr->getTracer()->
- traceRequest(this, line_addr, Address(request.pc),
- request.type, g_eventQueue_ptr->getTime());
- }
+ DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\n",
+ g_eventQueue_ptr->getTime(), m_version, "Seq", "Begin", "", "",
+ Address(request.paddr), RubyRequestType_to_string(request.type));
Time latency = 0; // initialzed to an null value
diff --git a/src/mem/ruby/system/System.cc b/src/mem/ruby/system/System.cc
index a704724ac..d9c4fa821 100644
--- a/src/mem/ruby/system/System.cc
+++ b/src/mem/ruby/system/System.cc
@@ -75,7 +75,6 @@ RubySystem::RubySystem(const Params *p)
}
m_network_ptr = p->network;
- g_debug_ptr = p->debug;
m_profiler_ptr = p->profiler;
m_tracer_ptr = p->tracer;
diff --git a/src/mem/ruby/tester/DeterministicDriver.cc b/src/mem/ruby/tester/DeterministicDriver.cc
index 533f58e6f..9b0fe7967 100644
--- a/src/mem/ruby/tester/DeterministicDriver.cc
+++ b/src/mem/ruby/tester/DeterministicDriver.cc
@@ -27,10 +27,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/*
- * $Id$
- *
- */
+#include <cassert>
#include "base/misc.hh"
#include "mem/ruby/common/Global.hh"
@@ -127,7 +124,7 @@ void DeterministicDriver::wakeup() {
void DeterministicDriver::hitCallback(int64_t request_id)
{
- ASSERT(requests.find(request_id) != requests.end());
+ assert(requests.find(request_id) != requests.end());
int proc = requests[request_id].first;
Address address = requests[request_id].second;
@@ -177,7 +174,7 @@ bool DeterministicDriver::isAddrReady(NodeID node, vector<NodeID> addr_vector, A
{
int addr_number = addr.getAddress()/DATA_BLOCK_BYTES;
- ASSERT ((addr_number >= 0) && (addr_number < addr_vector.size()));
+ assert((addr_number >= 0) && (addr_number < addr_vector.size()));
if (((addr_vector[addr_number]+1)%m_num_procs == node) &&
(m_loads_completed+m_stores_completed >= m_numCompletionsPerNode*node) && // is this node next
@@ -226,7 +223,7 @@ Address DeterministicDriver::getNextAddr(NodeID node, vector<NodeID> addr_vector
Address addr;
// should only be called if we know a addr is ready for the node
- ASSERT(isAddrReady(node, addr_vector));
+ assert(isAddrReady(node, addr_vector));
for (int addr_number=0; addr_number<addr_vector.size(); addr_number++) {
diff --git a/src/mem/ruby/tester/RaceyDriver.cc b/src/mem/ruby/tester/RaceyDriver.cc
index a9f716334..bc41b0281 100644
--- a/src/mem/ruby/tester/RaceyDriver.cc
+++ b/src/mem/ruby/tester/RaceyDriver.cc
@@ -27,10 +27,8 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-/*
- * $Id$
- *
- */
+#include <cassert>
+
#include "mem/ruby/common/Global.hh"
#include "mem/ruby/tester/Tester_Globals.hh"
#include "mem/ruby/tester/RaceyDriver.hh"
@@ -77,7 +75,7 @@ void RaceyDriver::go() {
void RaceyDriver::hitCallback(int64_t request_id)
{
- ASSERT(requests.find(request_id) != requests.end());
+ assert(requests.find(request_id) != requests.end());
int proc = requests[request_id].first;
Address address = requests[request_id].second.address;
uint8_t * data = new uint8_t[4];
diff --git a/src/mem/ruby/tester/RaceyPseudoThread.cc b/src/mem/ruby/tester/RaceyPseudoThread.cc
index cfe4078cf..ae01585e6 100644
--- a/src/mem/ruby/tester/RaceyPseudoThread.cc
+++ b/src/mem/ruby/tester/RaceyPseudoThread.cc
@@ -30,6 +30,8 @@
* Description: see RaceyPseudoThread.h
*/
+#include <cassert>
+
#include "mem/ruby/tester/RaceyPseudoThread.hh"
#include "mem/ruby/tester/RaceyDriver.hh"
#include "gzstream.hh"
@@ -221,7 +223,7 @@ void RaceyPseudoThread::load_sig(unsigned index) {
// pc is zero, problem?
int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(sig(index), read_data, 4, 0, RubyRequestType_LD, RubyAccessMode_User));
- ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end());
+ assert(m_driver.requests.find(request_id) == m_driver.requests.end());
struct address_data request_data;
request_data.address = Address(sig(index));
@@ -248,7 +250,7 @@ void RaceyPseudoThread::load_m(unsigned index) {
// pc is zero, problem?
int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(m(index), read_data, 4, 0, RubyRequestType_LD, RubyAccessMode_User));
- ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end());
+ assert(m_driver.requests.find(request_id) == m_driver.requests.end());
struct address_data request_data;
request_data.address = Address(m(index));
@@ -279,7 +281,7 @@ void RaceyPseudoThread::store_sig(unsigned index, unsigned value) {
// pc is zero, problem?
int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(sig(index), write_data, 4, 0, RubyRequestType_ST, RubyAccessMode_User));
- ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end());
+ assert(m_driver.requests.find(request_id) == m_driver.requests.end());
struct address_data request_data;
request_data.address = Address(sig(index));
@@ -308,7 +310,7 @@ void RaceyPseudoThread::store_m(unsigned index, unsigned value) {
// pc is zero, problem?
int64_t request_id = libruby_issue_request(libruby_get_port_by_name(port_name), RubyRequest(m(index), write_data, 4, 0, RubyRequestType_ST, RubyAccessMode_User));
- ASSERT(m_driver.requests.find(request_id) == m_driver.requests.end());
+ assert(m_driver.requests.find(request_id) == m_driver.requests.end());
struct address_data request_data;
request_data.address = Address(m(index));
diff --git a/src/mem/ruby/tester/test_framework.cc b/src/mem/ruby/tester/test_framework.cc
index 2dcace49d..6728f9e08 100644
--- a/src/mem/ruby/tester/test_framework.cc
+++ b/src/mem/ruby/tester/test_framework.cc
@@ -366,8 +366,6 @@ static void usageInstructions()
}
cerr << endl;
- g_debug_ptr->usageInstructions();
- cerr << endl;
exit(1);
}
diff --git a/src/mem/slicc/symbols/StateMachine.py b/src/mem/slicc/symbols/StateMachine.py
index da6bc681c..145284726 100644
--- a/src/mem/slicc/symbols/StateMachine.py
+++ b/src/mem/slicc/symbols/StateMachine.py
@@ -338,6 +338,7 @@ static int m_num_controllers;
* Created by slicc definition of Module "${{self.short}}"
*/
+#include <cassert>
#include <sstream>
#include <string>
@@ -760,6 +761,8 @@ $c_ident::${{action.ident}}(const Address& addr)
// Auto generated C++ code started by $__file__:$__line__
// ${ident}: ${{self.short}}
+#include <cassert>
+
#include "base/misc.hh"
#include "mem/ruby/common/Global.hh"
#include "mem/ruby/slicc_interface/RubySlicc_includes.hh"
@@ -829,7 +832,10 @@ ${ident}_Controller::wakeup()
// Auto generated C++ code started by $__file__:$__line__
// ${ident}: ${{self.short}}
+#include <cassert>
+
#include "base/misc.hh"
+#include "base/trace.hh"
#include "mem/ruby/common/Global.hh"
#include "mem/protocol/${ident}_Controller.hh"
#include "mem/protocol/${ident}_State.hh"
@@ -863,36 +869,30 @@ ${ident}_Controller::doTransition(${ident}_Event event,
DPRINTF(RubyGenerated, "next_state: %s\\n",
${ident}_State_to_string(next_state));
m_profiler.countTransition(state, event);
- if (Debug::getProtocolTrace()) {
- g_system_ptr->getProfiler()->profileTransition("${ident}",
- m_version, addr,
- ${ident}_State_to_string(state),
- ${ident}_Event_to_string(event),
- ${ident}_State_to_string(next_state),
- GET_TRANSITION_COMMENT());
- }
- CLEAR_TRANSITION_COMMENT();
- ${ident}_setState(addr, next_state);
+ DPRINTFR(ProtocolTrace, "%7d %3s %10s%20s %6s>%-6s %s %s\\n",
+ g_eventQueue_ptr->getTime(), m_version, "${ident}",
+ ${ident}_Event_to_string(event),
+ ${ident}_State_to_string(state),
+ ${ident}_State_to_string(next_state),
+ addr, GET_TRANSITION_COMMENT());
+ CLEAR_TRANSITION_COMMENT();
+ ${ident}_setState(addr, next_state);
} else if (result == TransitionResult_ResourceStall) {
- if (Debug::getProtocolTrace()) {
- g_system_ptr->getProfiler()->profileTransition("${ident}",
- m_version, addr,
- ${ident}_State_to_string(state),
- ${ident}_Event_to_string(event),
- ${ident}_State_to_string(next_state),
- "Resource Stall");
- }
+ DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\\n",
+ g_eventQueue_ptr->getTime(), m_version, "${ident}",
+ ${ident}_Event_to_string(event),
+ ${ident}_State_to_string(state),
+ ${ident}_State_to_string(next_state),
+ addr, "Resource Stall");
} else if (result == TransitionResult_ProtocolStall) {
DPRINTF(RubyGenerated, "stalling\\n");
- if (Debug::getProtocolTrace()) {
- g_system_ptr->getProfiler()->profileTransition("${ident}",
- m_version, addr,
- ${ident}_State_to_string(state),
- ${ident}_Event_to_string(event),
- ${ident}_State_to_string(next_state),
- "Protocol Stall");
- }
+ DPRINTFR(ProtocolTrace, "%7s %3s %10s%20s %6s>%-6s %s %s\\n",
+ g_eventQueue_ptr->getTime(), m_version, "${ident}",
+ ${ident}_Event_to_string(event),
+ ${ident}_State_to_string(state),
+ ${ident}_State_to_string(next_state),
+ addr, "Protocol Stall");
}
return result;
@@ -993,6 +993,7 @@ if (!%s.areNSlotsAvailable(%s))
#ifndef __${ident}_PROFILE_DUMPER_HH__
#define __${ident}_PROFILE_DUMPER_HH__
+#include <cassert>
#include <iostream>
#include <vector>
@@ -1088,6 +1089,7 @@ ${ident}_ProfileDumper::dumpStats(std::ostream& out) const
#ifndef __${ident}_PROFILER_HH__
#define __${ident}_PROFILER_HH__
+#include <cassert>
#include <iostream>
#include "mem/ruby/common/Global.hh"
@@ -1125,6 +1127,8 @@ class ${ident}_Profiler
// Auto generated C++ code started by $__file__:$__line__
// ${ident}: ${{self.short}}
+#include <cassert>
+
#include "mem/protocol/${ident}_Profiler.hh"
${ident}_Profiler::${ident}_Profiler()
diff --git a/src/mem/slicc/symbols/Type.py b/src/mem/slicc/symbols/Type.py
index d6e156908..e521d544f 100644
--- a/src/mem/slicc/symbols/Type.py
+++ b/src/mem/slicc/symbols/Type.py
@@ -508,6 +508,7 @@ std::ostream& operator<<(std::ostream& out, const ${{self.c_ident}}& obj);
* Auto generated C++ code started by $__file__:$__line__
*/
+#include <cassert>
#include <iostream>
#include <string>