ruby: guard usage of GPUCoalescer code in Profiler
the GPUCoalescer code is used in the ruby profiler regardless of whether or not the coalescer code has been compiled, which can lead to link/run time errors. here we add #ifdefs to guard the usage of GPUCoalescer code. eventually we should refactor this code to use probe points.
This commit is contained in:
parent
42044645b9
commit
1961a942f3
2 changed files with 24 additions and 1 deletions
|
@ -1502,6 +1502,9 @@ for variant_path in variant_paths:
|
||||||
"target ISA combination"
|
"target ISA combination"
|
||||||
env['USE_KVM'] = False
|
env['USE_KVM'] = False
|
||||||
|
|
||||||
|
if env['BUILD_GPU']:
|
||||||
|
env.Append(CPPDEFINES=['BUILD_GPU'])
|
||||||
|
|
||||||
# Warn about missing optional functionality
|
# Warn about missing optional functionality
|
||||||
if env['USE_KVM']:
|
if env['USE_KVM']:
|
||||||
if not main['HAVE_PERF_ATTR_EXCLUDE_HOST']:
|
if not main['HAVE_PERF_ATTR_EXCLUDE_HOST']:
|
||||||
|
|
|
@ -56,7 +56,24 @@
|
||||||
#include "mem/protocol/RubyRequest.hh"
|
#include "mem/protocol/RubyRequest.hh"
|
||||||
#include "mem/ruby/network/Network.hh"
|
#include "mem/ruby/network/Network.hh"
|
||||||
#include "mem/ruby/profiler/AddressProfiler.hh"
|
#include "mem/ruby/profiler/AddressProfiler.hh"
|
||||||
|
|
||||||
|
/**
|
||||||
|
* the profiler uses GPUCoalescer code even
|
||||||
|
* though the GPUCoalescer is not built for
|
||||||
|
* all ISAs, which can lead to run/link time
|
||||||
|
* errors. here we guard the coalescer code
|
||||||
|
* with ifdefs as there is no easy way to
|
||||||
|
* refactor this code without removing
|
||||||
|
* GPUCoalescer stats from the profiler.
|
||||||
|
*
|
||||||
|
* eventually we should use probe points
|
||||||
|
* here, but until then these ifdefs will
|
||||||
|
* serve.
|
||||||
|
*/
|
||||||
|
#ifdef BUILD_GPU
|
||||||
#include "mem/ruby/system/GPUCoalescer.hh"
|
#include "mem/ruby/system/GPUCoalescer.hh"
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "mem/ruby/system/Sequencer.hh"
|
#include "mem/ruby/system/Sequencer.hh"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
@ -361,10 +378,12 @@ Profiler::collateStats()
|
||||||
if (seq != NULL) {
|
if (seq != NULL) {
|
||||||
m_outstandReqHistSeqr.add(seq->getOutstandReqHist());
|
m_outstandReqHistSeqr.add(seq->getOutstandReqHist());
|
||||||
}
|
}
|
||||||
|
#ifdef BUILD_GPU
|
||||||
GPUCoalescer *coal = ctr->getGPUCoalescer();
|
GPUCoalescer *coal = ctr->getGPUCoalescer();
|
||||||
if (coal != NULL) {
|
if (coal != NULL) {
|
||||||
m_outstandReqHistCoalsr.add(coal->getOutstandReqHist());
|
m_outstandReqHistCoalsr.add(coal->getOutstandReqHist());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -423,7 +442,7 @@ Profiler::collateStats()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef BUILD_GPU
|
||||||
GPUCoalescer *coal = ctr->getGPUCoalescer();
|
GPUCoalescer *coal = ctr->getGPUCoalescer();
|
||||||
if (coal != NULL) {
|
if (coal != NULL) {
|
||||||
// add all the latencies
|
// add all the latencies
|
||||||
|
@ -464,6 +483,7 @@ Profiler::collateStats()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue