Debug Manager cleanup.

This commit is contained in:
Lukas Steiner
2019-08-25 23:13:05 +02:00
parent f5f3c729e0
commit d4943bccc5
9 changed files with 37 additions and 59 deletions

View File

@@ -35,6 +35,9 @@
*/
#include "DebugManager.h"
#ifdef DEBUGGING
#include "../controller/core/configuration/Configuration.h"
using namespace std;
@@ -76,3 +79,4 @@ DebugManager::~DebugManager()
debugFile.close();
}
}
#endif

View File

@@ -39,11 +39,10 @@
//#define DEBUGGING
#ifdef DEBUGGING
#define PRINTDEBUGMESSAGE(sender, message) DebugManager::getInstance().printDebugMessage(sender, message)
#else
#ifndef DEBUGGING
#define PRINTDEBUGMESSAGE(sender, message) {}
#endif
#else
#define PRINTDEBUGMESSAGE(sender, message) DebugManager::getInstance().printDebugMessage(sender, message)
#include <systemc.h>
#include <string>
@@ -70,5 +69,6 @@ private:
ofstream debugFile;
};
#endif
#endif // DEBUGMANAGER_H

View File

@@ -76,7 +76,7 @@ struct TemperatureSimConfig
void parsePowerInfoFile()
{
printDebugMessage("Power Info File: " + powerInfoFile);
PRINTDEBUGMESSAGE("TemperatureSimConfig", "Power Info File: " + powerInfoFile)
powerInfoFile = pathToResources
+ "/configs/thermalsim/"
@@ -90,7 +90,7 @@ struct TemperatureSimConfig
if (powInfoElem == NULL) {
// Invalid file
std::string errormsg = "Invalid Power Info File " + powerInfoFile;
printDebugMessage(errormsg);
PRINTDEBUGMESSAGE("TemperatureSimConfig", errormsg);
SC_REPORT_FATAL("Temperature Sim Config", errormsg.c_str());
}
@@ -115,21 +115,15 @@ struct TemperatureSimConfig
{
int i = 0;
for (auto e : powerInitialValues) {
printDebugMessage("powerInitialValues[" + std::to_string(
i++) + "]: " + std::to_string(e));
PRINTDEBUGMESSAGE("TemperatureSimConfig", "powerInitialValues["
+ std::to_string(i++) + "]: " + std::to_string(e));
}
i = 0;
for (auto e : powerThresholds) {
printDebugMessage("powerThreshold[" + std::to_string(i++) + "]: " +
std::to_string(e));
PRINTDEBUGMESSAGE("TemperatureSimConfig", "powerThreshold["
+ std::to_string(i++) + "]: " + std::to_string(e));
}
}
void printDebugMessage(std::string message)
{
DebugManager::getInstance().printDebugMessage("Temperature Sim Config",
message);
}
};
#endif // TEMPERATURESIMCONFIG_H

View File

@@ -165,12 +165,12 @@ void errorModel::store(tlm::tlm_generic_payload &trans)
msg << "bank: " << key.bank << " group: " << key.bankgroup << " bytes: " <<
key.bytes << " channel: " << key.channel << " column: " << key.column <<
" rank: " << key.rank << " row: " << key.row;
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
// Check if the provided data length is correct:
assert((bytesPerColumn * burstLenght) == trans.get_data_length());
printDebugMessage(("Data length: " + std::to_string(trans.get_data_length()) +
PRINTDEBUGMESSAGE(name(), ("Data length: " + std::to_string(trans.get_data_length()) +
" bytesPerColumn: " + std::to_string(bytesPerColumn)).c_str());
// Handle the DRAM burst,
@@ -211,7 +211,7 @@ void errorModel::store(tlm::tlm_generic_payload &trans)
std::stringstream msg;
msg << "key.column is " << key.column << " numberOfColumns is " <<
numberOfColumns;
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
assert(key.column <= numberOfColumns);
}
}
@@ -269,7 +269,7 @@ void errorModel::markBitFlips()
if (weakCells[i].flipped == false && weakCells[i].row == row) {
std::stringstream msg;
msg << "Maked weakCell[" << i << "] as flipped" << std::endl;
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
weakCells[i].flipped = true;
}
@@ -334,7 +334,7 @@ void errorModel::activate(unsigned int row)
<< " row: " << key.row
<< " col: " << key.column
<< " bit: " << weakCells[i].bit;
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
numberOfBitErrorEvents++;
@@ -387,7 +387,7 @@ void errorModel::activate(unsigned int row)
<< grid[0] << grid[1] << grid[2] << std::endl
<< grid[3] << grid[4] << grid[5] << std::endl
<< grid[6] << grid[7] << grid[8];
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
} else {
// Output on the Console:
std::stringstream msg;
@@ -399,7 +399,7 @@ void errorModel::activate(unsigned int row)
<< grid[0] << grid[1] << grid[2] << std::endl
<< grid[3] << grid[4] << grid[5] << std::endl
<< grid[6] << grid[7] << grid[8];
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
}
}
}
@@ -431,7 +431,7 @@ unsigned int errorModel::getBit(DecodedAddress key, unsigned int byteInColumn,
<< " tempByte = " << (unsigned int)tempByte
<< " result = " << result;
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
return result;
}
@@ -569,7 +569,7 @@ void errorModel::parseInputData()
<< " independent = " << errorMap[temp][retentionTime].independent
<< " dependent = " << errorMap[temp][retentionTime].dependent;
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
}
inputFile.close();
} else {
@@ -670,7 +670,7 @@ void errorModel::prepareWeakCells()
<< " bit=" << weakCells[i].bit
<< " flip=" << weakCells[i].flipped
<< " dep=" << weakCells[i].dependent;
printDebugMessage(msg.str());
PRINTDEBUGMESSAGE(name(), msg.str());
}
}
@@ -735,10 +735,3 @@ void errorModel::setContext(DecodedAddress addr)
myBank) + " ";
}
}
void errorModel::printDebugMessage(std::string message)
{
std::stringstream msg;
msg << contextStr << message;
DebugManager::getInstance().printDebugMessage(this->name(), msg.str());
}

View File

@@ -72,8 +72,6 @@ private:
// context:
std::string contextStr;
void printDebugMessage(std::string message);
// Online Parameters:
unsigned int numberOfBitErrorEvents;

View File

@@ -179,11 +179,13 @@ void DRAMSys::logo()
void DRAMSys::setupDebugManager(const string &traceName)
{
#ifdef DEBUGGING
auto &dbg = DebugManager::getInstance();
dbg.writeToConsole = false;
dbg.writeToFile = true;
if (dbg.writeToFile)
dbg.openDebugFile(traceName + ".txt");
#endif
}
void DRAMSys::setupTlmRecorders(const string &traceName,

View File

@@ -89,11 +89,6 @@ protected:
virtual unsigned int transport_dbg(int /*id*/,
tlm::tlm_generic_payload &trans) = 0;
void printDebugMessage(std::string message)
{
DebugManager::getInstance().printDebugMessage(this->name(), message);
}
void appendDramExtension(int socketId, tlm_generic_payload &payload)
{
// Append Generation Extension

View File

@@ -52,7 +52,7 @@ double TemperatureController::temperatureConvert(double tKelvin)
double TemperatureController::getTemperature(int deviceId, float currentPower)
{
printDebugMessage("Temperature requested by device " + std::to_string(
PRINTDEBUGMESSAGE(name(), "Temperature requested by device " + std::to_string(
deviceId) + " current power is " + std::to_string(currentPower));
if (dynamicTempSimEnabled == true) {
@@ -66,7 +66,7 @@ double TemperatureController::getTemperature(int deviceId, float currentPower)
return temperatureConvert(temperatureValues.at(deviceId));
} else {
printDebugMessage("Temperature is " + std::to_string(staticTemperature));
PRINTDEBUGMESSAGE(name(), "Temperature is " + std::to_string(staticTemperature));
return staticTemperature;
}
}
@@ -139,7 +139,7 @@ double TemperatureController::adjustThermalSimPeriod()
period = period / periodAdjustFactor;
cyclesSinceLastPeriodAdjust = 0;
decreaseSimPeriod = false;
printDebugMessage("Thermal Simulation period reduced to " + std::to_string(
PRINTDEBUGMESSAGE(name(), "Thermal Simulation period reduced to " + std::to_string(
period) + ". Target is " + std::to_string(targetPeriod));
} else {
if (period != targetPeriod) {
@@ -149,8 +149,8 @@ double TemperatureController::adjustThermalSimPeriod()
period = period * (periodAdjustFactor / 2);
if (period > targetPeriod)
period = targetPeriod;
printDebugMessage("Thermal Simulation period increased to " + std::to_string(
period) + ". Target is " + std::to_string(targetPeriod));
PRINTDEBUGMESSAGE(name(), "Thermal Simulation period increased to "
+ std::to_string(period) + ". Target is " + std::to_string(targetPeriod));
}
}
}
@@ -166,17 +166,11 @@ void TemperatureController::temperatureThread()
int i = 0;
for (auto t : temperatureValues) {
printDebugMessage("Temperature[" + std::to_string(i++) + "] is " +
std::to_string(t));
PRINTDEBUGMESSAGE(name(), "Temperature[" + std::to_string(i++)
+ "] is " + std::to_string(t));
}
printDebugMessage("Thermal simulation period is " + std::to_string(p));
PRINTDEBUGMESSAGE(name(), "Thermal simulation period is " + std::to_string(p));
wait(sc_time(p, t_unit));
}
}
void TemperatureController::printDebugMessage(std::string message)
{
DebugManager::getInstance().printDebugMessage(name(), message);
}

View File

@@ -72,8 +72,8 @@ public:
std::string ip = Configuration::getInstance().temperatureSim.IceServerIp;
unsigned int port = Configuration::getInstance().temperatureSim.IceServerPort;
thermalSimulation = new IceWrapper(ip, port);
printDebugMessage("Dynamic temperature simulation. Server @ " + ip + ":" +
std::to_string(port));
PRINTDEBUGMESSAGE(name(), "Dynamic temperature simulation. Server @ "
+ ip + ":" + std::to_string(port));
#else
SC_REPORT_FATAL(name(),
"DRAMSys was build without support to dynamic temperature simulation. Check the README file for further details.");
@@ -107,7 +107,7 @@ public:
SC_THREAD(temperatureThread);
} else {
printDebugMessage("Static temperature simulation. Temperature set to " +
PRINTDEBUGMESSAGE(name(), "Static temperature simulation. Temperature set to " +
std::to_string(staticTemperature));
}
}
@@ -148,8 +148,6 @@ private:
std::string temperatureMapFile;
bool genPowerMap;
std::string powerMapFile;
void printDebugMessage(std::string message);
};
#endif // TEMPERATURECONTROLLER_H